Библиотека 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 с открытым исходным кодом.

Другие вопросы по тегам