-
Notifications
You must be signed in to change notification settings - Fork 43
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 NEON support #115
Add NEON support #115
Conversation
There should be support for running on ARM via macOS 14 runners. Can you try changing the aarch64 job to run on them and to run the same checks as the x86 jobs? I'm also pretty sure this is also a breaking change since the MSRV for aarch64 is 1.59, up from the current MSRV of 1.56. |
Hold on, I added an additional job but perhaps that's a little excessive. |
@james7132 You're right about the MSRV, but somehow it passes on 1.56.0 anyway 🤔 |
That's certainly odd. Might be a bug with those versions of Rust, or the APIs used here were soft stabilized early. Could you run the benchmarks and do a comparison against master to ensure this is a performance gain? |
This actually does not look like a performance improvement at all, especially for
Will have to take a closer look at what's going on. |
Looking at the assembly briefly, it doesn't look like rustc is doing any clever auto-vectorization on master. For |
@msvbg what were your power settings on your MacBook Pro when running these benchmarks? These numbers don't look right to me given what was changed. |
Re-ran the benches with
|
As a continuation of #86, I thought it would be interesting to try to add NEON support to this, given that I haven't written much SIMD code before. It doesn't build continuously on CI yet due to lack of runners, as @james7132 has pointed out, but the tests do pass locally for me on my MBP. Up to you if it's worth merging anyway!