小编Joh*_*les的帖子

如何计算正在启动的 CUDA 线程数?

我有一个 CUDA 卡,具有: Cuda 计算功能 (3.5) 如果我有一个诸如 <<<2000,512>>> 的调用,内核中发生的迭代次数是多少?我以为是(2000*512),但测试并不能证明这一点?我还想确认我计算变量的方式是正确的。

情况是,在内核中,我根据线程号递增传递的全局内存号:

  int thr = blockDim.x * blockIdx.x + threadIdx.x;
  worknumber = globalnumber + thr;
Run Code Online (Sandbox Code Playgroud)

因此,当我返回到 CPU 时,我想确切地知道有多少增量,以便我可以跟踪,这样当我调用内核 GPU 处理下一组数字时,我就不会重复或跳过数字。

编辑 :

__global__ void allin(uint64_t *lkey, const unsigned char *d_patfile)
{

    uint64_t kkey;
    int tmp;
    int thr = blockDim.x * blockIdx.x + threadIdx.x;
    kkey = *lkey + thr;

if (thr > tmp) {
    tmp = thr;
    printf("%u \n", thr);
    }
}
Run Code Online (Sandbox Code Playgroud)

cuda nvcc

2
推荐指数
1
解决办法
4333
查看次数

标签 统计

cuda ×1

nvcc ×1