В наши дни все новые устройства стали оснащаться встроенными чипами искусственного интеллекта. Правильный технический термин для «чипа ИИ» – NPU, что означает нейронные процессоры.
Если у вас есть встроенный NPU, вы можете задаться вопросом, использует ли его ваша система.
В этом руководстве я расскажу, как отслеживать использование NPU на моем процессоре Rockchip.
Данный метод применим только для NPU, встроенного в процессор Rockchip. Я протестировал его на своем устройстве ArmSoM Sige7 с процессором RK3588. Вы можете проверить, есть ли в вашей системе npu, с помощью этой команды:
dmesg | grep -i npu
Проанализируйте полученный результат, чтобы понять, есть ли в системе NPU или нет.
Проверка использования NPU Rockchip
К счастью, 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
Вот снимок экрана, на котором я выполнял локальный LLM, использующий NPU:

Чтобы остановить выполняющуюся команду watch, нажмите Ctrl + C.
Чтобы действительно увидеть использование NPU, необходимо запустить программу, которая должна использовать NPU. В противном случае значение всегда будет равно 0 для всех ядер.Есть и другой способ мониторинга использования NPU. Я обнаружил его, когда экспериментировал с проектом ezrknpu для запуска LLM на Rockchip NPU.
В проекте есть скрипт ntop.sh, который показывает использование NPU в виде команды top. Что не совсем верно, поскольку команда 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, поэтому мои исследования были ограничены и, следовательно, это руководство ограничилось NPU Rockchip.

Комментарии (0)