摘要:本文介紹了昇騰平臺紀錄檔分類、紀錄檔級別設定、紀錄檔內容格式,以及如何獲取紀錄檔檔案的方法。
本文分享自華為雲社群《如何檢視並讀懂昇騰平臺的應用紀錄檔》,作者:昇騰CANN。
當您完成訓練/推理工程開發後,將工程放到昇騰平臺執行,以偵錯工程是否正常執行,此時,可能會出現各種各樣、五花八門的異常狀況。
當問題發生時,我們的第一反應是不是檢視紀錄檔,看看哪裡報錯了。昇騰平臺有哪些紀錄檔呢?紀錄檔檔案又在哪呢?本期帶您瞭解如何使用昇騰平臺的紀錄檔功能。
根據工程執行過程中紀錄檔產生的場景不同,紀錄檔通常被分為以下4類:
我們現在知道了昇騰AI處理器有4類紀錄檔,那我們需要到哪裡檢視這些紀錄檔呢?本節來揭祕。
昇騰AI處理器具有EP和RC兩種形態,針對不同的硬體形態,紀錄檔檔案存放位置不同,需根據實際硬體形態獲取。
使用者應用程序在Host側和Device側產生的紀錄檔。例如,一個推理/訓練任務下發後,通常與本次推理/訓練直接相關的紀錄檔都存放在應用類紀錄檔中。
這類紀錄檔預設存放在「$HOME/ascend/log」路徑下,格式如下:
├── debug │ ├── device-0 │ │ └── device-pid_*.log //Device側產生的紀錄檔 │ └── plog │ └── plog-pid_*.log //Host側產生的紀錄檔 ├── operation │ ├── device-0 │ │ └── device-pid_*.log │ └── plog │ └── plog-pid_*.log ├── run │ ├── device-0 │ │ └── device-pid_*.log │ └── plog │ └── plog-pid_*.log └── security ├── device-0 │ └── device-pid_*.log └── plog └── plog-pid_*.log
非使用者應用程序在Device側產生的紀錄檔,即Device側常駐程序執行產生的紀錄檔通常都在存放在系統類紀錄檔中。
這類紀錄檔生成時預設存放在Device側/var/log/npu/slog路徑下,需要在Host側通過msnpureport工具將其匯出到Host側再進行檢視。
命令舉例:
$Driver_HOME/driver/tools/msnpureport -a
通過msnpureport工具匯出到Host側後,系統類紀錄檔按Device側資料夾存放,格式如下:
├── debug │ ├── device-os │ └── device-os_*.log ├── operation │ ├── device-os │ └── device-os_*.log ├── run │ ├── device-os │ └── device-os_*.log ├──security │ ├── device-os │ └── device-os_*.log └── slog └── slogdlog
RC形態紀錄檔獲取比較簡單,不管是應用類紀錄檔還是系統類紀錄檔,均存放在/var/log/npu/slog路徑下。存放格式與EP場景類似:
├── debug │ ├── device-app-pid │ │ └── device-app-pid_*.log │ └── device-os │ └── device-os_*.log ├── operation │ ├── device-app-pid │ │ └── device-app-pid_*.log │ └── device-os │ └── device-os_*.log ├── run │ ├── device-app-pid │ │ └── device-app-pid_*.log │ └── device-os │ └── device-os_*.log ├── security │ ├── device-app-pid │ │ └── device-app-pid_*.log │ └── device-os │ └── device-os_*.log └── device-id └──device-id_*.log
紀錄檔內容嚴格按照紀錄檔規範列印,每條紀錄檔格式一致、欄位含義明確,便於閱讀。紀錄檔格式、欄位含義如下:
紀錄檔內容可以通過cat、grep等命令檢視。
不同紀錄檔級別列印的紀錄檔內容詳細程度不同,因此,問題定位時可以使用最詳細紀錄檔(DEBUG)列印,而驗證效能時使用最簡紀錄檔(ERROR)列印即可。紀錄檔功能提供了5種級別供大家選擇使用:
說明:各級別紀錄檔詳細程度:DEBUG > INFO > WARNING > ERROR
通過上面紀錄檔級別介紹,我們瞭解到可以根據自己需求設定不同的紀錄檔級別、列印不同詳細程度的紀錄檔。那應該如何設定呢?
export ASCEND_GLOBAL_LOG_LEVEL=1
RC形態通過修改/var/log/npu/conf/slog/slog.conf組態檔、重啟紀錄檔程序生效。
#note, 0:debug, 1:info, 2:warning, 3:error, 4:null(no output log), default(1) global_level=1 # Event Type Log Flag, 0:disable, 1:enable, default(1) enableEvent=1 # note, 0:debug, 1:info, 2:warning, 3:error, 4:null(no output log), 5:invalid(follow global_level) SLOG=5 # Slog IDEDD=5 # ascend debug device agent DVPP=5 # DVPP CCE=5 # CCE
EP形態通過msnpureport工具設定系統類紀錄檔級別。例如:
$Driver_HOME/driver/tools/msnpureport –g info
關於昇騰平臺紀錄檔更多介紹,請登入昇騰檔案中心查閱。