• 【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,如下所示:

    (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 更新一次)

    watch -n 1 nvidia-smi
    

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

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

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

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

  • 相关阅读:
    C#与面向对象编程语言
    Windows Communication Fundation(WCF)的安装和一些疑惑
    Windows Communication Foundation入门(Part Two)
    Design & Pattern团队公告
    解决方案、项目、程序集、命名空间
    你注意到了吗?
    我的个人主页
    PetShop与设计
    CKEditor/CKFinder升级心得
    [转贴]基于UDP、TCP协议的C#网络编程之一
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/15007448.html
Copyright © 2020-2023  润新知