simde icon indicating copy to clipboard operation
simde copied to clipboard

ARM SVE implementations of AVX/AVX2

Open nemequ opened this issue 4 years ago • 2 comments

SVE is ARM's "vector-length agnostic" API. AFAICT it's really only available for CPUs geared towards HPC, and not very widely used (yet?), but it works with vector sizes that are a multiple of 128 bits, up to 2048 bits (maybe less on some CPUs, I'm not totally clear on that). It should be possible to use it to implement 256-bit and 512-bit vectors (i.e., AVX and AVX-512).

There is an emulator which we may be able to install on CI (though it's only available on AArch64). If anyone is interested in this please let me know and I'll look into that, but I'd be willing to add SVE without it since at least I can still test locally.

It sounds like SVE is a bit limited so coverage of Intel's APIs may be a bit sparse, but SVE2 is supposed to greatly expand support and implementing SVE would put us in a good position to add SVE2 when it's available.

nemequ avatar Mar 07 '20 02:03 nemequ