GPU Memory-Usage拉满,Volatile GPU-Util却为0的问题

使用PyTorch训练模型时竟然没有听见服务器的响声(震惊!)而且训练速度特别慢,所以查看了一下GPU的利用率,发现是0%!!!经过各种查之后终于找到了问题所在:
原来pytorch加载数据是要将数据从CPU中处理,然后送到GPU中,GPU拥有非常块的计算能力,但是受限于带宽,CPU送入的数据远远达不到GPU满载的需要。就像你给个一口能吃5个馒头的大胖子,一次只给吃指甲盖大小的馒头,根本感受不到好吧!所以为了解决这个问题,有两种办法:
1、几个人同时喂这个胖子。也就是把DataLoader中的num_works设置的大一点,eg.4,8,16…
2、把所有馒头都给胖子,让他自己吃。对应的就是把DataLoader中的pin_memory设为True,把数据映射到GPU中,这样就没有了搬运的过程,但是要求GPU有足够的空间。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部