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