In the most recent magma linear algebra library (version 1.6.1), http://icl.cs.utk.edu/magma/software/, in the testing code exercising dgemm functionality (source code: testing_dgemm.cpp), there was a call to functions magma_dgemm
and magmablas_dgemm
. Can someone clarify the difference between the two? Which one is more general (not tied to just GPU)?
Wirawan
An inspection of the source code reveals that magmablas_Xgemm
is actually a C function that launches an appropriate gemm
kernel on the GPU. Thus magmablas_Xgemm
is a GPU-specific routine. On the other hand, magma_Xgemm
is intended to be accelerator-agnostic routine that (currently) can be used for either GPU (NVIDIA/AMD, ...) or MIC.
Ref files, relative to MAGMA source directory (the CUDA edition):
./magmablas/dgemm_fermi.cu
./interface_cuda/blas_d.cpp