如何在gtx780的40kB共享内存上同时发现多少线程块可能同时处于活动状态? 如何查看每个SM的最大入住人数?
答案 0 :(得分:1)
最大占用率取决于您的块大小,每个线程内核功能所需的寄存器数量以及每个块所需的共享内存量。您可以根据设备特定的限制自行计算,并可以查询。如果您使用的是最新版本的CUDA,则driver API和runtime API都具有计算占用率的功能。
请注意,您将只能计算理论上的最大占用率。无论您如何计算该数字,都没有保证这是将始终在设备上运行的实际数字。使用此数字作为指导,例如,确定最适合运行的启动配置。但是不要编写代码来依赖于实际同时运行的特定数量的块。确保并发运行的块数的唯一方法是使用CUDA 9+中较新的“协作内核启动”功能。