日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

模型訓練時GPU利用率太低的原因及解決_python

作者:.?小王同學. ? 更新時間: 2023-05-30 編程語言

模型訓練時GPU利用率太低的原因

最近在訓練SSD模型時發(fā)現(xiàn)GPU的利用率只有8%,而CPU的利用率卻非常高。

后來了解到,一般使用CPU進行數(shù)據(jù)的讀取和預處理,而使用GPU進行模型的正向傳播和反向傳播。由于CPU數(shù)據(jù)讀取跟不上(讀到內存+多線程+二進制文件),而GPU的處理速度太快,導致GPU的利用率不高。

最后總結一下,有的時候模型訓練慢并不是因為顯卡不行或者模型太大,而是在跑模型過程中有一些其他的操作導致速度很慢,尤其是文件的IO操作,這會導致GPU得不到連續(xù)性使用,整體速度特別慢。

問題的解決辦法

1,關閉一些日志記錄,減少日志IO操作頻率。

2,NVIDA提供了DALI庫,可以將數(shù)據(jù)處理轉移到GPU上。

模型訓練GPU利用率低,占用低怎么破

GPU 的顯存占用和算力利用直接影響模型的訓練速度

GPU 顯存占用低問題

1、提高batch_size

2、提高模型輸入尺寸

3、增加模型深度

推薦:優(yōu)先提高batch_size, 其他方法會對模型結構產(chǎn)生影響

GPU利用率低問題

1、提高線程數(shù)

2、打開pin_memory

# 在pytorch 加載數(shù)據(jù)時提高線程數(shù),打開pin_memory
torch.utils.data.DataLoader(image_datasets[x],
? ? ? ? ? ? ? ? ? ? ? ? ? ? batch_size=batch_size,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? shuffle=True,
? ? ? ? ? ? ? ? ? ? ? ? ? ? num_workers=8,
? ? ? ? ? ? ? ? ? ? ? ? ? ? pin_memory=True)

總結

原文鏈接:https://blog.csdn.net/weixin_43213895/article/details/108186447

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新