使用LU分解求解稀疏线性系统CUDA [英] Solving sparse linear systems in CUDA using LU factorization
问题描述
目前基于MATLAB C实现大约需要 6ms的
为解决 AX = B
,其中 A
是带状稀疏矩阵带的宽度 3
尺寸 780点¯x780
。
The current MATLAB based C implementation takes around 6ms
for solving Ax=B
, where A
is banded sparse matrix with band-width 3
of dimensions 780 X 780
.
现在我期待使用 CUBLAS
/ cuSPARSE
来找到一个更快的解决方案。
我需要一个循环来解决这类方程 1440
。
Now I am looking to use cuBLAS
/cuSPARSE
to find a faster solution.
I need to solve 1440
of such equations in a loop.
我尝试使用基于PCG方法,但,这是非常缓慢的,输出不匹配。
I tried using PCG based method but that is very slow and the output is not matching.
有没有使用任何直接的解决方案 CUBLAS
/ cuSPARSE
解决斧= B
?
Is there any direct solution using cuBLAS
/cuSPARSE
for solving Ax=B
?
推荐答案
如果问题的可以的转换成三对角的问题,你可以使用的 cusparseXgtsvStridedBatch 的多重问题,而无需使用for循环。你将不得不使用cusparse_v2.h代替cusparse.h为此工作。
If the problem can be converted into a tri-diagonal problem, you can use cusparseXgtsvStridedBatch to the multiple problems without using a for loop. You will have to use cusparse_v2.h instead of cusparse.h for this to work.
如果问题的无法的转换成三对角的问题,您可以使用程序从CULA解决您的问题。可以在自己的博客文章阅读关于这个的更多信息。然而,这是一个商业文库。它也可能不能被最适合于矩阵的只有3频带的频带。
If the problem can not be converted into a tri-diagonal problem, you can use routines from CULA to solve your problem. More information regarding this can be read in their blog post. However this is a commercial library. It may also not be best suited for a band of matrix with 3 bands only.
这篇关于使用LU分解求解稀疏线性系统CUDA的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!