Matrix 使用cuSolver计算一般矩阵的逆的最有效方法是什么?

Matrix 使用cuSolver计算一般矩阵的逆的最有效方法是什么?,matrix,cuda,gpu,cublas,cusolver,Matrix,Cuda,Gpu,Cublas,Cusolver,我想使用cuSolver软件包中的getrf和getrs,并用B=I求解AB=X 这是解决这个问题的最好办法吗 如果是,在设备内存中创建col主标识矩阵B的最佳方法是什么?可以使用for循环轻松完成,但这将是1。占用大量内存和2。慢一点。有没有更快的办法 请注意,不幸的是,cuSolver没有提供getri。因此,我必须使用getrs直到CUDA提供LAPACK APIgetri,我认为getrf和getrs是大型矩阵求逆的最佳选择 矩阵B的大小与A相同,因此我认为分配B不会使此任务消耗比其

我想使用cuSolver软件包中的
getrf
getrs
,并用
B=I
求解
AB=X

  • 这是解决这个问题的最好办法吗

  • 如果是,在设备内存中创建col主标识矩阵
    B
    的最佳方法是什么?可以使用
    for
    循环轻松完成,但这将是1。占用大量内存和2。慢一点。有没有更快的办法


请注意,不幸的是,cuSolver没有提供
getri
。因此,我必须使用
getrs
直到CUDA提供LAPACK API
getri
,我认为
getrf
getrs
是大型矩阵求逆的最佳选择

矩阵
B
的大小与
A
相同,因此我认为分配
B
不会使此任务消耗比其输入/输出数据大得多的内存


getrf
getrs
的复杂度分别为
O(n^3)
O(n^2)
,而设置
B=I
的复杂度为
O(n^2)+O(n)
。我认为这不应该成为整个过程的瓶颈。您可以共享您的实现,这样我们就可以检查问题所在。

请将您已经使用的方法添加到您的问题中好吗?谢谢当然我把问题贴得太匆忙了。我现在添加了更多细节。如果你需要更多,请让我知道。我想指出,任何人谁是问出来的东西,岩浆确实有getrf和getri。这就是我目前正在使用的。