В настоящее время я просто пытаюсь реализовать простой алгоритм линейной регрессии в матричной форме на основе cuBLAS с CUDA. Умножение и транспонирование матриц хорошо работает с функцией cublasSgemm
.
Проблемы начинаются с инверсии матриц на основе функций cublas<t>getrfBatched()
и cublas<t>getriBatched()
(см. здесь).
Как видно, входные параметры этих функций - массивы указателей на матрицы. Представьте, что я уже выделил память для матрицы (A ^ T * A) на GPU в результате предыдущих вычислений:
float* dProdATA;
cudaStat = cudaMalloc((void **)&dProdATA, n*n*sizeof(*dProdATA));
Можно ли запустить факторизацию (инверсию)
cublasSgetrfBatched(handle, n, &dProdATA, lda, P, INFO, mybatch);
без дополнительного копирования памяти GPU HOST ‹-> (см. рабочий пример инвертирование массива матриц) и размещение массивов с одним элементом, но просто получить ссылку GPU на указатель GPU?