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

Stabilize aarch64 features #1

Closed
zone117x opened this issue Apr 12, 2022 · 8 comments
Closed

Stabilize aarch64 features #1

zone117x opened this issue Apr 12, 2022 · 8 comments

Comments

@zone117x
Copy link

The arch::is_aarch64_feature_detected! feature has been stabilized as of rust 1.60.0: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1600-2022-04-07

And armv8 neon intrinsics for aarch64 are stabilized as of rust 1.59.0: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1590-2022-02-24

The hex simd features in particular should be possible to use without the unstable flag.

Awesome work on this library btw, very useful!

@Nugine
Copy link
Owner

Nugine commented Apr 12, 2022

Thanks. I will stabilize aarch64 features in v0.6.0 updates in a few days.

@Nugine
Copy link
Owner

Nugine commented Apr 13, 2022

The target feature "neon" is still unstable. We have to wait for it. See rust-lang/rust#44839

@zone117x
Copy link
Author

Ah that's disappointing, strange they would stabilize the other APIs without this one. Thanks anyway!

@Nugine Nugine added the enhancement New feature or request label Aug 14, 2022
@Nugine Nugine removed the enhancement New feature or request label Sep 27, 2022
@Nugine
Copy link
Owner

Nugine commented Nov 8, 2022

The target feature has been stabilized since 1.61 (rust-lang/rust#90621).

I have no arm/aarch64 machines. The CI uses cross-rs to test correctness. Before landing aarch64 simd functions, I need to find a way to continuously confirm the performance.

@Nugine Nugine added this to the v0.8 milestone Nov 8, 2022
@zone117x
Copy link
Author

@Nugine I'm unaware of any plans for new & free aarch64 runners (from github or other free CI providers). AFAIK folks are using self-hosted runners, which seems difficult and somewhat costly to setup and maintain.

In the meantime, would it be reasonable for contributors to help out (manually) here? For example, I'm happy to volunteer to help with that (using my macbook M1).

For example, PRs could request for contributor(s) to pull the code, run the tests/benchmarks, and post the results. This seems like a common workflow for other repos where arm/M1 features are being worked on.

@Nugine
Copy link
Owner

Nugine commented Nov 15, 2022

@zone117x

I have managed to test aarch64 simd on my android phone (armv8). The performance looks good.

These providers have limited running time for free

i plan to setup arm tests and benches with CircleCI.

You are welcome to help with this project. There is no guide for local development yet. I will add some docs later.

For now, you can run this command

just bench static

The benchmark will save the results in a markdown file and print it.

Note that it may take hours to run the whole benchmark.

The script depends on:

@zone117x
Copy link
Author

Thank you for the info!
If you're planning on adding arm runners to the CI, I'll just wait for that. But if running the bench is helpful to unblock this issue, then I'm happy to help, just let me know!

@Nugine
Copy link
Owner

Nugine commented Nov 15, 2022

Stabilized in commit 5a00b30.

Further steps:

Benchmarks running on physical machines are more realistic than CI. It will be helpful if you could report the statistics.

@Nugine Nugine closed this as completed Nov 15, 2022
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

2 participants