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

tec*_*eak 0 cuda

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

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

stu*_*hlo 6

是的,块并行运行.并行运行的块数取决于GPU的性能,但重要的是块的启动顺序是不确定的不可确定的.在这里阅读更多内容- 第2.2章,最后三段.