Видеокарта AMD Radeon PCIe протестирована с SBC Rockchip RK3588 (Radxa Rock 5B)

Когда Rockchip впервые представила процессор Rockchip RK3399 с интерфейсом PCIe, люди сначала надеялись, что смогут подключить видеокарту, но эти надежды быстро развеялись из-за ограничения адресации в 32 МБ.

Однако реализация PCIe на более новом процессоре Rockchip RK3588 не имеет такого ограничения, и в ноябре прошлого года Radxa представила демонстрацию с графической картой AMD Radeon Pro WX 5100 PCIe, подключенной к Rock 5B SBC, на которой запущена демонстрация glxgears на графическом процессоре Radeon.

Нам не удалось найти никаких инструкций по воспроизведению этой настройки, но это заинтересовало Джасбира(Jasbir), и он попытался провести собственный тест с Radxa Rock 5B, подключенного к AMD Radeon R7 520 (XFX R7 250 low-profile ) через «Удлинительный кабель M.2 Key M к адаптеру Riser для видеокарты PCIE x16» ( стоимость которого составила 14 долларов плюс налоги на Aliexpress ) и запитанного от платы LR1007 120 Вт 12 В постоянного тока ATX.

Эксперимент можно считать в большей степени успешным, поскольку ему удалось успешно запустить демонстрации 3D-графики kmscube, glmark2-drm и glmark2-es2-drm на его установке, как вы можете видеть из 3-минутного видео, встроенного ниже.

Однако собрать устройство оказалось весьма трудоемко, так как сначала ему пришлось собрать собственное ядро ​​​​с драйверами и исправлениями видеокарты и обновить с его помощью образ Debian Radxa. Сначала это не сработало по двум основным причинам :

  1. Выделение памяти ограничено 32-битным для передачи PCIe DMA, и хотя плата с 4 ГБ ОЗУ может не обнаружить проблем, плата с 8 ГБ, использованная для тестирования, вероятно, выбрала диапазон адресов выше 4 ГБ.
  2. Карты AMD полагаются на отслеживание PCIe, а на межсоединении RK3588 отслеживание процессора отсутствует. Таким образом, любые кэшированные копии одного и того же блока памяти устройства не будут обновляться, чтобы оставаться синхронизированными.

После реализации обходных путей для двух вышеперечисленных проблем образец kmstest успешно запустился, но kmscube завершился с ошибкой:

Как объяснил Джасбир, требовалось еще одно исправление:

Чтобы исправить драйвер ядра Radeon, нужно убедиться, что память карты отображается как «Память устройства» типа Device-nGnRnE. Если бы это была «Обычная память», то разрешен невыровненный доступ. Это подразумевает исправление драйверов/приложений пользовательского пространства по мере возникновения этих ошибок, поскольку эти приложения могут напрямую манипулировать памятью карты. Для этой конкретной ошибки шины она была вызвана memcpy в драйвере radeon gallium и исправлена ​​там, и как показано в видео пробегах kmscube

Исправление позволило всем образцам графики, показанным в видео, работать нормально. Однако запуск startx завершился ошибкой компилятора шейдера и потребовал дополнительной работы. Воспроизведение видео через VAPPI тоже не удалось. Таким образом, хотя это выглядит многообещающе, по-прежнему невозможно использовать видеокарту PCIe с SBC Rockchip RK3588 так же, как вы бы использовали eGPU с мини-ПК x86, но это может быть в будущем.

Более подробную информацию вы найдете в посте Джасбира. Обратите внимание, что он не предоставляет исправления и обходные пути, а просто выполняет шаги и объясняет ошибки, поэтому вы не сможете легко воспроизвести его демонстрацию без серьезной работы.

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

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

5 1 vote
Article Rating
Подписаться
Уведомление о
guest

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

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