欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1.GPU 占用率,利用率

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

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

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

在這里插入圖片描述

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

2.原因分析

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

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

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

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

3.解決方法:

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

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

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

每個iteration 都寫文件了,這個就會導致cpu 一直運算,GPU 等待

在這里插入圖片描述

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

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

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

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

相關(guān)文章

  • 詳解Python如何利用Pandas與NumPy進行數(shù)據(jù)清洗

    詳解Python如何利用Pandas與NumPy進行數(shù)據(jù)清洗

    許多數(shù)據(jù)科學家認為獲取和清理數(shù)據(jù)的初始步驟占工作的 80%,花費大量時間來清理數(shù)據(jù)集并將它們歸結(jié)為可以使用的形式。本文將利用 Python 的 Pandas和 NumPy 庫來清理數(shù)據(jù),需要的可以參考一下
    2022-04-04
  • Python 字典(Dictionary)操作詳解

    Python 字典(Dictionary)操作詳解

    這篇文章主要介紹了Python 字典(Dictionary)的詳細操作方法,需要的朋友可以參考下
    2014-03-03
  • 簡單談?wù)凱ython面向?qū)ο蟮南嚓P(guān)知識

    簡單談?wù)凱ython面向?qū)ο蟮南嚓P(guān)知識

    由于馬上就要期末考試了,正在抓緊時間復(fù)習 所以這一篇就拖了很久,抱歉啦~ 今天會說說: 屬性私有,方法私有,重寫,魔術(shù)方法,需要的朋友可以參考下
    2021-01-01
  • python3中獲取文件當前絕對路徑的兩種方法

    python3中獲取文件當前絕對路徑的兩種方法

    下面小編就為大家分享一篇python3中獲取文件當前絕對路徑的兩種方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 利用PyCharm Profile分析異步爬蟲效率詳解

    利用PyCharm Profile分析異步爬蟲效率詳解

    這篇文章主要給大家介紹了關(guān)于如何利用PyCharm Profile分析異步爬蟲效率的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用PyCharm具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal

    Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal

    這篇文章主要介紹了Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • Python django框架開發(fā)發(fā)布會簽到系統(tǒng)(web開發(fā))

    Python django框架開發(fā)發(fā)布會簽到系統(tǒng)(web開發(fā))

    這篇文章主要介紹了Python django框架開發(fā)發(fā)布會簽到系統(tǒng)(web開發(fā)),本文通過實例代碼效果展示截圖的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Python實現(xiàn)八大排序算法

    Python實現(xiàn)八大排序算法

    這篇文章主要介紹了Python實現(xiàn)八大排序算法,如何用Python實現(xiàn)八大排序算法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Python capitalize()函數(shù)的用法詳解

    Python capitalize()函數(shù)的用法詳解

    在Python中,capitalize()將字符串的第一個字符轉(zhuǎn)換為大寫字母,并將所有其他字符(如果有的話)轉(zhuǎn)換為小寫,本文就將給大家介紹一下Python capitalize()函數(shù)的使用方法,感興趣的朋友跟著小編一起來看看吧
    2023-07-07
  • django框架模板語言使用方法詳解

    django框架模板語言使用方法詳解

    這篇文章主要介紹了django框架模板語言使用方法,結(jié)合實例形式詳細分析了Django框架常用的模板語言語法與相關(guān)使用技巧,需要的朋友可以參考下
    2019-07-07

最新評論