Recommendation: Multithreaded BLAS library/implementation for nvc++

I tried compiling OpenBLAS with the nvhpc toolkit and up to a lot of warnings it seems to have worked (I will need to test this later and update here). Has anyone here experience with interfacing with CPU-BLAS that plays well with nvc++?

I conservatively assumed that I will need to compile any BLAS implementation with the nvhpc compilers for binary compatibility. Is this wrong and I can just interface with libraries built with the GNU toolchain or others?

I looked into using blaspp for a C++ interface, but for a Intel CPU only the OpenBLAS and the MKL backend seems to make sense and I don’t think they distribute their source code for the MKL.

Hi paleonix,

Has anyone here experience with interfacing with CPU-BLAS that plays well with nvc++?

Are you able to use the pre-built OpenBLAS that we ship with the compilers? See: HPC Compilers User's Guide Version 22.7 for ARM, OpenPower, x86

If needed, I can ask the person here who builds it for us for tips. There was some idiosyncrasies he needed to do, but it’s been awhile since I’ve talk to him about it, so things may have changed.

I conservatively assumed that I will need to compile any BLAS implementation with the nvhpc compilers for binary compatibility. Is this wrong and I can just interface with libraries built with the GNU toolchain or others?

We’re binary compatible with gcc and g++ so it should be fine. Fortran is bit more challenging due to incompatibilities in F90 implementations, but if the library uses F77 style APIs, then it’s usually fine.

Sorry, I’m not familiar with blaspp so don’t have any insight there.

-Mat

That is very helpful, yes. That included OpenBLAS version is probably exactly what I was hoping for. I had to search a bit to find out that I need to include lp64/cblas.h instead of just cblas.h (this might be well known for OpenBLAS users, but it would also be nice to mention it in the docs).

Knowing that you are binary compatible with most of GNU is also very good to know.

I might try to get blaspp to use the included blas implementation. If I know more I will give an update here.

Thank you!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.