Search code examples
c++gpulinear-algebrablasmagma

MAGMA library: difference between magma_dgemm and magmablas_dgemm


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


Solution

  • 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