1
目前我只是试图在基于curabas和CUDA的矩阵形式中实现简单的线性回归算法。矩阵乘法和换位与cublasSgemm
函数一起工作良好。通过引用CUDA指针进行CUDA矩阵反转
问题从矩阵求逆开始,基于cublas<t>getrfBatched()
和cublas<t>getriBatched()
函数(请参见here)。
可以看出,这些函数的输入参数 - 指向矩阵的指针数组。想象一下,我已经在GPU上分配的内存(A^T * A)矩阵先前计算的结果:
float* dProdATA;
cudaStat = cudaMalloc((void **)&dProdATA, n*n*sizeof(*dProdATA));
是否有可能运行分解(反转)
cublasSgetrfBatched(handle, n, &dProdATA, lda, P, INFO, mybatch);
无需额外的HOST <→GPU存储器复制(请参阅working example of inverting array of matrices)并分配单个元素的阵列,但仅获得GPU参考GPU指针?
谢谢!但恐怕使用托管内存可能是计算速度下降的原因。 –