小智 9
5120 threads. 5120 groups. 1 thread per group
.每个组(1个线程)将采用一个处理器.您无法同步其中任何一个(传统意义上的).2560 threads. 1280 groups. 2 threads in each group
.每个组(2个线程)将采用一个处理器.您可以同步这两个线程(传统意义上的).640 threads. 160 groups. 4 threads in each group
.每个组(4个线程)将采用一个处理器.您可以同步这四个线程(传统意义上的).在OpenCL中,您需要根据线程总数来表示全局工作大小.底层OpenCL API将查看全局工作大小并除以本地工作大小以确定您的线程安排.
现在(这是一个普遍的建议.可能有些情况你需要这样做,但现在......)
这是一个糟糕的主意.显然.您通过一次提供1个线程来浪费处理器时间.虽然这可能不是CPU的世界末日,但它适用于现代GPU.为什么?因为GPU上的每个处理器都有许多核心.一切都准备好了.在这种情况下,只有其中一个适用.如果需要,您无法同步线程.
一样.
一样.
如果我没记错的话,NVIDIA建议一组中至少有32个线程来获得最佳性能.