Библиотека MAGMA: разница между magma_dgemm и magmablas_dgemm
В самой последней библиотеке линейной алгебры magma (версия 1.6.1), http://icl.cs.utk.edu/magma/software/, в коде тестирования, выполняющем функции dgemm (исходный код: testing_dgemm.cpp), была вызов функций magma_dgemm
а также magmablas_dgemm
, Может кто-нибудь уточнить разницу между ними? Какой из них более общий (не привязанный только к GPU)?
Wirawan
2 ответа
Проверка исходного кода показывает, что magmablas_Xgemm
на самом деле функция C, которая запускает соответствующий gemm
ядро на GPU. таким образом magmablas_Xgemm
это специфическая для GPU процедура С другой стороны, magma_Xgemm
Предполагается, что это не зависящая от ускорителя процедура, которую (в настоящее время) можно использовать как для GPU (NVIDIA/AMD, ...), так и для MIC.
Ссылочные файлы относительно исходного каталога MAGMA (издание CUDA):
./magmablas/dgemm_fermi.cu
./interface_cuda/blas_d.cpp
Итак, в основном MAGMA включает в себя gemm, и magma_ gemm, который заключает в себе cublas gemm, и magmablas_*gemm, который является реализацией Magma с открытым исходным кодом.