У меня есть приложение, которое выделяет матрицу и вектор на устройстве с помощью cudaMalloc/cudaMemcpy. Матрица определяется столбцом-майором. Я хотел бы использовать функцию из библиотеки cublas (cublasSgemv), чтобы умножить их вместе. По-видимому, мне придется выделять дубликаты матрицы и вектора, используя cudaMalloc, и инициализировать их с хоста cublasSetMatrix/cublasSetVector, чтобы использовать функцию cublas API. Очевидно, что дублирование всей этой памяти будет дорогостоящим.Использование cudaMemCpy вместо cublasSetMatrix и cublasSetVector
Насколько я понимаю, функции cublasSetMatrix/cublasSetVector - это просто светлые обертки cudaMemCpy. Мне было интересно, можно ли передать указатели на массивы, инициализированные cudaMemCpy, в функцию cublas API? Или, иначе можно легко обернуть массивы таким образом, чтобы API распознал, чтобы я мог избежать дублирования памяти?
Слишком дорого обрабатывать матрицы как простые массивы для ваших целей? –