nvidia-smi命令详解和一些高阶技巧讲解
发布日期:2025-01-04 10:43 点击次数:77
nvidia-smi命令详解
1. nvidia-smi命令介绍
在深度学习等场景中,nvidia-smi命令是我们经常接触到的一个命令,用来查看GPU的占用情况,可以说是一个必须要学会的命令了,普通用户一般用的比较多的就是nvidia-smi的命令,其实掌握了这一个命令也就能够覆盖绝大多数场景了,但是本质求真务实的态度,本文调研了相关资料,整理了一些比较常用的nvidia-smi命令的其他用法。
2. nvidia-smi 支持的 GPU
NVIDIA 的 SMI 工具基本上支持自 2011 年以来发布的任何 NVIDIA GPU。其中包括来自 Fermi 和更高架构系列(Kepler、Maxwell、Pascal、Volta , Turing, Ampere等)的 Tesla、Quadro 和 GeForce 设备。支持的产品包括:特斯拉:S1070、S2050、C1060、C2050/70、M2050/70/90、X2070/90、K10、K20、K20X、K40、K80、M40、P40、P100、V100、A100、H100。Quadro:4000、5000、6000、7000、M2070-Q、K 系列、M 系列、P 系列、RTX 系列GeForce:不同级别的支持,可用的指标少于 Tesla 和 Quadro 产品。
3. 桌面显卡和服务器显卡均支持的命令
(1)nvidia-smi
下面详细介绍一下每个部分分别表示什么:
下面是上图的一些具体介绍,比较简单的我就不列举了,只列举一些不常见的:
持久模式:persistence mode 能够让 GPU 更快响应任务,待机功耗增加。 关闭 persistence mode 同样能够启动任务。 持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少风扇转速:主动散热的显卡一般会有这个参数,服务器显卡一般是被动散热,这个参数显示N/A。 从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。 有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如有些实验室的服务器是常年放在空调房间里的)。 温度:单位是摄氏度。 性能状态:从P0到P12,P0表示最大性能,P12表示状态最小性能。 Disp.A:Display Active,表示GPU的显示是否初始化。 ECC纠错:这个只有近几年的显卡才具有这个功能,老版显卡不具备这个功能。 MIG:Multi-Instance GPU,多实例显卡技术,支持将一张显卡划分成多张显卡使用,目前只支持安培架构显卡。新的多实例GPU (MIG)特性允许GPU(从NVIDIA安培架构开始)被安全地划分为多达7个独立的GPU实例。用于CUDA应用,为多个用户提供独立的GPU资源,以实现最佳的GPU利用率。对于GPU计算能力未完全饱和的工作负载,该特性尤其有益,因此用户可能希望并行运行不同的工作负载,以最大化利用率。
开启MIG的显卡使用nvidia-smi命令如下所示:
如上图我将GPU 6和7两张显卡使用MIG技术虚拟化成4张显卡,分别是GPU6:0,GPU6:1,GPU7:0,GPU7:1每张卡的显存为20GB,MIG技术支持将A100显卡虚拟化成7张显卡,具体介绍我会在之后的博客中更新。
(2)nvidia-smi -h
输入 nvidia-smi -h 可查看该命令的帮助手册,如下所示:
(3)nvidia-smi -L
输入 nvidia-smi -L 可以列出所有的GPU设备及其UUID,如下所示:
(4)nvidia-smi -q
输入 nvidia-smi -q 可以列出所有GPU设备的详细信息。如果只想列出某一GPU的详细信息,可使用 -i 选项指定,如下图所示:
(5)nvidia-smi -l [second]
输入 nvidia-smi -l [second] 后会每隔 second 秒刷新一次面板。监控GPU利用率通常会选择每隔1秒刷新一次,例如:
(6)nvidia-smi -pm
在 Linux 上,您可以将 GPU 设置为持久模式,以保持加载 NVIDIA 驱动程序,即使没有应用程序正在访问这些卡。 当您运行一系列短作业时,这特别有用。 持久模式在每个空闲 GPU 上使用更多瓦特,但可以防止每次启动 GPU 应用程序时出现相当长的延迟。 如果您为 GPU 分配了特定的时钟速度或功率限制(因为卸载 NVIDIA 驱动程序时这些更改会丢失),这也是必要的。 通过运行以下命令在所有 GPU 上启用持久性模式:
也可以指定开启某个显卡的持久模式:
(7)nvidia-smi dmon
以 1 秒的更新间隔监控整体 GPU 使用情况
(8)nvidia-smi pmon
以 1 秒的更新间隔监控每个进程的 GPU 使用情况:
(9)…
4. 服务器显卡才支持的命令
(1)使用 nvidia-smi 查看系统/GPU 拓扑和 NVLink
要正确利用更高级的 NVIDIA GPU 功能(例如 GPU Direct),正确配置系统拓扑至关重要。 拓扑是指各种系统设备(GPU、InfiniBand HCA、存储控制器等)如何相互连接以及如何连接到系统的 CPU。 某些拓扑类型会降低性能甚至导致某些功能不可用。 为了帮助解决此类问题,nvidia-smi 支持系统拓扑和连接查询:
(2)显卡分片技术
详见之后的更新
还有其他有用命令欢迎扔到评论区
参考文献
[1] nvidia-smi详解 https://blog.csdn.net/kunhe0512/article/details/126265050[2] nvidia-smi常用选项汇总 https://raelum.blog.csdn.net/article/details/126914188[3] nvidia-smi 命令详解 https://blog.csdn.net/m0_60721514/article/details/125241141[4] 多实例显卡指南 https://docs.nvidia.com/datacenter/tesla/mig-user-guide/index.html
到此这篇关于nvidia-smi命令详解和一些高阶技巧介绍的文章就介绍到这了,更多相关nvidia-smi命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!