Intel Arc Pi GPU B580 AI Llama.cpp LLM
Intel Arc Pi GPU B580 AI Llama.cpp LLM.

Наконец‑то удалось достичь значительного прогресса в работоспособности графических процессоров Intel Arc на платформах Raspberry Pi. Система работает относительно стабильно. После преодоления множества технических препятствий появилась реальная перспектива интеграции этих GPU в официальную Raspberry Pi OS. В случае успеха, для активации карт Intel пользователям потребуется лишь установить соответствующий пакет прошивок.   

Важность этого достижения выходит далеко за рамки экосистемы Raspberry Pi.

Программный патч, необходимый для работы карт Arc, запускает их не только на архитектуре Arm, но и на всех системах, не относящихся к x86, включая RISC-V. Сейчас Arm-платформа Raspberry Pi выступает в роли доступной и популярной тестовой площадки для решения фундаментальной задачи совместимости.

Успешная интеграция драйвера Intel Xe в ядро Linux для non-x86 архитектур открывает всей линейке Intel Arc доступ к экосистеме RISC-V. Не забываем, что та испытывает острую нехватку мощных GPU с открытыми драйверами.

Содержание

Аппаратная конфигурация и борьба за качество сигнала PCIe
Анализ стоимости и целесообразности
Конфигурирование ядра Pi — без перекомпиляции!
Установка non-free прошивки
Работающее окружение
Ошибки Resizable BAR (ReBAR)
Причуды карт Intel
Производительность карт Intel
Что дальше

В ходе исследования наиболее активно тестировались следующие модели графических процессоров Intel :   

Кроме того, есть хорошие отзывы о работе A350 и A770, хотя сам детально их не тестировал.

Бюджетная модель A310 особенно требовательна к целостности сигнала PCIe, поэтому нужна надежная док‑станция ​​для eGPU, а также кабели и адаптеры PCIe.

Intel Arc A310 ECO in Minisforum DEG1 Dock for Raspberry Pi
Intel Arc A310 ECO в доке Minisforum DEG1 для Raspberry Pi.

Аппаратная конфигурация и борьба за качество сигнала PCIe

После публикации материала о ненадежности некоторых eGPU-станций мне посоветовали решение: адаптер M.2 to OcuLink, оснащенный PCI Express ReDriver. Он активно усиливает и восстанавливает сигнал. Такая его способность оказалась критически важной, поскольку в моем случае используется длинная и сложная цепочка адаптеров: от полноразмерного PCIe к OcuLink, далее к M.2 и, наконец, к шине PCIe самого Pi.

Подход сработал. Теперь все видеокарты корректно определяются в док-станции Minisforum DEG1. Решение оказалось ценным вдвойне, так как DEG1 дает не только отличную физическую стабильность, но и надежно удерживает даже такие массивные карты, как AMD RX 7900 XT.

Вспомним базовую схему физического подключения GPU к Pi:

  • док-станция eGPU — требуется внешняя док-станция, например, Minisforum DEG1 или JMT;

  • адаптер PCIe — в моей сборке на базе Pi 500 используется адаптер M.2 to Oculink;

  • кабель Oculink — соединяет адаптер M.2 и док-станцию;

  • питание — большинство видеокарт требуют отдельного источника энергии, а в данном случае необходим стандартный блок ATX для ПК, который будет снабжать как док-станцию, так и в некоторых случаях саму видеокарту.

Далее шаг за шагом запустим Pi 5/500/CM5 под управлением Pi OS Trixie в связке с любой современной GPU от Intel. Не оставим без внимания и странности каждой из них.

Для карт AMD этот процесс еще проще, но о нем — как‑нибудь в другой раз.

Анализ стоимости и целесообразности

Многим, вероятно, будет интересно сравнить итоговую стоимость конфигурации на Raspberry Pi с Intel Arc и покупку традиционного настольного ПК с дискретной видеокартой. Ниже — цифры для использовавшейся сборки, от них можно отталкиваться при собственных расчетах.

Важно отметить, что на момент написания статьи B50 нет в продаже — вероятно, из‑за слишком хорошего соотношения цены и производительности. Модель B580 стоит примерно столько же, при этом она чуть быстрее, потребляет больше энергии, но оснащена меньшим объемом видеопамяти.

К итоговой цене сборки также следует прибавить адаптер питания USB-C и карту microSD, если их нет в наличии. Одним словом, конечная цена проекта будет зависеть от уже имеющихся компонентов.

В качестве альтернативы можно приобрести ПК в корпусе minitower на вторичном рынке. Такая система покажет схожую производительность и предложит полностью поддерживаемые драйверы (!), пусть и ценой немного большего энергопотребления.

Таким образом, eGPU-сборку на Raspberry Pi не стоит рассматривать в качестве экономичной замены настольному ПК. Ее главная ценность — образовательная и экспериментальная. Она пригодится тем, кто хочет изучать и тестировать возможности GPU на компактных Arm-системах.

Онлайн-квест для новичков и профи в IT. 24-28 ноября

Найдите спрятанные коды первыми и сообщите нам, чтобы выиграть эксклюзивный мерч и бонусы на сервисы Selectel.

Участвовать →

Конфигурирование ядра Pi — без перекомпиляции!

Убедитесь, что Pi OS Trixie обновлена до последних пакетов:

sudo apt upgrade -y

Не забудьте перезагрузить систему!

1. Устанавливаем собственное ядро ​​Pi от 6by9 из репозитория Raspberry Pi Linux:

sudo rpi-update pulls/7113

2. PR настроен для bcm2711_defconfig, так как технически предназначен для Pi 4, поэтому нужно отредактировать /boot/firmware/config.txt и добавьте следующие строки:

kernel=kernel8.img  # to use bcm2711 config from PR 7072
dtparam=pciex1_gen=3  # for faster PCIe Gen 3 speeds
auto_initramfs=0  # to avoid 'weird boot mechanisms or file systems'

Эти параметры принудительно указывают на использование нужного образа ядра kernel8.img, форсируют быстрый режим PCIe Gen 3 и отключают auto_initramfs во избежание «странных механизмов загрузки».

3. Старые карты Intel могут не определяться драйвером Xe автоматически, поэтому  его нужно попросить проверять все подключенные карты. Для этого добавим строку к /boot/firmware/cmdline.txt:

xe.force_probe=*

4. Перезагружаемся.

sudo reboot

Теперь можно заняться прошивкой для карты.

Установка non-free прошивки

В идеале все текущие прошивки должны быть в одном из трех пакетов, которые устанавливаются с помощью:

sudo apt install -y [package name]

Каждый пакет собирается для конкретного производителя:

  • firmware-intel-graphics — для Intel,

  • firmware-amd-graphics — для AMD,

  • firmware-misc-nonfree — для Nvidia.

После установки — перезагружаемся.

Если карта по-прежнему ничего не показывает, возможно, она слишком новая для прошивки. Выяснить причину поможет чтение вывода dmesg. Например, с B580 приходили такие сообщения:

[    5.063645] xe 0001:03:00.0: [drm] GT1: Using GuC firmware from xe/bmg_guc_70.bin version 70.36.0
[    5.063657] xe 0001:03:00.0: [drm] GuC firmware (70.45.2) is recommended, but only (70.36.0) was found in xe/bmg_guc_70.bin
[    5.063667] xe 0001:03:00.0: [drm] Consider updating your linux-firmware pkg or downloading from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
[    5.067926] xe 0001:03:00.0: [drm] GT1: Using HuC firmware from xe/bmg_huc.bin version 8.2.10

Вывод показывает суть проблемы. GuC (Graphics microController) и HuC (HEVC microController) — это микроконтроллеры внутри GPU. Драйвер ядра Xe сообщает, что рекомендуемая версия прошивки GuC — 70.45.2, но в пакете linux-firmware найдена только 70.36.0.

К счастью, лог dmesg также подсказывает, где взять актуальную версию. Решение — вручную загрузить новый файл прошивки:

cd /usr/lib/firmware/xe && \
sudo wget -O bmg_guc_70.bin -q https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/xe/bmg_guc_70.bin

Снова перезагружаемся.

Для видеокарт серии Alchemist, таких как A380, A750 и подобных, файлы прошивки необходимо помещать в директорию /usr/lib/firmware/i915.

Работающее окружение

На карте B580 среда рабочего стола labwc-pi не запустилась автоматически. Вместо нее система отображала «мигающий курсор», и для доступа к консоли приходилось нажимать Alt + F2.

Чтобы графическая оболочка заработала, потребовалось вручную скомпилировать Mesa. Причина в том, что версия Mesa, встроенная в Pi OS, на данный момент не поддерживает Iris.

Iris — это название драйверов Gallium и Vulkan в Mesa, которые необходимы для работы графики Intel Arc.

Ошибки Resizable BAR (ReBAR)

Если заглянуть глубже в логи dmesg, можно увидеть еще одну фундаментальную проблему:

[    4.742322] xe 0001:03:00.0: [drm] Failed to resize BAR2 to 16384M (-ENOSPC). Consider enabling 'Resizable BAR' support in your BIOS

Это сообщение указывает на главную архитектурную проблему. При инициализации драйвер Xe пытается изменить размер BAR2 (Base Address Register) до 16 384 МБ (16 ГБ), чтобы получить доступ ко всей видеопамяти. Этот механизм известен как Resizable BAR.

Проблема в том, что драйвер Xe, будучи ориентированным на x86, ожидает, что BIOS или UEFI компьютера выделит ему это огромное адресное пространство. Однако у Raspberry Pi нет PC-совместимого BIOS. Его загрузчик выделяет для PCIe-устройств гораздо меньшее «окно» — обычно 256 МБ.

Запрос драйвера на 16 ГБ не может быть удовлетворен, и ядро возвращает ошибку -ENOSPC — «No space left on device», то есть «на устройстве нет места».

Теоретически драйвер должен переключаться в режим совместимости, но в настоящее время для Intel GPU этого почему‑то не происходит. Без ReBAR производительность резко падает, так как CPU вынужден обращаться ко всем 16 ГБ видеопамяти через это крошечное «окно».

Подробнее — в дискуссии на GitHub.

Чтобы исправить ситуацию, необходимо вручную изменить размер BAR на Pi еще до того, как инициализируется драйвер Xe. Весь процесс хорошо описан в руководстве.

Причуды карт Intel

Intel Arc Pi GPU artifacts on desktop
Артефакты Intel Arc Pi GPU на рабочем столе.

Даже после применения всех исправлений у протестированных карт Intel наблюдаются свои «особенности».

  • Intel Arc A750 — артефакты рендеринга, обычно в верхней части отрисованных объектов, таких как окна, меню, изображения. При использовании Vulkan иногда не загружаются текстуры. OpenGL, напротив, работает отлично, показывая полное 3D-ускорение.

  • Intel Arc B580 — артефакты схожи с A750, но проявляются реже. Карта справляется с ускорением небольших ИИ-моделей. Однако так и не удалось добиться стабильной работы с большими моделями, занимающими более 4−5 ГБ VRAM: вычисления начинали «зацикливаться» и повторяться.

  • Intel Arc B50 — аналогично B580, корректная работа с большими ИИ-моделями не удалась. В задачах с чистым GPU-ускорением эта карта немного медленнее A750. Тем не менее ее компактный размер, тихий вентилятор и низкое энергопотребление делают ее хорошим выбором для рабочих станций, SFF-сборок или энергоэффективных систем.

  • Intel Arc A310 ECO — эту карту было очень сложно инициализировать на шине PCIe. Пришлось использовать адаптер M.2 to Oculink со встроенным ReDriver для усиления сигнала. Без него GPU не могла согласовать соединение и «отваливалась» уже через пару минут, независимо от док-станции. К тому же она очень медленная и у нее мало памяти, правда стоит всего около 100 $ и выполнена в однослотовом низкопрофильном формате.

Производительность карт Intel

На страничке GitHub с базой данных Pi PCI Express есть результаты испытаний всех GPU на Pi. Однако сейчас хотелось бы взглянуть подробнее на бенчмарк GravityMark. Он почти полностью завязан исключительно на производительности видеокарт, что делает его отличным инструментом их сравнения между собой.

Intel Arc GPU GravityMark Benchmarks on Raspberry Pi
Бенчмарк GravityMark для Intel Arc GPU на Raspberry Pi.

Карты Intel не бьют рекордов (Nvidia пока даже не появилась в этом списке), но с учетом цены выглядят вполне достойно.

Запускались на них также ИИ-модели. По крайней мере, для малых LLM производительность оказалась на хорошем уровне. В частности, B50 Pro — с ее внушительным объемом RAM и низким энергопотреблением — вполне жизнеспособная основа для эффективной машины под небольшие нейросети.

Однако «особенности», в частности, проблемы с Resizable BAR, негативно влияют и на 3D-рендеринг, и на ИИ. Как только нагрузка на видеопамять возрастает — все ограничения сразу дают о себе знать. Хотя базовая производительность карт достойная, их использование на Pi остается уделом энтузиастов — по крайней мере, до тех пор, пока не будут решены проблемы с доступом к памяти.

Что дальше

В настоящее время Pull Request для поддержки видеокарт AMD и Intel работает отлично. Есть еще и второй, минималистичный PR только с патчем из 23 строк, который решает ключевую проблему.

Но прежде чем все эти изменения попадут в Raspberry Pi Linux, их нужно разбить на части и внедрить в ядро Linux для последующих версий — и это возможно! Сейчас этот процесс обсуждается с другими Pi‑энтузиастами.

Изменения для Intel затрагивают не только Arm, но и RISC-V. Некоторые участники сообщества RISC-V также поработали над патчем — и он уже в списке рассылки. Более того, первый ответ LKML относился именно к этой серии патчей!

Главное — убедиться, что все вносимые изменения являются архитектурно обоснованными и хорошо работают на всех системах, отличных от x86, а не только на Raspberry Pi.

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


  1. Darksa
    16.11.2025 12:35

    Спасибо за статью - полезная информация. Ещё один вариант гонять LLM на малинках.


  1. UtrobinMV
    16.11.2025 12:35

    На самом деле Интел на x86 то работает нестабильно. Намного полезней было бы запустить драйвера Nvidia и карточки nvidia например на Orange PI 5.