深度总结,带你玩转 NVIDIA GPU

简介:

大家好,我是三十一[0],最近北京也出现疫情了,昨晚公司大楼临时管控,测核酸折腾到小一点才到家。前两天的抢菜、囤菜,加上这次的管控经历,这次真有些慌了。。。

本次分享的内容比较简单,主要是对日常工作使用 GPU 的常用命令做一个简单的总结,阅读全文预计花费 11 分钟,如果有缺失号友们可以私信我补充(划重点),如果对你有帮助,也欢迎号友们点赞收藏。

nvidia-smi 简介

NVIDIA 系统管理界面(nvidia-smi)是基于 NVIDIA Management Library(NVML)[1]的命令行实用程序,旨在帮助管理和监视 NVIDIA GPU 设备。

GPU 参数查看

一、查看 GPU 运行情况

nvidia-smi
Sun Mar 28 02:40:38 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.56       Driver Version: 418.56       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  On   | 00000000:02:00.0 Off |                  N/A |
| 23%   29C    P8     9W / 250W |    611MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  On   | 00000000:03:00.0 Off |                  N/A |
| 23%   30C    P8     9W / 250W |      0MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 108...  On   | 00000000:82:00.0 Off |                  N/A |
| 23%   30C    P8     9W / 250W |      0MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce GTX 108...  On   | 00000000:83:00.0 Off |                  N/A |
| 23%   30C    P8     9W / 250W |      0MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     33777      C   /usr/bin/python                              601MiB |
+-----------------------------------------------------------------------------+

以上是GEFORCE GTX 1080 Ti GPU 服务器的运行信息。

  • 第一行分别为:命令行工具版本、GPU驱动版本、CUDA版本
  • 第一栏分别为:GPU(GPU卡号,0~4)、Fan(风扇转速,0~100%)
  • 第二栏分别为:Name(显卡名字)、Temp(温度,摄氏度)
  • 第三栏分别为:Perf(性能状态,P0~P12,最高性能为P0,最低性能为P12)
  • 第四栏分别为:Persistence-M(持续模式,默认为关闭,比较节能,如果设置成ON,耗能比较大,但新的GPU应用启动时,花费的时间会更短)、Pwr:Usage/Cap(能耗)
  • 第五栏分别为:Bus-Id(GPU总线,domain:bus:device.function)
  • 第六栏分别为:Disp.A(GPU的显示是否初始化)、Memory-Usage(显存利用率)
  • 第七栏分别为:Volatile GPU-Util(GPU浮动利用率)
  • 第八栏分别为:Uncorr. ECC(Error Correcting Code错误检查和纠正码)、Compute M.(计算模式)
  • 下面一张表为:每个GPU Processes的资源占用情况

注:显存占用和 GPU 占用是两个不一样的,显卡是由 GPU 和显存等组成的,显存和 GPU 的关系可简单理解为内存和 CPU 的关系。

当然我们也可以每秒刷新查询一次,实现实时监控查询显卡状态效果

watch -n 1 nvidia-smi

或

nvidia-smi -l 1

二、查询所有 GPU 的当前详细信息

nvidia-smi -q

也可以单独过滤第 N 卡 的 GPU 信息

nvidia-smi -q -i 0

或者单独过滤当前的 GPU 时钟相关信息

nvidia-smi -q -d CLOCK

或者单独过滤每个 GPU 的可用时钟频率信息

nvidia-smi -q -d SUPPORTED_CLOCKS

三、获取 GPU ID 信息

nvidia-smi -L

从左到右分别为:GPU卡号、GPU型号、GPU物理UUID号

GPU 0: GeForce GTX 1080 Ti (UUID: GPU-5da6e67e-fd5a-88fb-7a0e-109c3284f7bf)
GPU 1: GeForce GTX 1080 Ti (UUID: GPU-ce9189e4-2e58-3a19-4332-cb5c7fac1aa6)
GPU 2: GeForce GTX 1080 Ti (UUID: GPU-242b3020-8e5c-813a-42d9-475766d52f9d)
GPU 3: GeForce GTX 1080 Ti (UUID: GPU-8f3d825f-7246-3daf-eaa1-37845b03aa03)

可以单独过滤出 GPU 卡号信息

nvidia-smi -L | cut -d ' ' -f 2 | cut -c 1

NVIDIA Docker 运行相关

docker run --runtime nvidia -e NVIDIA_VISIBLE_DEVICES=GPU-5da6e67e-fd5a-88fb-7a0e-109c3284f7bf -p 8000:8000 -v /www/models:/www/models -it --rm <项目/服务:v1.0.0>
  • --runtime nvidia:指定 NVIDIA GPU 驱动运行运行,只针对 GPU 机器生效。
  • -e NVIDIA_VISIBLE_DEVICES:指定物理机分配给 Docker 程序的 GPU 卡设备,常用可选值如下:

    • GPU-fef8089b 或 多个 UUID 逗号分隔:指定挂载具体 GPU 卡设备
    • all:指定挂载当前机器所有卡

GPUtil Python 组件

GPUtil 是一个 Python 模块,支持 Python 2.X 和 3.X。用于在 Python 中以编程方式使用 nvidia-smi 从 NVIDA GPU 获取 GPU 状态。

可以通过 pip 命令进行直接GPUtil 安装[2]

pip install GPUtil

查询 GPU 当前的使用情况

import GPUtil
GPUtil.showUtilization()

根据当前内存使用情况和负载确定的,自动选择合适的 GPU 卡

deviceIDs = GPUtil.getAvailable(order = 'first', limit = 1, maxLoad = 0.5, maxMemory = 0.5, includeNan=False, excludeID=[], excludeUUID=[])

核心参数解释:

  • order:确定返回可用 GPU 设备 ID 的排序,具体如下:

    • first:按升序排列可用的 GPU 设备 ID(默认)
    • last:按降序排列可用的 GPU 设备 ID
    • random:随机订购可用的 GPU 设备 ID
    • load:按负载递增排序可用的 GPU 设备 ID
    • memory:通过升序内存使用来排序可用的 GPU 设备 ID
  • limit:将返回的 GPU 设备 ID 数量限制为指定数量,必须是正整数。(默认 = 1)
  • maxLoad:被认为可用的 GPU 的最大当前相对负载。负载大于 的 GPUmaxLoad不会返回。(默认 = 0.5)
  • maxMemory:被视为可用的 GPU 的最大当前相对内存使用量。maxMemory不返回当前内存使用量大于的 GPU 。(默认 = 0.5)
  • excludeID:ID 列表,应从可用 GPU 列表中排除。见GPU类描述。(默认 = [])

GPU 常用设置

一、启动模式设置

针对 NVIDIA 首次运行启动加载慢,我们可以进行 Persistence-M 持续模式设置,如下:

sudo nvidia-smi -pm 1

二、节点分配设置

针对四卡机器或多卡机器,偶尔会出现卡性能不均匀现象。一个纯野生小技巧,我们可以优先选用边界节点,边界卡槽有利于散热。

References

往期文章

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
机器学习/深度学习 虚拟化 数据中心
NVIDIA T4和A10:不同应用场景下的GPU加速器选择
在数据中心和云计算领域,GPU加速器扮演着至关重要的角色。NVIDIA T4和A10是两款适用于不同应用场景的GPU加速器。本文将比较它们的性能和适用场景,帮助读者更好地选择适合自己需求的GPU实例。
7440 0
|
Kubernetes 调度 异构计算
一文搞懂 GPU 共享方案: NVIDIA Time Slicing
本文主要分享 GPU 共享方案,包括如何安装、配置以及使用,最后通过分析源码了 TImeSlicing 的具体实现。通过配置 TImeSlicing 可以实现 Pod 共享一块物理 GPU,以提升资源利用率。
894 11
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
1719 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU服务器租用费用_NVIDIA A10、V100、T4、P4、P100 GPU卡
阿里云GPU云服务器提供NVIDIA A10、V100、T4、P4、P100等多种GPU卡,结合高性能CPU,单实例计算性能高达5PFLOPS。支持2400万PPS及160Gbps内网带宽。实例规格多样,如A10卡GN7i(3213.99元/月)、V100-16G卡GN6v(3830.00元/月)等。适用于深度学习、科学计算、图形处理等场景。GPU软件如AIACC-Training、AIACC-Inference助力性能优化。购买方式灵活,客户案例包括深势科技、流利说、小牛翻译。
3795 0
|
XML 机器学习/深度学习 监控
性能监控之Telegraf+InfluxDB+Grafana NVIDIA GPU实时监控
【6月更文挑战12天】性能监控之Telegraf+InfluxDB+Grafana NVIDIA GPU实时监控
1360 0
|
弹性计算 虚拟化 异构计算
阿里云GPU服务器NVIDIA A100 GPU卡租用价格表
阿里云GPU服务器NVIDIA A100 GPU卡租用价格表,阿里云GPU服务器租用价格表包括包年包月价格、一个小时收费以及学生GPU服务器租用费用,阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡,GPU云服务器gn6i可享受3折优惠,阿里云百科分享阿里云GPU服务器租用价格表、GPU一个小时多少钱以及学生GPU服务器收费价格表
23748 0
阿里云GPU服务器NVIDIA A100 GPU卡租用价格表
|
弹性计算 并行计算 UED
GPU实例使用--自动安装NVIDIA GPU驱动和CUDA组件
GPU 云服务器正常工作需提前安装正确的基础设施软件,对于搭载了 NVIDIA 系列 GPU卡的实例而言,如果把 NVIDIA GPU 用作通用计算,则需安装 NVIDIA GPU 驱动、 CUDA、cuDNN等软件。
103126 3
|
弹性计算 并行计算 UED
带你读《弹性计算技术指导及场景应用》——4. 自动安装NVIDIA GPU驱动和CUDA组件
带你读《弹性计算技术指导及场景应用》——4. 自动安装NVIDIA GPU驱动和CUDA组件
546 0
|
编解码 并行计算 计算机视觉
ffmpeg硬件编解码Nvidia GPU
ffmpeg硬件编解码Nvidia GPU
1662 0
|
弹性计算 虚拟化 异构计算
阿里云GPU服务器NVIDIA A10 GPU卡包年包月、按小时收费价格表
阿里云GPU服务器NVIDIA A10 GPU卡包年包月、按小时收费价格表
2674 0

热门文章

最新文章