用pytorch训练,但是发现GPU利用率低下,完全是浪费四卡资源。观察了代码执行时间,主要时间浪费在dataloader上。然后把数据集从HDD移植到了SSD,加速很明显差不多提升一倍吧,但还是有明显延迟,是否还有其他从硬体或代码设计的角度提升训练效率的方法?


Lyken17/Efficient-PyTorch?

github.com图标https://github.com/Fangyh09/Image2LMDB?

github.com

https://github.com/vahidk/tfrecord?

github.com


不要用hdd传输数据,建议全用ssd,你是本地训练么?多问一句,你的四卡是什么卡?


第一个方案就是增加dataloader的线程数量,使用queue方式对dataloader加速。

第二个方案就是讲数据读取与训练主体,每次训练启动两个服务,一个用于数据预处理,另外训练进程从服务中获取预处理的数据,实现GPU资源的充分利用。


shm设置大一点


fast.ai 18分钟训练imagenet了解一下


推荐阅读:
相关文章