1

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

Wirawan Purwanto
  • 3,613
  • 3
  • 28
  • 28

2 Answers2

0

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
Wirawan Purwanto
  • 3,613
  • 3
  • 28
  • 28
0

So, basically MAGMA includes gemm, both magma_gemm that wraps cublasgemm, and magmablas_*gemm that is Magma's open-source implementation.

Abhishek Nikam
  • 618
  • 7
  • 15