После обратной разработки выпущена документация по набору инструкций Valhall для графического процессора Mali-G78

Компания Collabora уже несколько лет работает над драйвером графического процессора Panfrost с открытым исходным кодом для Arm Mali Bifrost и Midgard GPU и даже получает официальную поддержку от Arm.

Но, очевидно, эта поддержка не включает документацию для графического процессора Mali-G78 и других недавних графических процессоров Arm Valhall Mali, поскольку не так давно, примерно за месяц, компания провела обратную разработку Mali-G78, прежде чем выпустить документацию по набору инструкций Valhall (PDF).

Другие результаты обратной разработки включают описание архитектуры XML, которое может анализироваться программами, а также ассемблер и дизассемблер Valhall, используемые в качестве вспомогательного средства обратной разработки.

Помимо графического процессора Mali-G78 «Borr», работа будет полезна для других графических процессоров Valhall, включая Mali-G77 «TryM», Mali-G57 «Natt-A/B», Mali-G68 «Ottr» и Mali-G78AE «Borr-AE» для автомобильного и промышленного применения.

Алисса Розенцвейг объясняет работу Collabora, основанную на международной версии телефона Samsung Galaxy S21 на базе системы-на-кристалле Samsung Exynos 2100 с графическим процессором Mali-G78 MP14. Она отметила, что обратная разработка на Android сложнее, чем на Linux, но на данный момент это единственный вариант.

Команде удалось идентифицировать каждый слой с помощью библиотеки-оболочки, которая выгружает каждый выполненный шейдер для обратной разработки нового набора инструкций и разработки дизассемблера. Им действительно помогли некоторые общедоступные источники информации, в частности, статья Anandtech, в которой была раскрыта полезная информация о Valhall:

  • На основе Warp, как Bifrost, но с 16 потоками на Warp вместо 4/8 на Bifrost.
  • Изоморфный Bifrost на уровне инструкций («операционная эквивалентность»).
  • Регулярно кодируется.
  • Flat, без пункта Bifrost и упаковки кортежа.
  • Кэш инструкций 16 КБ, содержащий 2048 инструкций

Получение документации по набору команд, а также ассемблера и дизассемблера – это первый шаг к тому, чтобы Panfrost поддерживал графические процессоры Valhall. Алисса также отмечает, что Mali G78 вносит изменения, выходящие за рамки набора инструкций, с заметно отличающимися структурами данных, чтобы уменьшить накладные расходы на драйвер Vulkan, но, к счастью, многие структуры данных можно просто адаптировать из Bifrost, потребовав небольших изменений в драйвере Mesa. Она также предлагает людям/компаниям, разрабатывающим устройство для Linux с графическим процессором Valhall, связаться с Collabora, чтобы получить драйвер для Linux с открытым исходным кодом.

Ознакомьтесь с постом Collabora для получения полной информации.

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

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

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

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

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