pytorch cpu占用较高

举报
风吹稻花香 发表于 2021/06/04 23:08:29 2021/06/04
【摘要】   方法一、torch.set_num_threads(int thread) (亲测比较有效) linux有效,不用时cpu占用能到5000%,设置3后,就到到300%。   法二、export OMP_NUM_THREADS = 1 (未测)   PyTorch 随机数生成占用 CPU 过高 今天在使...

 

方法一、torch.set_num_threads(int thread) (亲测比较有效)

linux有效,不用时cpu占用能到5000%,设置3后,就到到300%。

 

法二、export OMP_NUM_THREADS = 1 (未测)

 

PyTorch 随机数生成占用 CPU 过高
今天在使用 pytorch 的过程中,发现 CPU 占用率过高。经过检查,发现是因为先在 CPU 中生成了随机数,然后再调用.to(device)传到 GPU,这样导致效率变得很低,并且CPU 和 GPU 都被消耗。

查阅PyTorch文档后发现,torch.randn(shape, out)可以直接在GPU中生成随机数,只要shape是tensor.cuda.Tensor类型即可。这样,就可以避免在 CPU 中生成过大的矩阵,而 shape 变量是很小的。因此,下面的代码就可以进行这种操作了。

noise = torch.cuda.FloatTensor(shape) if torch.cuda.is_available() else torch.FloatTensor(shape)
torch.randn(shape, out=noise)

 

windows也有效:

不设置,cpu51%,时间15ms

不设置的时候,torch会自动加载很多cpu,导致CPU占用很高。

 

2的时候,cpu17%,时间15ms变为25ms

4的时候,cpu34%,时间17ms

8的时候,cpu67%,

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/104347069

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。