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

时间:2018-06-17 01:09:35

标签: matrix cuda gpu cublas cusolver

我的目的是使用cuSolver软件包中的getrfgetrs,并使用AB=X解决B=I

  • 这是解决此问题的最佳方法吗?

  • 如果是这样,在设备内存中创建col-major标识矩阵B的最佳方法是什么?它可以使用for循环轻松完成,但这会占用大量内存,而且速度很慢。有更快的方法吗?

请注意,cuSolver不会提供getri。因此,我必须使用getrs

1 个答案:

答案 0 :(得分:1)

直到CUDA提供LAPACK API getri,我认为getrfgetrs是大型矩阵求逆的最佳选择。

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

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