使用 CUDA C 计算以下表达式的最有效方法是什么?
(A - B(D ^ -1)B ^ T)^ - 1
其中 D 是一个非常大的对称矩阵, A 是一个小的对称矩阵,它使 B 和 B ^ T 中等矩形非对称矩阵。当然(^ -1)和(^ T)分别是反转和转置操作。
答案 0 :(得分:1)
如果您可以使用"低"级别编程,然后矩阵求逆可以由CULA或MAGMA库执行。
CULA Dense包含System Solve,Linear Least Squares Solve和Constrained Linear Least Squares Solve的单精度(实数或复数)精度。 CULA Sparse是稀疏矩阵的迭代求解器的集合。 Magma包含dgetrf
和dgetri
来计算平方双精度矩阵的逆。
对于矩阵乘法,包括换位,您可以使用cuBLAS
例程。
如果你喜欢"更高"级别编程,然后ArrayFire使您能够使用更自然的数学语法执行矩阵乘法,反演,转置,线性系统的解决方案和元素运算。此外,Matlab有一个GPU Computing Support for NVIDIA CUDA-Enabled GPUs。