CUDA在单个内核启动中执行块的顺序

时间:2013-03-11 12:49:02

标签: cuda

我总共推出256个线程。当我通过启动单个块来执行此操作时,一切正常。但是当我用2x2块(8x8线程)启动线程时,内核无限循环。好吧,真正的问题是我的内核代码等待来自其他块的部分结果,并且在运行多个测试之后,我发现这些块是以随机顺序启动的,它们似乎是按顺序执行的。

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

1 个答案:

答案 0 :(得分:5)

是的,块并行运行。并行运行的块数取决于GPU的性能,但重要的是块的启动顺序是未定义不可定义。阅读更多here - 第2.2章,最后三段。