changed 2 years ago
Published Linked with GitHub

Jetson 邊緣裝置查詢系統性能指令jtop

tags: Edge AI Deployment Nvidia Jetson

NVIDIA Jetson 平台部署相關筆記

基本環境設定

模型部署與加速


一般在有獨立顯卡的機器上可以用以下指令gpu、記憶體等工作狀態

watch -n 1 nvidia-smi

由於Nvidia Jetson等邊緣裝置是arm架構,gpu是整合在板子上,無自帶 arm_nvidia-smi,nvidia-smi是給有獨立gpu的server或pc等檢查gpu使用狀況,在Jetson可以用jtop指令替代,以下是安裝過程

jtop指令安裝

jetson-stats

jetson-stats is a package for monitoring and control your NVIDIA Jetson [Orin, Xavier, Nano, TX] series.

jetson-stats is a powerful tool to analyze your board, you can use with a stand alone application with jtop or import in your python script, the main features are:

Decode hardware, architecture, L4T and NVIDIA Jetpack
Monitoring, CPU, GPU, Memory, Engines, fan
Control NVP model, fan speed, jetson_clocks
Importable in a python script
Dockerizable in a container
Do not need super user
Tested on many different hardware configurations
Works with all NVIDIA Jetpack

先安裝 pip3:

sudo apt-get install python3-pip
  • 檢查是否安裝成功
pip3 -V
  • 使用 pip3 安装 jetson-stats :
pip3 install jetson-stats

或採用

sudo -H pip3 install -U jetson-stats
  • sudo是基於Unix的操作系統中的一個命令,用於以高權限運行一個命令,通常要求用戶輸入密碼。
  • -H 是一個選項,與sudo一起使用,將HOME環境變量設置為目標用戶(本例中為root用戶)的主目錄。
  • pip3是Python 3的一個軟件包安裝程序
  • install 是與 pip3 一起使用的一個子命令,用於安裝軟件包。
  • -U 是 pip3 install 的一個選項,用於將現有軟件包升級到最新版本。

jetson-stats是被pip3安裝或升級的軟件包名稱。

把它們放在一起,命令 sudo -H pip3 install -U jetson-stats 是用來以高權限安裝或升級 Python 3 的 jetson-stats 包。它將HOME環境變量設置為根用戶的主目錄,並將該軟件包的任何現有版本升級到最新的可用版本。該命令通常用於NVIDIA Jetson設備,用於監控和管理系統資源。

jtop 使用

sudo jtop

在Docker使用

  • Install jetson-stats on your host
  • Install jetson-stats on your container as well
  • Pass to your container /run/jtop.sock:/run/jtop.sock
docker run --rm -it -v /run/jtop.sock:/run/jtop.sock rbonghi/jetson_stats:latest

(https://rnext.it/jetson_stats/docker.html)

jtop.sock 是 jtop 工具使用的 Unix 套接字(Unix socket),它提供了一個本機通信的機制,使得 jtop 可以與系統的其他進程進行通信,以獲取系統資源的使用情況,並進行監控和診斷。

具體來說,jtop 可以通過 jtop.sock 與 NVIDIA Jetson 系統上運行的各種進程進行通信,獲取系統資源的使用情況,包括 CPU、GPU、記憶體、網路等等。jtop 還可以監測系統溫度、功率和時脈等參數,以及顯示正在運行的進程和它們的資源使用情況。

因此,將主機端的 jtop.sock 檔案掛載到 Docker 容器的 /run/jtop.sock 可以讓 Docker 容器中的程式與 jtop 工具進行通信,從而獲取 Jetson 系統的各種資訊,並進行監控和診斷。


https://rnext.it/jetson_stats/jtop/how_is_it_works.html

在Python環境直接使用與設定

jetson_stats/examples/

from jtop import jtop with jtop() as jetson: # jetson.ok() will provide the proper update frequency while jetson.ok(): # 讀取統計資訊 print(jetson.stats) # 禁用 DVFS 調節器並將時脈鎖定在當前 jetson.jetson_clocks = True # 將功率設置大最大 jetson.nvpmodel = 0

在terminal端設定

  • nvpmodel(NVIDIA Power Model)
    Jetson 設備的 nvpmodel(NVIDIA Power Model)模式用於控制設備的性能和能耗。不同的 nvpmodel 模式會設置不同的時鐘頻率和電源限制,以在性能和能耗之間取得平衡。

    例如,如果想要在設備上運行計算密集型的應用程序,可以選擇一個高性能的 nvpmodel 模式,該模式會提供更高的時鐘頻率和更高的電源限制,以便獲得更好的性能。相反,如果您想要節省能源,可以選擇一個低功耗的 nvpmodel 模式,該模式會降低時鐘頻率和電源限制,以便降低能耗。

    使用 nvpmodel 命令行工具來查看和設置當前的 nvpmodel 模式。

    ​​​​# 開啟最大功率設定 ​​​​sudo nvpmodel -m 0 ​​​​# 檢視設定結果 ​​​​sudo nvpmodel -q
  • jetson_clocks
    jetson_clocks 是一個命令行工具,用於設置 Jetson 設備的時鐘頻率。該命令會禁用 DVFS 調節器並將時鐘鎖定在當前 nvpmodel 模式下的最大值。這樣可以確保設備始終以最高性能運行,但也會增加能耗。

    例如,如果設備當前處於 10W 模式,則運行 jetson_clocks 命令後,設備的時鐘頻率將被鎖定在 10W 模式下的最大值。

    ​​​​sudo jetson_clocks

jtop命令使用互動式介面檢視

開機設定

在 jtop 的控制界面中,可以啟用 jetson_clocks on boot 選項,以便在設備啟動時自動運行 jetson_clocks 命令。要啟用此選項,您可以按下 5 進入 CTRL 界面,然後按下 s 和 e 兩個按鍵,將 jetson_clocks 和 boot 切換至 Running 和 Enable 1。

啟用此選項後,設備在啟動時會自動運行 jetson_clocks 命令,禁用 DVFS 調節器並將時鐘鎖定在當前 nvpmodel 模式下的最大值。

Select a repo