Edge AI
Deployment
Nvidia
Jetson
一般在有獨立顯卡的機器上可以用以下指令gpu、記憶體等工作狀態
watch -n 1 nvidia-smi
由於Nvidia Jetson等邊緣裝置是arm架構,gpu是整合在板子上,無自帶 arm_nvidia-smi,nvidia-smi
是給有獨立gpu的server或pc等檢查gpu使用狀況,在Jetson可以用jtop
指令替代,以下是安裝過程
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 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設備,用於監控和管理系統資源。
sudo jtop
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
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
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 模式下的最大值。