-
Notifications
You must be signed in to change notification settings - Fork 271
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
Port to aarch64 #1562
Port to aarch64 #1562
Conversation
FYI got a merge conflict already |
rmcgibbo/mdtraj must have been quite a bit behind mdtraj/mdtraj |
Well, that's enough for today. And it cost all of $0.75 to rent an AWS instance to develop on. |
Attached is the log of the tests results on aarch64. Everything passes -- it looks like there is only a failure running one of the IPython notebooks because I didn't install sklearn. |
Ouch, looks like we worked on the same problem within hours of each other. I made an attempt using a cross-architecture emulation library, SIMDE, which should compile to whatever optimized directives are available, but needs debugging. |
@tonigi: Cool! For arrch64, I did notice a few things while doing the port.
|
Hi all, I'm the lead developer for SIMDe.
For what it's worth, the most common problem is aliasing and/or alignment issues issues where people use something like The solution here is to use functions like
FMA on x86 is actually a separate extension from AVX or AVX2. IDK what types you're using, but there is an
It doesn't :(. We're actually working on implementing NEON functions using SSE as well. We haven't implemented these yet (we have With SIMDe there isn't really anything preventing you from mixing functions from different extensions, and it can actually help since sometimes a more specific function means sometimes we can do better on another architecture (POWER, WASM, etc.). |
Thanks @nemequ. In fact I made another attempt at using SIMDE with @rmcgibbo 's clean ARM implementation. https://github.com/giorginolab/mdtraj/tree/simde-attempt-2 . It does not work (missing types such as float32x4x3_t - but I wanted to leave a pointer). |
It would be nice to get
mdtraj
compiling on aarch64 (armv8).It's really not that hard, but there are a lot of SSE intrinsics that are quite esoteric and need to be ported.