【问题标题】:CUDA thread allocation [duplicate]CUDA线程分配[重复]
【发布时间】:2016-07-09 01:35:53
【问题描述】:

我正在尝试在CUDA 中实现一个名为"Conjugate Gradient Solver" 的迭代线性求解器,它可以求解形式方程,

A*x=b,

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

我的代码中包含许多操作,例如稀疏矩阵向量乘法,向量向量操作。

我的代码在矩阵大小最大为 31 X 31,但不超过 31 X 31 的情况下工作正常。这可能是因为分配给内核函数的线程数。我将线程分配为

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

这里 mul 是一个用于执行稀疏矩阵向量乘法的函数,nrows 是稀疏矩阵 A 中的行数。

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

如果有人知道,请告诉我。

谢谢你..!!

【问题讨论】:

标签: matrix cuda


【解决方案1】:

尝试运行 NVIDIA CUDA 示例中的 "devicequery" 程序,以获取安装中存在的扭曲大小。如果它显示 warp size=32 那么您的问题可能与它有关,否则必须使用特定代码 sn-p 才能给出任何解决方案。

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2012-12-24
    • 2014-02-07
    相关资源
    最近更新 更多