以下引用记录来自此blog

上次被老板教授了好久,出现西安卡利用率一直很低的情况千万不能认为它不是问题,而一定要想办法解决。比如可以在加载训练图像的过程中(__getitem__方法中)设定数据增强过程中每个步骤的时间点,对每个步骤的时间点进行打印,判断花费时间较多的是哪些步骤,然后尝试对代码进行优化,因为torhc.utils.data中的__getitem__方法是由CPU上的一个num_workers执行一遍的,如果__getitem__方法执行太慢,则会导致IO速度变慢,即GPU在大多数时间都处于等待CPU读取数据并处理成torch.cuda.tensor的过程,一旦CPU读取一个batch size的数据完毕,GPU很快就计算结束,从而看到的现象是:GPU在绝大多数时间都处于利用率很低的状态。所以我总结的是,如果GPU显卡利用率比较低,最可能的就是CPU数据IO耗费时间太多(我之前就是由于数据增强的裁剪过程为了裁剪到object使用了for循环,导致这一操作很耗时间),还有可能的原因是数据tensor或者模型model根本就没有加载到GPU cuda上面。其实还有一种可能性很小的原因就是,在网络前向传播的过程中某些特殊的操作对GPU的利用率不高,当然指的是除了网络(卷积,全连接)操作之外的其他的对于tensor的操作,比如我之前的faster R-CNN显卡利用率低就是因为RPN中的NMS算法速度太慢,大约2-3秒一张图,虽然这时候tensor特征图在CUDA上面,而且NMS也使用了CUDA kernel编译后的代码,也就是说NMS的计算仍然是利用的CPU(此处个人觉得应该是GPU),但是由于NMS算法并行度不高,所以对于GPU的利用不多,导致了显卡利用率低,之前那个是怎么解决的呢?哈哈,说到底还是环境的问题非常重要,之前的faster R-CNN代码在python2 CUDA9.0 pytorch 0.4.0 环境下编译成功我就没有再仔细纠结环境问题,直接运行了,直到后来偶然换成python3 CUDA9.0 pytorch 0.4.1 环境才极大地提高了显卡利用率,并且通过设置了几十个打印时间点之后发现,真的就是NMS的速度现在基本能维持在0.02-0.2数量级范围内。

  • 个人总结:

    1. 模型或者tensor没有放到GPU上
    2. CPU读写IO太耗时
    3. 某些操作并行度低(可能性较低)

GPU利用率不高问题记录相关推荐

  1. 深度学习训练时GPU利用率忽高忽低如何解决?

    在windowas上进行深度学习的时候,可能会出现GPU负载忽高忽低的现象,(突然98,突然50...) 这种情况很有可能是 读数据或者数据预处理的时间过长,读数据部分可以尝试把全部或者部分数据放在内 ...

  2. 深度学习训练时GPU利用率忽高忽低问题

    gpu利用率经常在0-99%之间跳动,找了一圈原因,可能是以下几点: 1. 数据预处理:CPU预处理太长,GPU空闲跟不上 解决办法: 可能是读数据或者数据预处理的时间过长,读数据部分可以尝试把全部或 ...

  3. TensorFlow 显存占用率高 GPU利用率低

    文章目录 nvidia-smi指令 动态刷新GPU信息 显存占用高,但是CPU使用率低 回头再看 nvidia-smi指令 命令位置: 所以Path中添加环境变量: C:\Program Files\ ...

  4. 提高 Kubernetes 中的 GPU 利用率

    提高 Kubernetes 中的 GPU 利用率 对于可扩展的数据中心性能,NVIDIA GPU 已成为必备品. 由数千个计算内核支持的 NVIDIA GPU 并行处理能力对于加速不同行业的各种应用程 ...

  5. 深度学习PyTorch,TensorFlow中GPU利用率较低,CPU利用率很低,且模型训练速度很慢的问题总结与分析

    在深度学习模型训练过程中,在服务器端或者本地pc端,输入nvidia-smi来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然后采用top来查看CPU ...

  6. tensorflow gpu利用率为0_训练效率低?GPU利用率上不去?快来看看别人家的tricks吧...

    前言 首先,如果你现在已经很熟悉tf.data+estimator了,可以把文章x掉了╮( ̄▽ ̄"")╭ 但是!如果现在还是在进行session.run(..)的话!尤其是苦恼于G ...

  7. 跑python gpu利用率低_训练效率低?GPU利用率上不去?快来看看别人家的tricks吧~...

    前言 首先,如果你现在已经很熟悉tf.data+estimator了,可以把文章x掉了╮( ̄▽ ̄"")╭ 但是!如果现在还是在进行session.run(..)的话!尤其是苦恼于G ...

  8. 训练效率低?GPU利用率上不去?快来看看别人家的tricks吧~

    前言 首先,如果你现在已经很熟悉tf.data+estimator了,可以把文章x掉了╮( ̄▽ ̄"")╭ 但是!如果现在还是在进行session.run(..)的话!尤其是苦恼于G ...

  9. python视频处理加速的库_VPF:适用于 Python 的开源视频处理框架,加速视频任务、提高 GPU 利用率...

    原标题:VPF:适用于 Python 的开源视频处理框架,加速视频任务.提高 GPU 利用率 雷锋网 AI 开发者按:近日,NVIDIA 开源了适用于 Python 的视频处理框架「VideoProc ...

最新文章

  1. 小师妹学JVM之:JIT中的PrintAssembly
  2. 文献记录(part26)--Action recognition using kinematics posture feature on 3D skeleton joint locations
  3. 外网DNS系统外网访问及邮件系统外网域名访问问题
  4. git 本地项目关联线上仓库报错 failed to push some refs to “XXX”
  5. Leetcode120.三角形的最小路径和 -- DP算法
  6. 拼团功能实现 php_PHP实现微信退款功能
  7. .Net程序猿玩转Android开发---(8)表格布局TableLayout
  8. Carrot2 in action 初步印象
  9. Linux系统U盘怎么格式化,u盘怎么格式化各系统教程
  10. Ubuntu 18.04.01安装五笔输入法
  11. 三菱 FX5U PLC 4轴程序。 控制松下伺服3个, 步进电机一个, 四轴自动堆垛码垛设备程序, 回原点动作用专用的原点回归指令写的
  12. 质量管理三个概念:QC、QA和QM 解析
  13. kjb文件 解析_在Linux上使用lnav监控和分析Apache日志文件工具
  14. 从新生儿性别比例数据,看各地重男轻女程度高低
  15. 树莓派3B学习资源链接——Ideas Deserve Spreading.
  16. macos 中先安装了pyqt5再安装opencv出现的QtCore冲突问题
  17. Python从入门到实践:7-5电影票循环的四种写法,动手试一试
  18. 物流赛道加速内卷,安迅上市能否博得更大席位?
  19. 关于QT TTS ( TextToSpeech ) 编码导致的只能读英文不能读中文的问题
  20. SecureCRT 下载安装与连接

热门文章

  1. LPDDR5之Link ECC3
  2. 乔布斯自传自述-新浪
  3. 网络流量异常检测综述
  4. C++学习记录(B站小甲鱼C++快速入门视频)
  5. html表白earth,表白的英文句子
  6. 损失函数——对数损失(Logarithmic Loss,Log Loss)
  7. 新能源汽车电池的发展及类型
  8. python机器学习之分类预测
  9. 哪种类型的光隔离器适合您的信号?
  10. 基于51单片机的信号发生器