2016-03-22 49 views
-2

我试图实现在CUDA名为"Conjugate Gradient Solver"一个迭代线性解算器,其解决了形式的方程,CUDA线程分配

A*x=b, 

其中A是大小为NxN的稀疏对称正定矩阵, x是未知向量大小为n,初始猜测为0, b是等式右边的大小为n的向量。

我的代码中包含许多操作,如Sparse Matrix-vector multiplication,vector-vector operations。

我的代码工作正常,矩阵大小可达31×31,但不超过31×31。这可能是因为分配给内核函数的线程数。我分配线程作为

mul<<<1,nrows>>>() 

这里MUL是用于执行稀疏矩阵 - 向量乘法和NROWS一个功能是行中的稀疏矩阵,A的数目。

这个问题与1 wrap size = 32个线程有关吗?

如果有人知道,请给我建议。

谢谢.. !!

+2

没有任何代码,这个问题是不可能没有猜测的答案。请包括[mcve]。 – havogt

回答

-2

尝试运行NVIDIA CUDA Samples中的“devicequery”程序以获取安装中的warp尺寸。如果它的显示warp size = 32,那么你的问题可能与它有关,否则特定的代码片段是强制性的以提供任何解决方案。