pytorch high memory usage but low volatile gpu-util

问题:pytorch程序GPU的使用率很低。 

如图,我使用5、6号显卡执行pytorch的程序,GPU使用率很低;而其他显卡跑的tensorflow网络,GPU使用率都正常。

一般情况下,深度学习遇到这种问题,上来都会认为是dataloader读数据的效率问题:由于读取数据耗时教久,往往程序不能执行GPU上深度网络的计算代码。

探索:

使用7号显卡debug该pytorch程序,输出每次迭代读取数据与网络计算消耗的时间。结果显示

1.读取数据的时间比网络计算少两个数量级

2.期间7号显卡显卡使用率也很正常

3.期间5,6号显卡的使用率也回升了

关闭7号显卡上的程序后,发现

1. 5,6号显卡的使用率随即下降

2. 7号显卡偶尔有3%的volatile gpu-util

我感觉应该是有程序在使用7号显卡,同时也会导致5、6号显卡使用率下降。

解决方案:

这个nvidia forum中提到,应该是GPU默认打开了ECC(error correcting code, 错误检查和纠正),会占用显存和降低显卡性能,打开Persistence Mode Enabled(用root执行nvidia-smi -pm 1)后5、6号显卡的显卡使用率恢复正常水平,问题解决。

疑问:

1.为什么tensorflow的程序不会被ECC影响?

2.为什么在7号显卡上执行pytorch程序后,其他显卡的使用率都会恢复正常?

后面有空的话可以查下这两个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值