build and compile against openblas
Since forever, we've been using Intel's MKL to do this heavy lifting for linear algebra. I've been digging in to math library performance and best practices for AMD-based HPC applications and found references like this one: https://prace-ri.eu/wp-content/uploads/Best-Practice-Guide_AMD.pdf
In particular, the following results that show linear algebra performance relative to MKL:
libBLIS
is a bit more of a pain to install, but OpenBLAS is freely available to install via yum
, so i think that's a good starting point.
While we're at it, the guide recommends some compiler flags to use with gcc:
I dove right in and started to test but ran into the previous issue with GSL (#1) and also AVX tests failing in lal (https://git.ligo.org/gstlal/gstlal-dev/-/jobs/2616416). Note that the lal build checks fail both in the pipeline and when i do a manual build with the same flags and settings on pcdev12
, which is AMD hardware.
After that test failed, I'm going to try and iterate to see what is causing the tests to fail, and see if there is any performance improvement getting an openblas build going:
CFLAGS |
GSL Pass |
LAL Pass |
---|---|---|
-O3 -march=znver1 -mtune=znver1 -mfma -mavx2 -m3dnow -fomit-frame-pointer |
||
-O3 -march=znver1 -mtune=znver1 -mfma -mavx2 -m3dnow |
||
-O3 -mavx2 -fomit-frame-pointer |