bitshifter/glam-rs

SIMD Vectors for arm and aarch64

ifacodes opened this issue · 6 comments

With core::arch::aarch64 having neon in stable (despite the documentation being a bit bugged and claiming some of it isn't), and the std::simd branch you have here, are you be considering implementing for these architectures as well?

Ah I didn't know about that. It's probably not difficult to add, the tricky part is I have no idea how I'd test it. It would be really great if std::simd was stabilised then I could just support that, but I don't know how far off that would be.

I've just added experimental core::simd support in main which could be used to get simd support on arm/aarch64 until I get around to adding explicit neon support. This does require nightly.

thank you!!! I'll check it out in a separate branch

I have an experimental branch with neon support although I haven't worked on it in a while #379.

One thing I was finding is performance benefits were less clear than with SSE2. It's making me rethink the structure of glam a bit to make SIMD more opt in and less the default for a bunch of types.

I have an experimental branch with neon support although I haven't worked on it in a while #379.

One thing I was finding is performance benefits were less clear than with SSE2. It's making me rethink the structure of glam a bit to make SIMD more opt in and less the default for a bunch of types.

Note that the only NEON hardware I have is a Raspberrypi, it's possible other hardware would give better results.

aarch64 neon support has been merged to main.