Компания AMD представила новую стратегию разработки графических драйверов для Linux
Как ранее сообщалось, на проходящей в городе Бордо (Bordeaux, Франция) конференции XDC компания AMD собиралась анонсировать новую стратегию разработки графических драйверов для Linux. Разработчики AMD сдержали свои обещания и представили наглядные слайды, описывающие их видение процесса, проблемы встреченные на этом пути и дальнейшие планы.
Основная идея изменений сводится к тому, что выполняемый на уровне ядра модуль и его "обвязка", касающаяся DRM и KMS, будет целиком базироваться на открытом коде. Разработчики называют такой подход "Base Graphics", а драйвер получил название "amdgpu". Эта часть будет основана на уже существующем коде Radeon. Тем не менее, это скорее всего коснется только новых GPU, предположительно начиная с серии Pirate Islands. Отмечается, что обкатка идей на уровне прототипа делается на уже существующих GPU семействах Sea Islands.
Важным изменением станет то, что теперь работающая на уровне ядра открытая часть драйвера станет разрабатываться параллельно с разработкой нового оборудования, с использованием инженерных прототипов и взаимодействием с командой разработчиков оборудования. В "классический" Catalyst поддержка новых GPU скорее всего добавляться не будет - вместо этого будет развиваться драйвер amdgpu, за основу которого будет взят Radeon.
Пользуясь случаем, дополнительно можно отметить планы реорганизации устройства драйвера, работающего на уровне ядра. Теперь вместо множественных ветвей кода (code paths), различных для разных чипов, деление на компоненты драйвера будет выполняться на основе версий IP-блоков (IP, Intellectual Property) оборудования (например, декодера UVD) и для каждой версии будет своя реализация работы с этим блоком. При взаимодействии с тем или иным чипом драйвер будет задействовать модули, соответствующие версиям блоков из которых состоит чип.
По мнению сотрудников AMD можно выделить 3 варианта графического стека на основе этого подхода:
- Полностью открытый стек ("All Open"): открытый драйвер уровня ядра, библиотека drm и run-time KFD и HSA. С ними взаимодействуют компоненты MESA, DDX драйвер, различные state tracker Gallium-а и так далее, в основном отмечаются VA-API, VDPAU, clover OpenCL, OpenMAX и реализация OpenGL из MESA. В таком виде графический стек достаточно похож на уже существующие R600g/RadeonSI.
- "Non pro". Обычный графический стек для игровых систем и подобных применений. От предыдущего отличается в основном заменой реализации OpenGL и OpenCL проприетарными компонентами. Проприетарные компоненты взаимодействуют с упомянутой подсистемой "Base Graphics" аналогично открытым компонентам, используя те же интерфейсы. Ожидается, что никаких доработок открытой части графического стека не потребуется - компоненты должны работать поверх основных реализаций и не требовать для себя никаких изменений. DDX-драйвер открытый и является тем же драйвером, что и в варианте "All Open".
- "Pro". Нацелен на сегмент графических станций, использующих профессиональные адаптеры семейства FirePro. По устройству аналогичен предыдущему стеку, однако в открытых компонентах могут быть дополнения, специфичные для FirePro. Они будут с открытым исходным кодом, однако неизвестно насколько это получится интегрировать в mainline-версии компонентов (например, в mainline ядре Linux разработчики отрицательно относятся к коду который нужен только проприетарным компонентам в user space). В крайнем случае такие компоненты будут оформлены отдельными открытыми компонентами.
Сложности с которыми пришлось столкнуться разработчикам:
- Плохая/неполная/неточная документация по работе оборудования, форматам пакетов и прочего.
- Код Catalyst закрытый и открыт не будет.
- На данный момент юридический отдел проводит рецензирование открываемого кода и документации, что тормозит процесс разработки открытых компонентов. Теперь открытые компоненты будут разрабатываться параллельно с разработкой новых чипов. Ожидается, что это приведет к тому, что на момент выпуска чипа он уже будет поддерживаться открытым драйвером.
- Внутренние разработчики AMD не имеют опыта работы "на публику". Предполагается, что будет некий переходный период ("ramp up"), при котором внутренние сотрудники не будут напрямую работать с открытыми репозиториями, а разработчики открытых драйверов постепенно введут их в курс дела.
Почему не все компоненты открыты:
- Некоторым потребителям ряд возможностей нужен уже сегодня, из таких возможностей отмечается полная реализация OpenCL и OpenGL. Открывать эти реализации не планируется из-за опасений, что конкуренты могут использовать ряд трюков в своих продуктах. Тем не менее, отмечается, что в будущем планируется переносить фокус в сторону открытых компонентов.
Текущее состояние дел:
- Прототип драйвера amdgpu уже существует и отлаживается на семействе Sea Islands. Более новые семейства GPU, в частности, Pirate Islands, скорее всего не будут добавляться в классический Catalyst и вместо этого для них будет выпущен драйвер amdgpu.
Разработчики отмечают заинтересованность в ответной реакции сообщества. Их интересуют пожелания к возможностям нового драйвера, мнения на чем сфокусироваться, участие в тестировании и в целом улучшение взаимодействия с другими открытыми проектами.
Подробнее: http://citforum.ru/news/32797/
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей Индийская пословица |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.