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%,
pytorch
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。