【发布时间】:2011-07-19 17:07:38
【问题描述】:
假设一个 CUDA GPU 可以在一个多处理器上同时有 48 个活动扭曲,即一个扭曲的 48 个块,或 2 个扭曲的 24 个块,...,因为来自多个块的所有活动扭曲都被调度执行,它看来block的大小对于GPU的占用来说并不重要(当然应该是32的倍数),不管是32、64还是128都没有区别吧?那么块的大小只是由计算任务和资源限制(共享内存还是寄存器)决定?
【问题讨论】:
-
@Heatsink 这个问题是不同的,因为考虑到每个 mp 有最大数量的活动扭曲(并且,我将添加,考虑到多个块可以驻留在一个 mp)。
-
目前我的理解是,无论计算任务和要求如何,您都可以选择块大小来增加受 MIN{resource (shared/register); 限制的占用率;最大活动经线(例如 48); max active blocks (e.g. 8) * block size} 以及将块平均分配到多处理器的数量。
标签: multithreading cuda