Cuda说明限制

时间:2017-11-11 11:28:57

标签: c++ cuda limit instructions

在cuda线程上可以执行多少指令是否有限制?例如,如果我在下面运行此代码,总计大约1000万次空循环的迭代,它永远不会到达最后一个printf(具有相同迭代次数的单个循环的结果相同)。但是,如果我削掉两个内部循环,只留下10.000次迭代,那就确实如此。这是什么原因? :)

不应该空代码能够永远运行吗?内核调用和函数如下所示:

//The call in main()
simStepGPU <<< 1, 128>>>();
cudaDeviceSynchronize();


__global__ void simStepGPU(Particle *array, int len) {

    //printf("START OF THREAD");
    for (int it = 0; it < 100; it++) {
        for (int it2 = 0; it2 < 100; it2++) {
            for (int it3 = 0; it3 < 100; it3++) {
                for (int it4 = 0; it4 < 100; it4++) {

                }
            }
        }
    }

    printf("END OF THREAD");
}

这是我的第一篇stackoverflow帖子,所以请你好。

0 个答案:

没有答案