电子说
如下介绍如何监控 Rockchip 设备的 NPU 使用情况。
如今,新型设备开始配备内置 AI 芯片。“AI 芯片”的正确技术术语是 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。如果我有机会接触到更多这样的硬件,我也会写关于它们的文章。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !