占用率究竟意味着什么
比较活跃线程束数量与 SM 的最大值
占用率究竟意味着什么 是 CoddyKit 上的免费 CUDA Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 CUDA Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 CUDA Academy 课程共包含 4 节课。
认识占用率
每个 GPU 核心都称为一个 SM,可以同时保持许多线程束驻留。占用率衡量的是这部分容量实际有多满。🎯
一个简单的比率
占用率是 SM 上活动线程束数量与该 SM 所能容纳的最大线程束数量之比。驻留线程束越多,机器的利用程度就越高。
为什么驻留线程束很重要
当一个线程束因缓慢的内存读取而停顿时,SM 会立即运行另一个就绪线程束。GPU 正是通过这种切换来隐藏延迟的。
SM 的最大容量
每种架构都会设定上限,通常每个 SM 最多容纳64 个线程束。占用率会将您的内核与这一硬件上限进行比较。
理论占用率与实际占用率
理论占用率是启动配置在纸面上允许达到的占用率。实际占用率则是实际运行的结果,由性能分析器测量得到。
一个快速示例
如果一个 SM 可以容纳 64 个线程束,而您的内核只能保持 32 个线程束驻留,那么您的占用率就是 50%。一半的延迟隐藏能力处于闲置状态。
以线程束计数
占用率始终以线程束为单位计算,而不是以单个线程计算。一个线程束包含 32 个线程,因此一个包含 256 个线程的线程块正好是 8 个线程束。
线程块会转换为线程束
调度器会将每个驻留线程块拆分为线程束。因此,每个 SM 的线程块数乘以每个线程块中的线程束数,就是活动线程束数量。
什么会限制它
有三种资源会限制占用率:每个线程使用的寄存器、每个线程块使用的共享内存,以及 SM 的线程束上限。其中最严格的限制会起决定作用。
越高并不总是越好
更高的占用率通常能更好地隐藏延迟,但超过某个程度后不会带来额外收益。占用率是工具,而不是最终目标。
在哪里查看
Nsight Compute 等性能分析器会在内核旁边报告实际占用率。这个数值就是您进行调优的起点。
快速检查
思考一下,占用率实际衡量的是什么。
回顾
您学会了占用率是活动线程束数除以 SM 的最大线程束数,始终以线程束计数,并且能够帮助隐藏延迟。🚀
用 AI 导师学习 C++ — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「占用率究竟意味着什么」课时是免费的吗?
是的 — 「占用率究竟意味着什么」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 CUDA Academy 课程的其余内容,请升级到 CoddyKit PRO。 CUDA Academy 课程共包含 4 节课。
「占用率究竟意味着什么」这节课中我会学到什么?
比较活跃线程束数量与 SM 的最大值 你通过在浏览器中直接运行的动手代码来练习 CUDA Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 CUDA Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 CUDA Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「占用率究竟意味着什么」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 CUDA Academy 课中编写并运行代码吗?
能。每节 CUDA Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 占用率究竟意味着什么
- 寄存器与共享内存限制
- 占用率计算器 API
- 占用率并非全部