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多卡训练,第一张卡会多出进程?
相关推荐
m0_702036536 分钟前
防止SQL注入的运维实践_实时清理数据库缓存与历史记录
jvm·数据库·python
05候补工程师7 分钟前
[架构思维] 拒绝面条代码!我用一套“基石指令”调教 AI 撸出了 408 抽测系统
python·考研·系统架构·ai编程
2301_779622418 分钟前
Redis怎样合并多天访客数据_通过PFMERGE指令聚合HyperLogLog记录
jvm·数据库·python
m0_748554819 分钟前
如何监控集群 interconnect_ping与traceroute验证心跳通畅
jvm·数据库·python
奔跑的蜗牛FelixChioa9 分钟前
python异常处理机制详解
开发语言·python
2301_7756398910 分钟前
Redis怎样查询集群的整体健康状态_使用cluster info指令查看槽位覆盖率与节点状态
jvm·数据库·python
zhoutongsheng11 分钟前
CSS如何处理带有状态切换的折叠菜单_利用BEM修饰符管理状态
jvm·数据库·python
dfdfadffa13 分钟前
Redis怎样配置基础连接参数
jvm·数据库·python
测试员周周13 分钟前
【AI测试功能4】别再用传统等价类设计 AI测试用例了——语义覆盖的四种变体方法
人工智能·python·测试
2301_7820404514 分钟前
golang如何实现图片水印批量添加_golang图片水印批量添加实现策略
jvm·数据库·python