2009-11-05 12 views
2

Я заметил, что я могу использовать блоки памяти для матриц, выделенных с помощью функции cudamalloc() или cublasalloc() для вызова функций cublas. Скорость передачи матрицы и вычисление медленнее для массивов, выделенных с использованием cudamalloc(), а не cublasalloc(), хотя есть другие преимущества использования массивов с использованием cudamalloc(). Почему это так? Было бы замечательно услышать некоторые комментарии.Управление памятью CUDA против CuBlas

+0

Вы видите это при работе с поплавками, двойниками или обоими? Это может быть проблема выравнивания ('cudaAlloc()' принимает аргумент 'elemSize', но' cudaMalloc() 'does not). – Gabriel

+0

Я работал с поплавками в обоих случаях. Я не видел этого в два раза, так как мне не нужно работать с удвоениями в моем приложении. Одновременно я буду проверять с помощью cudaAlloc. – stanigator

+0

Btw, Gabriel, вы имеете в виду '' cublasAlloc() '', а не 'cudaAlloc()' '? – stanigator

ответ

5

cublasAlloc по существу обертка вокруг cudaMalloc(), так что не должно быть разницы, есть ли что-нибудь еще, что меняется в вашем коде?