-
Notifications
You must be signed in to change notification settings - Fork 51
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
Compiling rust-2018-migration
for aarch64
and wasm
#47
Comments
Hey, thanks for taking the initiative. Porting it is definitely going to be an effort, but doing the first port should make subsequent architectures much easier. There are a few things we need to do to get faster running (with SIMD) on aarch64:
To get it working without fallbacks, we would need to:
Thankfully, I think NEON's SIMD API is a little more sane than Intel's, so this shouldn't take as much effort as SSE/AVX did. |
After changing a few lines in I am now looking at Have you thought about structuring I was considering adding adding an I haven't started anything, so I don't know if there are road blocks, but I wanted to check with you first since it might make the code look a bit different. [1] https://github.com/ralfbiedert/vektor-gen |
Yeah, I've been meaning to restructure the intrinsic wrappers. We should be able to define the core parts of faster ( That also makes working with runtime feature detection a little easier, as we can just make each function generic over any type which implements Edit: One quick thing about the changes to |
Great! How do you want to handle this? I don't mind trying something that gets thrown away if it doesn't fly. However, if you are working on this already (and / or runtime detection) it's probably much better if you do the structure. Both ways are totally fine with me. |
I'm not super far into runtime detection and most of my changes are within the arch-independent code, so it should be pretty adaptable to whatever you come up with. Feel free to rip it up as you see fit; I don't think we'll diverge much. |
I made some changes now, up for discussion: https://github.com/ralfbiedert/faster/tree/more_archs
Update: Hang on, I just realized the |
Alright, I now have a version that compiles and "mostly works" for https://github.com/ralfbiedert/faster/tree/more_archs More changes:
What I am planning to do next:
|
Awesome, thank you so much for all of the hard work! The way this is laid out should blend nicely with runtime detection and user-defined SIMD types, too. |
I've merged in all of the changes, and did a few quick formatting fixes. It looks like the tests are good and the perf is unchanged. |
Hi,
I am trying to port a project to
aarch64
andwasm
using therust-2018-migration
branch. As of today I receive lots of:Ideally,
faster
would have fallbacks for not-yet supported architectures. That way I could just write my SIMD code once using the provided API, instead of having two separate implementations.Do you have any short-term plans of making such a fallback available for the 2018 version?
Also, while I am not a Rust expert, I have 1 - 2 days to look into this myself. If you think it's feasible to outline a solution you prefer, I'd be happy to try to help you out.
The text was updated successfully, but these errors were encountered: