alex_bn_lee

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【607】GPU、显存 查看与设置

参考:Linux查看GPU信息和使用情况

参考:Linux查看GPU信息和使用情况

参考:基于tensorflow的keras中GPU的使用

参考:keras实现多GPU或指定GPU的使用介绍

参考:【推荐】科普帖:深度学习中GPU和显存分析


  今天开始在 GPU 上面训练深度学习模型,首先遇到的问题就是 kernel dead,究其原因是因为 GPU 被占用,因此需要指定 GPU 来运行,而对于显存的理解,正常来说应该是图形显示的用处,但是在深度学习训练的时候,显存就类似于主板的内存,没有足够大的显存就类似于主板内存太小所导致的一系列问题。

  虽然 keras 代码可以自动识别 GPU,存在被占用的情况,因此需要自己设置 GPU,首先是查看 GPU 以及 显存 使用情况。

  在 Terminal 中输入 nvidia-smi,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(py3.6_tensorflow2.0) (base) [sankuai@xh-deliveryai-mapui01 unet-keras]$ nvidia-smi
Tue Jul 13 17:08:00 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.39       Driver Version: 418.39       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  Tesla M60           On   | 00000000:00:15.0 Off |                    0 |
| 42%   56C    P0    50W / 120W |   7333MiB /  7618MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla M60           On   | 00000000:00:16.0 Off |                    0 |
| 44%   62C    P0   122W / 120W |   4236MiB /  7618MiB |    100%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla M60           On   | 00000000:00:17.0 Off |                    0 |
| 34%   52C    P0    48W / 120W |     80MiB /  7618MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  Tesla M60           On   | 00000000:00:18.0 Off |                    0 |
| 36%   40C    P0    43W / 120W |     80MiB /  7618MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
 
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     35317      C   ...da3/envs/py3.6_tensorflow2.0/bin/python  7322MiB |
|    1     35317      C   ...da3/envs/py3.6_tensorflow2.0/bin/python    69MiB |
|    1     64279      C   python                                      4153MiB |
|    2     35317      C   ...da3/envs/py3.6_tensorflow2.0/bin/python    69MiB |
|    3     35317      C   ...da3/envs/py3.6_tensorflow2.0/bin/python    69MiB |
+-----------------------------------------------------------------------------+

  界面解读(并非针对本图,原链接

  • GPU : GPU编号,【笔者目前使用的是双卡,编号为0,1】;
  • Name:GPU型号,这里为GeForce GTX 1080 Ti;
  • Persistence-M :持续模式状态,如果为on,能耗大但新的GPU启动时耗时短,这里为off;
  • Fan : 风扇转速,取值为0%~100%;
  • Temp : 温度,单位是℃;
  • Perf : 显卡性能状态,取值为P0~P12,其中P0表示状态最大性能{未工作},P12表示状态最小性能{达到最大工作限度};
  • Pwe:Usage/Cap : 能耗,71w表示当前能耗,250w表示满负荷能耗;
  • Bus-Id : 涉及GPU总线的东西,domain:bus:device.function;
  • Disp.A : Display Active,表示GPU的显示是否初始化;
  • Memory-Usage : 显存使用情况, 11021M表示当前0号显卡使用大显存大小;11178M表示显卡大小;
  • Volatile GPU-Util : 表示GPU的实际利用率;
  • Uncorr. ECC:Error Correcting Code,错误检查与纠正;
  • Compute M:compute mode,计算模式。

  实时更新(可以修改数字,下面是 1s 更新一次)

1
watch -n 1 nvidia-smi

  设置可看见的方式,既可以选择想要被看到的 GPU:

  上图中的 GPU 0,显存大量被使用,GPU 1,GPU 被大量使用,因此只能选择 2,3,如下的代码所示:

1
os.environ["CUDA_VISIBLE_DEVICES"] = "2, 3"

  注意:一定要确保资源充足才能运行!!

posted on   McDelfino  阅读(1061)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2014-07-13 【143】360云盘资源
点击右上角即可分享
微信分享提示