0

我总共启动了 256 个线程。当我通过启动一个块来做到这一点时,一切正常。但是,当我以 2x2 块(每个块(8x8 线程))启动线程时,内核会无限循环。好吧,真正的问题是我的内核代码等待来自其他块的部分结果,并且在运行了几次测试之后,我观察到这些块是以随机顺序启动的,它们似乎是按顺序执行的。

如果 CUDA 块是从同一个内核启动的,它们会并行运行吗?我使用的 GPU 不是限制,因为我只启动了 256 个线程,而 GTX 580 可以处理它们。(在 16x16 线程的单个块启动中一切正常)有没有办法可以知道执行顺序或指定它?

4

1 回答 1

6

是的,块并行运行。并行运行多少块取决于你的 GPU 的性能,但重要的是块的启动顺序是undefinedundefined在此处阅读更多信息- 第 2.2 章,最后三段。

于 2013-03-11T13:10:06.813 回答