Я пытаюсь ускорить некоторые вычисления с помощью OpenCL, а часть алгоритма состоит в инвертировании матрицы. Есть ли библиотека с открытым исходным кодом или свободно доступный код для вычисления lu-факторизации (lapack dgetrf и dgetri) матрицы или общей инверсии, написанной в OpenCL или CUDA? Матрица вещественна и квадратна, но кроме этого не имеет никаких других специальных свойств. До сих пор мне удалось найти только основные операции с матричными векторами blas на gpu.Матричная инверсия в OpenCL
Матрица довольно маленькая, всего около 60-100 строк и столбцов, поэтому ее можно вычислить быстрее на процессоре, но она используется в середине алгоритма, поэтому мне пришлось бы перенести ее на хост, вычислить обратно, а затем передать результат обратно на устройство, где оно затем используется при гораздо больших вычислениях.
Следует также отметить, что инвертирование матрицы может быть дорогостоящей операцией, особенно для больших матриц, и очень часто существует альтернативный способ решения проблемы. Разложение LU - это один «строительный блок», который можно использовать, чтобы избежать истинного обратного. – Tom