Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add extism_load_v128/extism_store_v128 #594

Open
zshipko opened this issue Nov 17, 2023 · 5 comments
Open

Add extism_load_v128/extism_store_v128 #594

zshipko opened this issue Nov 17, 2023 · 5 comments

Comments

@zshipko
Copy link
Contributor

zshipko commented Nov 17, 2023

We could improve load/store performance by adding extism_load_v128, extism_input_load_v128 and extism_store_v128

@OLUWAMUYIWA
Copy link
Contributor

This looks interesting. I'll take it up

@zshipko
Copy link
Contributor Author

zshipko commented Jan 23, 2024

@OLUWAMUYIWA Great! Last time I looked into it I had some issues getting Rust to reliably generate v128 values when compiling to wasm, so I think the first step would be to figure out if it's even possible to reliably use v128 in Rust, then we could try to add these.

These new functions would be in the kernel where debugging can get kinda tricky, so it makes sense to do as much as you can on a test project before moving some of the code into the kernel.

This also has a larger effects on the PDKs and stuff, so we would need to consider how to roll this out, but since it has the potential to provide significant performance improvements it is definitely worth exploring.

@OLUWAMUYIWA
Copy link
Contributor

Thanks for the heads up, @zshipko!

@chrisdickinson
Copy link
Contributor

It struck me that we could possibly achieve this by writing the v128 functions in WAT in a separate module, then using wasm-merge to combine that with the Rust kernel. I'm not sure what effect this would have on kernel verification efforts, though!

@zshipko
Copy link
Contributor Author

zshipko commented Jan 23, 2024

That's a good idea! I don't think it would really cause any issues with the verification work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants