最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pytorch GPU內(nèi)存占用很高,但是利用率很低如何解決

 更新時(shí)間:2021年06月01日 09:56:29   作者:Golden-sun  
這篇文章主要介紹了Pytorch GPU內(nèi)存占用很高,但是利用率很低的原因及解決方法,具有很好的參考價(jià)值,希望對(duì)大家 有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1.GPU 占用率,利用率

輸入nvidia-smi來(lái)觀察顯卡的GPU內(nèi)存占用率(Memory-Usage),顯卡的GPU利用率(GPU-util)

GPU內(nèi)存占用率(Memory-Usage) 往往是由于模型的大小以及batch size的大小,來(lái)影響這個(gè)指標(biāo) 顯卡的GPU利用率(GPU-util) 往往跟代碼有關(guān),有更多的io運(yùn)算,cpu運(yùn)算就會(huì)導(dǎo)致利用率變低。

比如打印loss, 輸出圖像,等等

在這里插入圖片描述

這個(gè)時(shí)候發(fā)現(xiàn),有一塊卡的利用率經(jīng)常跳到1%,而其他三塊卡經(jīng)常維持在70%以上

2.原因分析

當(dāng)沒(méi)有設(shè)置好CPU的線程數(shù)時(shí),Volatile GPU-Util參數(shù)是在反復(fù)的跳動(dòng)的,0%,20%,70%,95%,0%。

這樣停息1-2 秒然后又重復(fù)起來(lái)。其實(shí)是GPU在等待數(shù)據(jù)從CPU傳輸過(guò)來(lái),當(dāng)從總線傳輸?shù)紾PU之后,GPU逐漸起計(jì)算來(lái),利用率會(huì)突然升高,但是GPU的算力很強(qiáng)大,0.5秒就基本能處理完數(shù)據(jù),所以利用率接下來(lái)又會(huì)降下去,等待下一個(gè)batch的傳入。

因此,這個(gè)GPU利用率瓶頸在內(nèi)存帶寬和內(nèi)存介質(zhì)上以及CPU的性能上面。

最好當(dāng)然就是換更好的四代或者更強(qiáng)大的內(nèi)存條,配合更好的CPU。

3.解決方法:

(1)為了提高利用率,首先要將num_workers(線程數(shù))設(shè)置得體,4,8,16是幾個(gè)常選的幾個(gè)參數(shù)。本人測(cè)試過(guò),將num_workers設(shè)置的非常大,例如,24,32,等,其效率反而降低,因?yàn)槟P托枰獙?shù)據(jù)平均分配到幾個(gè)子線程去進(jìn)行預(yù)處理,分發(fā)等數(shù)據(jù)操作,設(shè)高了反而影響效率。當(dāng)然,線程數(shù)設(shè)置為1,是單個(gè)CPU來(lái)進(jìn)行數(shù)據(jù)的預(yù)處理和傳輸給GPU,效率也會(huì)低。其次,當(dāng)你的服務(wù)器或者電腦的內(nèi)存較大,性能較好的時(shí)候,建議打開pin_memory打開,就省掉了將數(shù)據(jù)從CPU傳入到緩存RAM里面,再給傳輸?shù)紾PU上;為True時(shí)是直接映射到GPU的相關(guān)內(nèi)存塊上,省掉了一點(diǎn)數(shù)據(jù)傳輸時(shí)間。

(2) 另外的一個(gè)方法是,在PyTorch這個(gè)框架里面,數(shù)據(jù)加載Dataloader上做更改和優(yōu)化,包括num_workers(線程數(shù)),pin_memory,會(huì)提升速度。解決好數(shù)據(jù)傳輸?shù)膸捚款i和GPU的運(yùn)算效率低的問(wèn)題。在TensorFlow下面,也有這個(gè)加載數(shù)據(jù)的設(shè)置。

(3) 修改代碼(我遇到的問(wèn)題)

每個(gè)iteration 都寫文件了,這個(gè)就會(huì)導(dǎo)致cpu 一直運(yùn)算,GPU 等待

在這里插入圖片描述

造成GPU利用率低還有其他原因

1. CPU數(shù)據(jù)讀取更不上:讀到內(nèi)存+多線程+二進(jìn)制文件(比如tf record)

2. GPU溫度過(guò)高,使用功率太大:每次少用幾個(gè)GPU,降低功耗(但是多卡的作用何在?)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python聊天室實(shí)例程序分享

    Python聊天室實(shí)例程序分享

    這篇文章主要為大家分享了Python Socket編程之聊天室示例程序代碼,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Python import與from import使用及區(qū)別介紹

    Python import與from import使用及區(qū)別介紹

    Python程序可以調(diào)用一組基本的函數(shù)(即內(nèi)建函數(shù)),比如print()、input()和len()等函數(shù)。接下來(lái)通過(guò)本文給大家介紹Python import與from import使用及區(qū)別介紹,感興趣的朋友一起看看吧
    2018-09-09
  • Python中常見的KeyError報(bào)錯(cuò)分析

    Python中常見的KeyError報(bào)錯(cuò)分析

    在Python編程中,KeyError是一種非常常見的異常,它通常發(fā)生在嘗試訪問(wèn)字典中不存在的鍵時(shí),本文將深入探討KeyError的報(bào)錯(cuò)原因、解決辦法,并通過(guò)代碼示例來(lái)演示如何避免這一錯(cuò)誤,需要的朋友可以參考下
    2024-07-07
  • Pytorch矩陣乘法(torch.mul() 、 torch.mm() 和torch.matmul()的區(qū)別)

    Pytorch矩陣乘法(torch.mul() 、 torch.mm() 和torch.m

    在深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的世界里,矩陣乘法是一項(xiàng)至關(guān)重要的操作,本文主要介紹了Pytorch矩陣乘法,包含了torch.mul() 、 torch.mm() 和torch.matmul()的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • python_matplotlib改變橫坐標(biāo)和縱坐標(biāo)上的刻度(ticks)方式

    python_matplotlib改變橫坐標(biāo)和縱坐標(biāo)上的刻度(ticks)方式

    這篇文章主要介紹了python_matplotlib改變橫坐標(biāo)和縱坐標(biāo)上的刻度(ticks)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 使用httplib模塊來(lái)制作Python下HTTP客戶端的方法

    使用httplib模塊來(lái)制作Python下HTTP客戶端的方法

    這篇文章主要介紹了使用httplib模塊來(lái)制作Python下HTTP客戶端的方法,文中列舉了一些httplib下常用的HTTP方法,需要的朋友可以參考下
    2015-06-06
  • python groupby函數(shù)實(shí)現(xiàn)分組后選取最值

    python groupby函數(shù)實(shí)現(xiàn)分組后選取最值

    這篇文章主要介紹了python groupby函數(shù)實(shí)現(xiàn)分組后選取最值,文章圍繞主題相關(guān)資料展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Python中的pygal安裝和繪制直方圖代碼分享

    Python中的pygal安裝和繪制直方圖代碼分享

    這篇文章主要介紹了Python中的pygal安裝和繪制直方圖代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python機(jī)器學(xué)習(xí)之使用Pyecharts制作可視化大屏

    Python機(jī)器學(xué)習(xí)之使用Pyecharts制作可視化大屏

    pyecharts是一個(gè)用于生成Echarts圖表的Python庫(kù),Echarts是百度開源的一個(gè)數(shù)據(jù)可視化 JS 庫(kù),可以生成一些非??犰诺膱D表,這篇文章主要給大家介紹了關(guān)于Python機(jī)器學(xué)習(xí)之Pyecharts制作可視化大屏的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • Java中重定向輸出流實(shí)現(xiàn)用文件記錄程序日志

    Java中重定向輸出流實(shí)現(xiàn)用文件記錄程序日志

    這篇文章主要介紹了Java中重定向輸出流實(shí)現(xiàn)用文件記錄程序日志,本文直接給出代碼實(shí)例,并對(duì)代碼做了詳細(xì)注解,需要的朋友可以參考下
    2015-06-06

最新評(píng)論

和林格尔县| 花垣县| 镇远县| 北流市| 昌吉市| 宜都市| 阳山县| 榆树市| 临江市| 迁安市| 苏尼特左旗| 靖安县| 三明市| 饶河县| 灵寿县| 和静县| 博白县| 文水县| 双江| 新宾| 剑河县| 天台县| 南投市| 武鸣县| 威宁| 炉霍县| 郧西县| 南通市| 阿瓦提县| 滦南县| 郴州市| 驻马店市| 平陆县| 潞西市| 伊川县| 时尚| 隆回县| 安达市| 芒康县| 龙江县| 禹城市|