CUDA并行块的最佳数量

Tar*_*rek 2 parallel-processing cuda gpu gpgpu

如果每个块中的线程数已经大于CUDA核心数,那么在一次启动块的同时启动块网格是否有任何性能优势?

tro*_*ana 5

我认为有; 线程块被分配给流式多处理器(SM),并且SM进一步将每个块的线程划分为32个线程的warp(较新的体系结构可以处理更大的warp),这些线程被安排(按顺序)执行(更多).考虑到这一点,将每个计算分解为块将更快,以便它们占用尽可能多的SM.它也意味着完全构建块,这些块是卡支持的每个warp的多个线程(一个32或64个线程的块而不是40个线程,对于SM使用32线程warp的情况).

  • 另请注意,SM上同时运行的网格(块)数量有限(维基百科称费米和开普勒为16) - 我不知道这是否是正确的数字.因此,大量的小块不会让应用程序正确地填充硬件. (2认同)