3 ms·
HPC software is essentially always doing lots of low level performance tricks, using hardware-specific intrinsics, etc. Most of the hardcore libraries we use (
by maxwell86 5y ago
HPC software is essentially always doing lots of low level performance tricks, using hardware-specific intrinsics, etc.
Most of the hardcore libraries we use (vector math, linear algebra, networking, etc.) all support ARM with good performance, and for the code we maintain, we didn't really had to modify any code to run on ARM well.
If you need to translate e.g. SSE intrinsics to ARM, there is an automatic translator available, but 10 years ago when we had to translate those to AVX, we decided instead to translate them to the portable compiler intrinsics instead (all compilers have portable vector types nowadays), so we didn't have to change anything. A 256-bit wide SIMD vector just gets treated as 2x 128 bit NEON vectors when compiling for ARM, and the compilers do this automatically.