В наши дни все новые устройства стали оснащаться встроенными чипами искусственного интеллекта. Правильный технический термин для «чипа ИИ» – 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)