Тестирование ИИ и LLM на Rockchip RK3588 с использованием одноплатного компьютера Mixtile Blade 3 с 32 ГБ ОЗУ

Было интересно протестировать искусственный интеллект (ИИ) и, в частности, большие языковые модели (LLM) на Rockchip RK3588, чтобы понять, как можно использовать GPU и NPU для их ускорения и каких показателей производительности ожидать. Мы читали, что LLM могут быть требовательны к вычислительным ресурсам и памяти, поэтому искали одноплатный компьютер (SBC) на Rockchip RK3588 с 32 ГБ ОЗУ, и Mixtile – компания, разрабатывающая аппаратные решения для различных применений, включая IoT, ИИ и промышленные шлюзы, любезно предоставила образец своего Mixtile Blade 3 pico-ITX SBC с 32 ГБ RAM для этих целей.

Хотя обзор фокусируется на использовании RKNPU2 SDK с примерами компьютерного зрения, работающими на 6 TOPS NPU, и тестировании GPU-ускоренной LLM (поскольку реализация NPU еще не готова), мы также провели распаковку для осмотра аппаратной части и краткое руководство по запуску Ubuntu 22.04 на Mixtile Blade 3.

Распаковка Mixtile Blade 3

В комплекте от Mixtile было две коробки. Первая содержала одноплатную систему Mixtile Blade 3, вторая — корпус Mixtile Blade 3 Case.

mixtile blade 3 and case unboxing

Сначала рассмотрим комплект платы Mixtile Blade 3. Плата оказалась довольно тяжелой при первом поднятии — это связано с радиатором, полностью закрывающим нижнюю часть PCB для обеспечения пассивного охлаждения путем рассеивания тепла от SoC RK3588.

mixtile blade 3 and case package

mixtile blade 3 heatsink

Тыльная панель Mixtile Blade 3 включает два порта Ethernet 2.5Gbps, два HDMI-порта (выход и вход), а также два порта USB Type-C. Плата также оснащена 30-контактным GPIO-разъемом, коннектором mini PCIe, разъемом MIPI-CSI для камеры, слотом для microSD карты, коннектором для вентилятора и отладочным разъемом для платы USB-TTL. Имеется также краевой разъем U.2 (SFF-8639) с сигналами 4-линейного PCIe Gen3 и SATA 3.0 для подключения PCIe/NVMe-устройств или объединения нескольких плат Blade 3 в кластер .

mixtile blade 3 Ethernet HDMI USB connectors

Теперь рассмотрим корпус для Mixtile Blade 3. Это алюминиевый корпус с ЧПУ-обработкой, который также поставляется с адаптером U.2-M.2 для подключения NVMe SSD или другого устройства PCIe (например, AI-акселератора), кнопкой питания, светодиодом для индикации рабочего состояния, набором винтов и отверткой.

mixtile blade 3 case assembly U2 connector

Сборка корпуса Mixtile Blade 3

Теперь соберем плату Mixtile Blade 3 в корпус. Первым шагом снимается штатный радиатор, затем адаптер U.2-M.2 крепится к плате, после чего плата устанавливается в корпус. Сборка завершается закрытием крышки с использованием силиконовой термопрокладки, так как сам металлический корпус будет выполнять роль радиатора, охлаждающего процессор Rockchip RK3588.

mixtile blade 3 m u.2 to m.2 adapter

Rockchip RK3588 SBC enclosure
Штатный радиатор (слева), Blade 3 установлена в корпус (в центре), верхняя крышка с термопрокладкой (справа)

Комплект не включает адаптер питания, поэтому его необходимо использовать собственный для питания платы Mixtile Blade 3. Требуется адаптер питания USB-C, совместимый со стандартом PD 2.0/PD 3.0. Полные характеристики платы можно узнать из предыдущей статьи о Mixtile Blade 3 .

Ubuntu 22.04 на Mixtile Blade 3

Mixtile Blade 3 поставляется с образом Ubuntu 22.04, что позволяет загружать Linux сразу после распаковки. Однако для установки новой операционной системы или обновления текущего образа можно использовать те же методы, что и для других одноплатных компьютеров на базе SoC Rockchip, а именно программу RKDevTool или через карту microSD.

Поскольку Mixtile Blade 3 оснащен только двумя портами USB, и один уже подключен к источнику питания, потребовалось подключить док-станцию USB-C для соединения клавиатуры и мыши с платой.

mixtile blade 3 review RK3588 AI LLM

После первоначальной загрузки запустится мастер настройки Ubuntu OEM; после его завершения станет доступен стандартный рабочий стол Ubuntu 22.04.

Флеш-память eMMC объемом 128 ГБ и дополнительный NVMe SSD на 256 ГБ, подключенный через адаптер U.2 на M.2, можно проверить с помощью fdisk:

Одноплатная система действительно оснащена 32 ГБ оперативной памяти:

Тестирование производительности ИИ через NPU RK3588 с использованием инструментария RKNPU2

Производительность ИИ Mixtile Blade 3 будет протестирована на примере Yolo v5 и тесте RKNN из RKNPU2, аналогично тестированию одноплатной системы Youyeeyoo YY3568 на базе Rockchip RK3568 с начальным NPU производительностью 0.8 TOPS.

После установки инструментария RKNN 2 из Github , можно скомпилировать пример YOLO5:

Затем можно запустить примеры YOLO5 с тестовым изображением:

YOLO5 output rknn rk3588

Как и ожидалось, производительность ИИ Rockchip RK3588 значительно превосходит Rockchip RK3568, как показано в таблице ниже.

Board/CPU First run Average of 10 runs
Mixtile Blade 3 (RK3588) 25.523000 ms 18.620700 ms
YY3568 (RK3568) 78.917000 ms 69.709700 ms

Плата Mixtile Blade 3 примерно втрое быстрее плат на базе Rockchip RK3568. Преобразование миллисекунд в FPS показывает, что Mixtile Blade 3 обрабатывает Yolo v5 на скорости 54 кадра в секунду, что считается очень быстрой обработкой, достаточной для приложений реального времени.

Результаты 10 запусков RKNN Benchmark на Mixtile Blade 3:

Тесты показывают среднюю скорость вывода 63,123 FPS, подтверждая пригодность платы Mixtile Blade 3 в качестве Edge AI компьютера.

Тестирование изображений допустимо, но учитывая возможности Mixtile Blade 3 для обработки ИИ в реальном времени, было решено протестировать Yolo5 с USB-камерой и трансляцией результатов через RTSP. Первым шагом стала установка RTSP-сервера MediaMTX на Mixtile Blade 3 по инструкциям на GitHub .

Также был отредактирован mediamtx.yml для кодирования вывода веб-камеры в H.264 с потоковой передачей в разрешении 640 x 640.

RTSP-поток на плате можно протестировать следующей командой:

Обнаруженные объекты сохраняются в журнале, поскольку в тесте не используется OpenCV, а видео просто отображает рамки вокруг обнаруженных объектов, как показано в ролике ниже.

Приведенный выше видеоклип демонстрирует хорошую производительность обработки ИИ с высокой частотой кадров для обнаружения и отслеживания объектов.

Тестирование производительности LLM на Rockchip RK3588 (GPU)

Первоначальной идеей было тестирование больших языковых моделей с использованием 6 TOPS NPU на Rockchip RK3588, как это было выполнено с RKNPU2 выше. Однако выяснилось, что эта функция пока не реализована, и вместо этого для данной цели используется встроенный в SoC Rockchip RK3588 графический процессор Arm Mali G610.

Начали с проекта llm-rk3588 Haolin Zhang на GitHub , но, несмотря на усилия, не удалось заставить его работать на плате Mixtile Blade 3. В итоге были найдены инструкции по запуску LLM на RK3588 с использованием docker, которые оказались работоспособными. В блоге показано использование моделей RedPajama-INCITE-Chat-3B-v1-q4f16_1 с 3 миллиардами параметров и Llama-2-7b-chat-hf-q4f16_1 с 7 миллиардами параметров, но также была протестирована модель Llama-2-13b-chat-hf-q4f16_1 с 13 миллиардами параметров для оценки производительности и полного использования доступных 32 ГБ ОЗУ.

Тестирование модели LLM RedPajama-INCITE-Chat-3B-v1-q4f16_1

Для запуска docker с моделью LLM на 3B была выполнена команда:

Был использован запрос: «Объясните, почему свободные электроны в изоляторе не могут перепрыгнуть через энергетическую щель в зону проводимости»:

Производительность хорошая, а команда top показывает использование памяти системой при работе модели RedPajama-INCITE-Chat-3B-v1-q4f16_1 около 3.9 ГБ ОЗУ.

CPU memory usage llm model3b mixtile blade 3 rk3588

Тестирование модели Llama-2-7b-chat-hf-q4f16_1

Docker был перезапущен с моделью Llama 2 на 7B параметров…

…и применен тот же запрос:

Производительность остается хорошей, а использование системной памяти теперь составляет около 6.7 ГБ.

CPU memory usage llm model7b mixtile blade 3 rk3588

Тестирование модели Llama-2-13b-chat-hf-q4f16_1 на 13B на RK3588

Для этого теста использовался docker.io/milas/mlc-llm:redpajama-3b образ, после чего импортированы файлы модели Llama-2-13b-chat-hf-q4f16_1 в docker, перезагружена модель и выполнен запрос «Объясните, почему свободные электроны в изоляторе не могут перепрыгнуть через энергетическую щель в зону проводимости»:

Производительность значительно ниже, текст медленно выводится в терминале, и замечено отсутствие одной из GPU-связанных строк, присутствовавших в других моделях:

Не полностью ясно, используется ли GPU, несмотря на загрузку файла «/mlc-llm/dist/prebuilt/lib/Llama-2-13b-chat-hf-q4f16_1-mali.so». Тем не менее, модель функционирует, используя около 10.6 ГБ памяти при работе в docker, что предполагает достаточность 16 ГБ ОЗУ…

CPU memory usage llm model13b mixtile blade 3 rk3588

Сообщается, что Rockchip разрабатывает реализацию LLM с использованием NPU, которая будет значительно быстрее GPU-реализации. После ее выпуска планируется подготовить дополнительный краткий обзор.

Сводка результатов LLM на RK3588

Для всех моделей применялся идентичный запрос: «Объясните, почему свободные электроны в изоляторе не могут перепрыгнуть через энергетическую щель в зону проводимости». Все модели ответили корректно, но с разной скоростью. В таблице ниже обобщены скорости декодирования и предзаполнения в токенах в секунду (токен/с), отражающие количество обработанных слов или их фрагментов в секунду для каждой модели.

Model Prefill (tok/s) Decode (tok/s)
RedPajama-INCITE-Chat-3B-v1-q4f16_1 4.6 5.1
Llama-2-7b-chat-hf-q4f16_1 4.8 2.8
Llama-2-13b-chat-hf-q4f16_1 2.4 1.2

Для оценки ответов протестированных моделей использовался Google Gemini, чтобы определить наилучший результат:

Ожидаемо качество ответа улучшается с увеличением количества параметров в модели.

Заключение

После тестирования ИИ и LLM на плате Mixtile Blade 3 на базе Rockchip RK3588 с 32 ГБ ОЗУ можно заключить, что она демонстрирует хорошую производительность в задачах типа обнаружения объектов YoloV5 в реальном времени. Модели LLM успешно работают на GPU Arm Mali-610, но более крупные модели получат преимущество от NPU-ускорения, запланированного на этот год.

Сама одноплатная система Mixtile Blade 3 предлагается с флеш-памятью eMMC до 256 ГБ, поддерживает NVMe и является одной из немногих доступных плат RK3588 с 32 ГБ ОЗУ, пригодных для LLM. Качество сборки металлического корпуса превосходное, а конструкция обеспечивает беспроводное использование без деградации сигнала благодаря пластиковым элементам, но вентилятор оказался достаточно шумным.

Документация выполнена качественно, структурирована по разделам и достаточно полна, что позволяет начать работу без сложностей. В зависимости от применения плата может быть несколько громоздкой: например, для WiFi требуется модуль mPCIe, а для подключения клавиатуры и мыши — док-станция USB-C. Однако ее низкопрофильный дизайн с радиатором и разъемом U.2 делает идеальной для кластеров плат , особенно для приложений, требующих большого объема памяти, где каждая плата поддерживает до 32 ГБ ОЗУ. Компания также предоставляет программные драйверы для работы с кластерными вычислениями.

Благодарим Mixtile за предоставление платы Blade 3 на Rockchip RK3588 с 32 ГБ ОЗУ для экспериментов с ИИ и LLM. Плату можно приобрести в магазине Mixtile за $229 (4 ГБ ОЗУ/32 ГБ флеш) до $439 в протестированной конфигурации 32 ГБ/256 ГБ. Также она доступна на Aliexpress , но по высокой цене и без модели на 32 ГБ ОЗУ. Помимо магазина Mixtile, модель с 32 ГБ ОЗУ может быть найдена у других дистрибьюторов .

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments