CUDA out of memory & 查看進程


Linux 使用技巧階段性總結

(For more information, please go to Alan D. Chen , upgrading~~)


Anaconda與conda區別
conda可以理解為一個工具,也是一個可執行命令,其核心功能是包管理與環境管理。包管理與pip的使用類似,環境管理則允許用戶方便地安裝不同版本的python並可以快速切換。

conda的設計理念——conda將幾乎所有的工具、第三方包都當做package對待,甚至包括python和conda自身

Anaconda則是一個打包的集合,里面預裝好了conda、某個版本的python、眾多packages、科學計算工具等等。

兩份重要的課程,一定要仔細看喲~。

Typora入門:全網最全教程

NVIDIA-SMI系列命令總結

下面的常用命令是較為常用的語句。

在Linux系統中查考GPU 的使用情況可以使用:

Linux查看Nvidia顯卡信息及使用情況,查看GPU 的使用情況:

  • nvidia-smi;(顯示所有GPU的當前信息狀態
  • watch -n 1 nvidia-smi實時查看GPU

20180821161158905

  • 顯示的表格中:

    Fan: 風扇轉速(0%--100%),N/A表示沒有風扇

    Temp: GPU溫度(GPU溫度過高會導致GPU頻率下降)

    Perf: 性能狀態,從P0(最大性能)到P12(最小性能)

    Pwr: GPU功耗

    Persistence-M: 持續模式的狀態(持續模式耗能大,但在新的GPU應用啟動時花費時間更少)

    Bus-Id: GPU總線,domain🚌device.function

    Disp.A: Display Active,表示GPU的顯示是否初始化

    Memory-Usage:顯存使用率

    Volatile GPU-Util:GPU使用率

    ECC: 是否開啟錯誤檢查和糾正技術,0/DISABLED, 1/ENABLED

    Compute M.: 計算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED


    附加選項:

    nvidia-smi –i xxx

    指定某個GPU

    nvidia-smi –l xxx

    動態刷新信息(默認5s刷新一次),按Ctrl+C停止,可指定刷新頻率,以秒為單位

    nvidia-smi –f xxx

    將查詢的信息輸出到具體的文件中,不在終端顯示

  • nvidia-smi -q

    查詢所有GPU的當前詳細信息

    20180821161259956

  • 附加選項:

    nvidia-smi –q –u

    顯示單元而不是GPU的屬性

    nvidia-smi –q –i xxx

    指定具體的GPU或unit信息

    nvidia-smi –q –f xxx

    將查詢的信息輸出到具體的文件中,不在終端顯示

    nvidia-smi –q –x

    將查詢的信息以xml的形式輸出

    nvidia-smi -q –d xxx

    指定顯示GPU卡某些信息,xxx參數可以為MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER,CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT,ACCOUNTING

    nvidia-smi –q –l xxx

    動態刷新信息,按Ctrl+C停止,可指定刷新頻率,以秒為單位


    在Linux服務器上將常會遇到

    CUDA out of memory
    

    在機器學習領域,通常認為是batch size 設置過大所致,但是這里還有另外的情況。

    在開啟tmux的情況下,使用命令行啟動深度學習程序,這個過程是不能夠通過“ctrl + c”來強行停止的,但是可以通過tmux 進行python + 命令,這個時候可以通過

    watch -n 1 nvidia-smi
    
    1.查看GPU的占用情況,同時查看一下進程使用
    top
    

    top命令:可以實時動態地查看系統的整體運行情況,是一個綜合了多方信息監測系統性能和運行信息的實用工具。通過top命令所提供的互動式界面,用熱鍵可以管理。輸入top后可以看到如下的界面,實時顯示進程情況。

    20180822133603685

2.殺死進程

​ 我們可以通過 進程的名字和進程的ID(PID)來結束進程。

​ 結束命令:

​ kill:通過進程ID來結束進程

​ killall:通過進程名字結束進程

這樣可以殺死進程,解放memory。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM