-
Notifications
You must be signed in to change notification settings - Fork 269
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
bwa-mem2 SIGILLs with SVE instruction cntd #1286
Comments
Just realised that bioconda's Aarch64 CI builders must be the ones having SVE and therefore the resulting binary has those instructions, will check but makes sense! That'd mean only AWS Graviton 3 and above are supported. |
Indeed it builds with |
Yes, Martin, that's exactly one of my links on the original post. TL;DR: SIMDE's So SIMDE is not at fault, but parametrization of bwa-mem2 vector instructions is, together with how bioconda packages it. I didn't realise until later that bioconda CI builder machines must have Aarch64 processors with SVE, so AWS Graviton2 instances (which don't have SVE) and below will SIGILL with bioconda packages. Closing, I'll focus on AWS Graviton 4 instances (i.e |
OTOH, I suspect that we are leaving quite some perf on the table by not adopting the work done by bwa-mem2/bwa-mem2#248 (instead of SIMDE), but I digress. |
Repeating my comment here, for posterity: Is there an official architecture baseline policy for bioconda? Perhaps compiling for more than one ARM version and choosing one of them at runtime would be better. https://wiki.debian.org/InstructionSelection (https://github.com/ekg/subarch-select could be easily taught about ARM features, it is just a thin wrapper around https://github.com/google/cpu_features/ which already knows about aarch64 CPU features on linux) Or if a "fat" binary is desired, bwa-mem2 could be a good candidate to use in documenting how to combine SIMDe with CPU feature dispatch: #1268 |
Hello dear @mr-c (long time no see!) and SIMDE community!
I'm porting a bioinformatics pipeline and its dependencies to ARMv8.2-a ISA (AWS Graviton2, c6g instance) and I believe I've hit an issue with SVE instructions leaking where they shouldn't?:
Here's my issue with
bwa-mem2
as it comes out of bioconda, allegedly patched for Aarch64:So, what could be the reason to have
cntd
(AFAIK a SVE instruction), when SIMDE is told to compile asnative
, which in this (AWS) instance (no pun intended) shouldn't bring in SVE?Perhaps
/proc/cpuinfo
doesn't give enough info to tell if this machine has SVE or not (wild guess)? I'll be trying to understand the guts of SIMDE next and testing tomorrow, just wanted to document this somewhere just in case this is a known issue and somebody else is already working on it?/cc @ohofmann @scwatts @martin-g @delagoya
The text was updated successfully, but these errors were encountered: