CUDA Academy · 课时

占用率究竟意味着什么

比较活跃线程束数量与 SM 的最大值

第 1 / 4 课13 个步骤

占用率究竟意味着什么 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 占用率究竟意味着什么
  2. 寄存器与共享内存限制
  3. 占用率计算器 API
  4. 占用率并非全部
← 返回 CUDA Academy