-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
runtime: swiss map SIMD implementation for non-amd64 #71255
Comments
I'm interested in helping on this. I'll dig in the AMD64 implementation and try to come up with the ARM64 one |
I poked around a little bit today, but I can seem to make the intrinsics work... First of all, I'm surprised that I cannot simply set this alias to work on ARM64 (add
This is weird to me because TrailingZeros64 is defined for ARM64 and this returns an error related to WASM when compiling:
maybe I forgot to regenerate something? After that, I tried to make the |
Hi @Clement-Jean, I think it is great that you are exploring this. I wanted to point you to two optional resources that I think could be helpful if you don’t already know about them:
There is an invite app for access if you are interested. There are also the mailing lists and other forums, and people will comment here as well, but I wanted to mention those two channels as options for informal or ad-hoc conversations that tend to be fairly helpful. |
It seems that without the implementation of intrinsics, vector types, and register allocation for vectors, the ARM64 implementation is largely inefficient. I tried both representation of the bitset (packed and unpacked) and my implementation is almost always 2 times slower than the current one on the If anyone wants to check my implementation you can find it here (on branch |
https://go.dev/cl/626277 (in 1.24) added SIMD implementations for swissmap (still 8-byte) control word operations for amd64. We could do similar for other architectures, if the SIMD implementations improve performance. ARM64 is the obvious target here given its wide use.
The text was updated successfully, but these errors were encountered: