Я заметил, что я могу использовать блоки памяти для матриц, выделенных с помощью функции cudamalloc() или cublasalloc() для вызова функций cublas. Скорость передачи матрицы и вычисление медленнее для массивов, выделенных с использованием cudamalloc(), а не cublasalloc(), хотя есть другие преимущества использования массивов с использованием cudamalloc(). Почему это так? Было бы замечательно услышать некоторые комментарии.Управление памятью CUDA против CuBlas
2
A
ответ
5
cublasAlloc
по существу обертка вокруг cudaMalloc()
, так что не должно быть разницы, есть ли что-нибудь еще, что меняется в вашем коде?
Вы видите это при работе с поплавками, двойниками или обоими? Это может быть проблема выравнивания ('cudaAlloc()' принимает аргумент 'elemSize', но' cudaMalloc() 'does not). – Gabriel
Я работал с поплавками в обоих случаях. Я не видел этого в два раза, так как мне не нужно работать с удвоениями в моем приложении. Одновременно я буду проверять с помощью cudaAlloc. – stanigator
Btw, Gabriel, вы имеете в виду '' cublasAlloc() '', а не 'cudaAlloc()' '? – stanigator