Pytorch分布式训练,其他GPU进程占用GPU0的原因

问题

最近跑师兄21年的论文代码,代码里使用了Pytorch分布式训练,在单机8卡的情况下,运行代码,出现如下问题。

也就是说GPU(1..7)上的进程占用了GPU0,这导致GPU0占的显存太多,以至于我的batchsize不能和原论文保持一致。

解决方法

我一点一点进行debug。

首先,在数据加载部分,由于没有将local_rankworld_size传入get_cifar_iter函数,导致后续使用DALI创建pipeline时使用了默认的local_rank=0,因此会在GPU0上多出该GPU下的进程

其次,在使用torch.load加载模型权重时,没有设置map_location,于是会默认加载到GPU0上,下图我选择将模型权重加载到cpu。虽然,这会使训练速度变慢,但为了和论文的batchsize保持一致也不得不这样做了。-.-

参考文献

  1. nn.parallel.DistributedDataParallel多卡训练,第一张卡会多出进程?
相关推荐
weixin_45858012几秒前
如何自定义修改 Traccar Web 界面模板
jvm·数据库·python
m0_515098423 分钟前
如何修改AWR保留时间_将默认8天保留期延长至30天的设置
jvm·数据库·python
qq_654366984 分钟前
如何在 macOS 上为 PHP 8.0 正确集成 XML-RPC 支持
jvm·数据库·python
大江东去浪淘尽千古风流人物5 分钟前
【UV-SLAM 】彻底吃透UV-SLAM:创新原理、工程实现与直线几何核心代码详解
数据库·人工智能·python·机器学习·oracle·uv
2301_773553627 分钟前
Bootstrap 4.5 实现多级下拉菜单并行展开(不自动关闭其他已开菜单)
jvm·数据库·python
Greyson18 分钟前
MySQL怎样在触发器中引用新旧数据行_NEW与OLD关键字详解
jvm·数据库·python
小糖学代码8 分钟前
LLM系列:2.pytorch入门:6.单层神经网络
人工智能·pytorch·python·深度学习·神经网络
Irene19918 分钟前
Python 面向对象总结:对比 JavaScript 的面向对象
javascript·python·面向对象
思绪无限9 分钟前
YOLOv5至YOLOv12升级:无人机目标检测系统的设计与实现(完整代码+界面+数据集项目)
人工智能·python·深度学习·目标检测·计算机视觉·无人机·yolov12
m0_743623929 分钟前
Vue 3 中集成 Three.js 场景的完整实现指南
jvm·数据库·python