首页 > 解决方案 > 入住率低的原因

问题描述

Nvidia网站提到了导致占用率低的几个原因,其中包括块之间的工作负载分布不均匀,这导致块囤积共享内存资源,直到块完成才释放它们。建议是减小块的大小,从而增加块的总数(当然,假设我们保持线程数不变)。

在 stackoverflow上也给出了一个很好的解释。

鉴于上述信息,正确的操作过程不应该是(为了最大化性能)简单地将块的大小设置为尽可能小(等于扭曲的大小,比如 32 个线程)吗?也就是说,除非您需要确保大量线程需要通过共享内存进行通信,否则我假设。

标签: cudagpgpu

解决方案


鉴于上述信息,正确的操作过程不应该是(为了最大化性能)简单地将块的大小设置为尽可能小(等于扭曲的大小,比如 32 个线程)吗?

不。

如此处的文档所示,每个多处理器的块数存在限制,这将使您在使用 32 个线程块时的最大理论占用率为 25% 或 50%,具体取决于您运行内核的硬件。


推荐阅读