Совместное использование базовых данных между несколькими векторами cuSPARSE (API CUDA 12)C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Совместное использование базовых данных между несколькими векторами cuSPARSE (API CUDA 12)

Сообщение Гость »


Библиотека разреженной линейной алгебры NVIDIA CUDA, cuSPARSE, имеет новый API, который использует cusparseSpSV_solve для решения системы уравнений ([A][x]= ), где [A] — треугольная матрица. В старом API была функция под названием cusparseDcsrsv_solve (больше не поддерживается в CUDA 12), которая имела простые массивы, выделяемые устройством для векторных входных данных. Новая функция cusparseDcsrsv_solve использует объекты CUDA для организации данных.

Это фрагмент из новейшей документации CUDA 12.3 cuSPARSE:

cusparseSpSV_solve(дескриптор cusparseHandle_t, cusparseOperation_t опА, константная пустота* альфа, cusparseConstSpMatDescr_t matA, // поддерживается неконстантный дескриптор cusparseConstDnVecDescr_t vecX, // поддерживается неконстантный дескриптор cusparseDnVecDescr_t vecY, cudaDataType ComputeType, cusparseSpSVAlg_t alg, cusparseSpSVDescr_t spsvDescr) Выше показаны параметры для cusparseSpSV_solve. Векторы больше не полагаются на простые массивы данных (такие как double*), а теперь используют cusparseConstDnVecDescr_t для правого вектора и непостоянный cusparseDnVecDescr_t для вектора решения.

Если у меня есть несколько функций cusparseSpSV_solve в последовательности, как мне использовать вектор решения из первого cusparseSpSV_solve в качестве вектора правой части для второго < code>cusparseSpSV_solve и так далее...? Раньше вы просто передавали указатель от функции 1 к функции 2, но возможно ли это сделать с помощью нового API? Есть ли какая-либо опасность в назначении данных, выделенных устройством, нескольким объектам cusparseDnVecDescr_t, при этом достигается тот же эффект, что и при передаче указателей из одной функции в другую?

Я хочу избежать создания, копирования и уничтожения новых данных! Это отнимает слишком много времени, и кажется странным, что разработчики NVIDIA изменили API в худшую сторону. Итак, я ищу простой способ обмена данными между несколькими функциями cusparseSpSV_solve.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»