如下介紹如何監控 Rockchip 設備的 NPU 使用情況。
如今,新型設備開始配備內置 AI 芯片?!癆I 芯片”的正確技術術語是 NPU,即神經處理單元。
如果您有板載 NPU,您可能想知道您的系統是否正在使用它。
在本教程中,我將分享如何監控 Rockchip 處理器上的 NPU 使用情況。
這里討論的方法僅適用于 Rockchip 處理器中集成的 NPU。我使用帶有 RK3588 處理器的ArmSoM Sige7設備對其進行了測試。
你可以用以下命令檢查你的系統是否有 npu:
dmesg | grep -i npu
分析輸出以確定是否存在 NPU。
檢查 Rockchip NPU 利用率
值得慶幸的是,Rockchip 使用了debugfs功能。Debugfs 是一種特殊類型的虛擬文件系統,可以實時提供調試信息,類似于 proc 提供的信息。
可隨時提供 NPU 使用情況的文件是:
/sys/kernel/debug/rknpu/load
這是我在ArmSoM設備上運行它時顯示的內容。它顯示了 NPU 所有三個核心的使用情況:
abhishek@armsom:~$ sudo cat /sys/kernel/debug/rknpu/load NPU load: Core0: 0%, Core1: 0%, Core2: 0%, abhishek@armsom:~$
如您所見,它僅提供當前的 NPU 使用情況并結束它。如果您想監控 NPU 使用情況,這不是很有用。
另一種方法是將其與 watch 命令結合起來,該命令將每兩秒運行一次(默認):
watch sudo cat /sys/kernel/debug/rknpu/load
這是我在本地運行利用 NPU 的 LLM 的屏幕截圖:
要停止正在運行的監視命令,請按 Ctrl+C。
要實際查看 NPU 使用情況,您應該運行一個應該使用 NPU 的程序。否則,所有核心的使用率將始終為 0。
還有另一種監控NPU使用情況的方法。我在用ezrknpu項目試驗使用Rockchip NPU運行LLM時發現了它。
該項目有一個ntop.sh 腳本,它以類似 top 命令的方式顯示 NPU 使用情況。這并不完全正確,因為 top 命令不會污染屏幕。另一方面,ntop.sh 腳本會用所有這些行充斥屏幕,并且在您按下 Ctrl+C 后它們不會消失。
腳本內容如下:
#!/bin/bash # Title: ntop.sh # Author: Pelochus # Brief: A very basic 'top' style program that shows the status of the NPU in Rockchip's SoCs # Variables CLEAR="" # Parameters check if [[ $1 = '-h' ]] then echo echo "ntop Help" echo echo "-c: Clears output every refresh" echo "-h: Shows this help screen" echo echo "For more information visit https://github.com/Pelochus/ezrknpu" echo exit elif [[ $1 = '-c' ]] then CLEAR="clear" fi while true; do eval $CLEAR # If empty, will not clear cat /sys/kernel/debug/rknpu/load sleep 0.5 done
重點是最后的while循環,下面是使用該腳本檢查NPU使用情況的示例。
結論
如您所見,沒有標準的 top 類命令來顯示各個制造商的 NPU 使用情況。目前,我只有 Rockchip,所以我的探索有限,因此本教程僅限于 Rockchip NPU。如果我有機會接觸到更多這樣的硬件,我也會寫關于它們的文章。
審核編輯 黃宇
-
開發板
+關注
關注
25文章
5032瀏覽量
97375 -
NPU
+關注
關注
2文章
279瀏覽量
18584 -
RK3588
+關注
關注
6文章
325瀏覽量
4313
發布評論請先 登錄
相關推薦
評論