網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
模型訓(xùn)練時(shí)GPU利用率太低的原因
最近在訓(xùn)練SSD模型時(shí)發(fā)現(xiàn)GPU的利用率只有8%,而CPU的利用率卻非常高。
后來(lái)了解到,一般使用CPU進(jìn)行數(shù)據(jù)的讀取和預(yù)處理,而使用GPU進(jìn)行模型的正向傳播和反向傳播。由于CPU數(shù)據(jù)讀取跟不上(讀到內(nèi)存+多線(xiàn)程+二進(jìn)制文件),而GPU的處理速度太快,導(dǎo)致GPU的利用率不高。
最后總結(jié)一下,有的時(shí)候模型訓(xùn)練慢并不是因?yàn)轱@卡不行或者模型太大,而是在跑模型過(guò)程中有一些其他的操作導(dǎo)致速度很慢,尤其是文件的IO操作,這會(huì)導(dǎo)致GPU得不到連續(xù)性使用,整體速度特別慢。
問(wèn)題的解決辦法
1,關(guān)閉一些日志記錄,減少日志IO操作頻率。
2,NVIDA提供了DALI庫(kù),可以將數(shù)據(jù)處理轉(zhuǎn)移到GPU上。
模型訓(xùn)練GPU利用率低,占用低怎么破
GPU 的顯存占用和算力利用直接影響模型的訓(xùn)練速度
GPU 顯存占用低問(wèn)題
1、提高batch_size
2、提高模型輸入尺寸
3、增加模型深度
推薦:優(yōu)先提高batch_size, 其他方法會(huì)對(duì)模型結(jié)構(gòu)產(chǎn)生影響
GPU利用率低問(wèn)題
1、提高線(xiàn)程數(shù)
2、打開(kāi)pin_memory
# 在pytorch 加載數(shù)據(jù)時(shí)提高線(xiàn)程數(shù),打開(kāi)pin_memory
torch.utils.data.DataLoader(image_datasets[x],
? ? ? ? ? ? ? ? ? ? ? ? ? ? batch_size=batch_size,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? shuffle=True,
? ? ? ? ? ? ? ? ? ? ? ? ? ? num_workers=8,
? ? ? ? ? ? ? ? ? ? ? ? ? ? pin_memory=True)
總結(jié)
原文鏈接:https://blog.csdn.net/weixin_43213895/article/details/108186447
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2022-07-14 C++類(lèi)和對(duì)象深入探索之分文件編寫(xiě)點(diǎn)和圓的關(guān)系詳解_C 語(yǔ)言
- 2022-11-04 關(guān)于docker部署服務(wù)時(shí)ip無(wú)法訪(fǎng)問(wèn)服務(wù)正常的問(wèn)題_docker
- 2022-09-14 jQuery實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能_jquery
- 2022-11-12 Python教程之成員和身份運(yùn)算符的用法詳解_python
- 2022-03-27 c++模擬實(shí)現(xiàn)string類(lèi)詳情_(kāi)C 語(yǔ)言
- 2022-08-15 對(duì)稱(chēng)式加密和非對(duì)稱(chēng)加密的對(duì)比
- 2022-04-25 ASP.NET?Core?MVC中Form?Tag?Helpers用法介紹_實(shí)用技巧
- 2022-11-19 python中celery的基本使用詳情_(kāi)python
- 欄目分類(lèi)
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支