在最新的岩浆线性代数库(版本 1.6.1)中,http ://icl.cs.utk.edu/magma/software/,在执行 dgemm 功能的测试代码(源代码:testing_dgemm.cpp)中,有调用函数magma_dgemm
和magmablas_dgemm
. 有人可以澄清两者之间的区别吗?哪一个更通用(不仅与 GPU 相关)?
威拉万
对源代码的检查表明,它实际上是一个 C 函数,它在 GPU 上magmablas_Xgemm
启动适当的内核。gemm
这magmablas_Xgemm
是一个特定于 GPU 的例程。另一方面,magma_Xgemm
旨在成为与加速器无关的例程,(当前)可用于 GPU(NVIDIA/AMD,...)或 MIC。
参考文件,相对于 MAGMA 源目录(CUDA 版本):
./magmablas/dgemm_fermi.cu
./interface_cuda/blas_d.cpp
因此,基本上 MAGMA 包括 gemm,包括包装 cublas gemm 的 magma_gemm 和 Magma 的开源实现 magmablas_*gemm。