跳到主要内容

gpu

在使用 GPU 时,如果需要监控 GPU 的运行状态,可以使用以下工具。

Grafana 面板​

EPTI 平台搭建的 Grafana 平台用于将服务和系统上报的数据进行可视化。 其中提供了一个 GPU 面板可以查看 GPU 运行的状态。

登录 Grafana​

Grafana 平台的域名是 grafana.epti.moe,进入后点击登陆窗的 Sign in with EPTI SSO 即可前往鉴权登录。你也可以在 auth.epti.moe 通过点击 System 标题下的 Grafana (系统数据看板) 按钮进入。

访问 GPU 面板​

登录进平台后,可以在首页的左下角,看到 Dashboards,是目前提供的预设面板,GPU 面板的名称是 Nvidia GPU Metrics。

Grafana GPU Dashboard

面板中按每个 GPU,显示了全面的数据,你可以在左上角的下拉菜单中,切换不同的 GPU,其中:

  • 0508d9c0-d8c0-94c1-8549-00311359a7a4 为 GPU 0
  • cafdc01d-1a7a-c212-9573-658907b4918e 为 GPU 1

系统级 nvidia-smi 信息 (非实时)​

因为系统用户的 nvidia-smi 信息会更完善,所以系统每分钟会输出 nvidia-smi 的信息到固定位置,并且会有脚本匹配每一个进程的归属。方便确认任务占用,协调资源的使用。访问地址:http://172.31.10.221/gpu/index.txt

Fri Dec  8 11:17:01 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.108.03 Driver Version: 510.108.03 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A100 80G... On | 00000000:AF:00.0 Off | 0 |
| N/A 70C P0 269W / 300W | 11699MiB / 81920MiB | 72% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100 80G... On | 00000000:D8:00.0 Off | 0 |
| N/A 39C P0 66W / 300W | 34608MiB / 81920MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 503162 C python 5401MiB |
| 0 N/A N/A 1344013 C /opt/conda/bin/python 2122MiB |
| 0 N/A N/A 1431120 C /opt/conda/bin/python 457MiB |
| 0 N/A N/A 1485214 C /opt/conda/bin/python 1134MiB |
| 0 N/A N/A 1578722 C /opt/conda/bin/python 457MiB |
| 0 N/A N/A 3417369 C /opt/conda/bin/python 2122MiB |
| 1 N/A N/A 1344013 C /opt/conda/bin/python 13458MiB |
| 1 N/A N/A 3417369 C /opt/conda/bin/python 21146MiB |
+-----------------------------------------------------------------------------+
Following container id -> owner are mapped one-to-one with the nvidia-smi processes:
cid: a32553d9daa99608c31661c32df0c6746d24c9fb5bb1afeefbb52080aac81cf2 -- container: USER-A
cid: 4ea8fb0ad08ff0059f9356e191b001855155f0c577b26a3f6c19ddf025c9ec8c -- container: USER-B
cid: a32553d9daa99608c31661c32df0c6746d24c9fb5bb1afeefbb52080aac81cf2 -- container: USER-A
cid: a32553d9daa99608c31661c32df0c6746d24c9fb5bb1afeefbb52080aac81cf2 -- container: USER-A
cid: a32553d9daa99608c31661c32df0c6746d24c9fb5bb1afeefbb52080aac81cf2 -- container: USER-A
cid: 4ea8fb0ad08ff0059f9356e191b001855155f0c577b26a3f6c19ddf025c9ec8c -- container: USER-B
cid: 4ea8fb0ad08ff0059f9356e191b001855155f0c577b26a3f6c19ddf025c9ec8c -- container: USER-B
cid: 4ea8fb0ad08ff0059f9356e191b001855155f0c577b26a3f6c19ddf025c9ec8c -- container: USER-B

以上是一个输出的实例,nvidia-smi 列出的进程和下发的 cid 信息是一一对应的。如 PID=503162 的进程是由 USER-A 容器启动的。

nvtop​

如果你想要试试的观测 GPU 内存的变化来调整模型的参数,你可以使用 nvtop 来获取一个图表式的 GPU 占用/显存占用表单。直接在 jupyterlab 的命令行中执行 nvtop 指令,即可实时监测状态。

nvtop GPU

py3mvml py3smi​

备注

py3mvml (sudo pip install py3mvml) 在新版镜像已经不再预装,需要自行安装。

Grafana 面板为数据采集工具定期上报,时效性略差。你可以选择直接使用 Nvidia 官方的 nvidia-smi 指令查看 GPU 状态,但因为容器限制,容器内运行 nvidia-smi 只能看到 GPU 状态,而进程的细节将丢失,那你可以选择在安装了 py3mvml python 包后,用 py3smi 来查看进程的 GPU 占用信息。(进程信息也不够全面,但是是一种方法。)

+-----------------------------------------------------------------------------+
| NVIDIA-SMI Driver Version: 510.108.03 |
+---------------------------------+---------------------+---------------------+
| GPU Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
+=================================+=====================+=====================+
| 0 N/A% 50C 0 71W / 300W | 2160MiB / 81920MiB | 0% Default |
| 1 N/A% 38C 0 43W / 300W | 853MiB / 81920MiB | 0% Default |
+---------------------------------+---------------------+---------------------+

+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU Owner PID Uptime Process Name Usage |
+=============================================================================+
| 0 ??? 1568413 1307MiB |
+-----------------------------------------------------------------------------+

推荐实践​

  • 在运行程序时,使用 nvtop 来实时查看显存、CPU utils 的实时变化来掌握模型的运行情况。
  • 在程序运行前后,使用非实时 nvidia-smi 信息来确认资源的使用情况,方便安排自己的实验或与其他人协调。
  • 长期运行的任务可以通过 GPU 面板里的历史数据确认运行的情况。