使用LU分解求解稀疏线性系统CUDA [英] Solving sparse linear systems in CUDA using LU factorization

查看:313
本文介绍了使用LU分解求解稀疏线性系统CUDA的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前基于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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆