Результаты тестирования 65 GPU при использовании свободных драйверов в Linux
Ресурс Phoronix по случаю своего десятилетия устроил грандиозное тестирование работы различных GPU в Linux с использованием открытых видеодрайверов. Тестирование проводилось в Ubuntu 14.04 LTS 64-bit с Unity 7.2, X.Org Server 1.15.1, GCC 4.8.2 и файловой системой EXT4. Для тестирования максимально актуального состояния графического стека, ядро было обновлено до 3.15 и использовалась Mesa 10.3.0-devel (из oibaf PPA). Все GPU (за исключением Core i3) тестировались на системе с Intel Core i7 4770K Haswell на материнской плате Gigabyte Z97-HD3 с 16GB RAM и 120GB Samsung 840 Series SSD. В изначальных планах ресурса было протестировать 65 различных GPU. Тем не менее, часть GPU в процессе тестирования столкнулись с проблемами. Поэтому в процессе тестирования приняли участие лишь 50 GPU, среди которых Intel HD Graphics 4400 (Core i3 4130), Intel HD Graphics 4600 (Core i7 4770K) и различных карты серий AMD Radeon X, AMD Radeon HD, AMD FirePro, AMD FireGL, NVIDIA GeForce, NVIDIA GeForce GT, NVIDIA GeForce GTX и NVIDIA GeForce GTX TITAN.
«Зал позора» GPU: Практически на всех GPU от NVIDIA при использовании открытого драйвера не работает управление частотами и вольтажом. Для большинства новых GPU это означает работу на сильно пониженных относительно номинала частотах с предсказуемо низким результатом во всех тестах. В целом, драйвер Nouveau зарекомендовал себя «русской рулеткой». Ресурсы разработчиков ограничены, контроль качества как таковой отсутствует, а корпорация NVIDIA очень неохотно оказывает помощь проекту. В результате в драйвере часто случаются регрессивные изменения. Кроме данных «базовых» проблем, были проблемы специфичные для конкретных GPU. Проблемы специфичные для отдельных GPU Nvidia: GeForce 8500GT — После запуска тестов OpenGL с монитора пропадает изображение. Отображается черный монитор. GeForce 8600GT — проблемы при запуске Reaction Quake 3 (Ошибка TTM — «failed to expire sync object before buffer eviction»). Кроме того, проблемы возникли при запуске Warsow («failed to idle channel» и ошибки PGRAPH), а также игры Unvanquished (также ошибки PGRAPH). GeForce 8800GT — В процессе тестов происходили зависания GPU при загрузке игры Tesseract. Кроме того, случались аналогичные предыдущему GPU ошибки «failed to idle channel» и ошибки PGRAPH в Reaction Quake 3. Кроме того, в ряде случаев текст рендерился некорректно и изображение текста было частично разрушенным. GeForce 9600GSO — в процессе тестов текст рендерился с разрушениями. GeForce GT 240 — Установка видеорежимов и отображение заставки (Plymouth) при загрузке происходит корректно. Тем не менее, после старта X.org с DDX-драйвером Nouveau, изображение на мониторе портится и напоминает шахматную доску. Данный GPU никогда не работал корректно с открытым драйвером. Тем не менее, сам GPU работоспособен (проверено с проприетарным драйвером). GeForce GT 520 — зависание GPU при загрузке игры Unvanquished. GeForce GTX 550 Ti — эта видеокарта среднего класса зависает при старте Reaction Quake 3, игра Unvanquished вызывает ошибки «failed to idle channel», аналогичные проблемы также возникли в играх Warsow и Xonotic. GeForce GT 610 — Эта видеокарта нижнего ценового сегмента работает с открытым драйвером крайне медленно. А через некоторое время вывод графики на монитор вообще перестает работать. GeForce GTX 750 / GTX 750 Ti — Поддержка GPU семейства Maxwell в Nouveau находится в ранних стадиях. Для работы этих GPU требуется бинарный микрокод взятый из проприетарного драйвера. GeForce GTX 780 Ti — Проблемы с установкой видеорежимов. После ряда неуспешных запусков тестов на мониторе все-таки появилась картинка, однако как оказалось, рендеринг при этом производился через LLVMPipe, а не Gallium3D-драйвер NVC0. GeForce GTX TITAN — Проблемы с рендерингом тестов на основе движка Unigine и в игре Unvanquished. Проблемы, специфичные для GPU AMD. Отмечается, что открытые драйверы AMD проделали большой путь в развитии и, хотя команда разработчиков AMD не столь велика по ресурсам как у Intel, данные семейства драйверов достигли состояния при котором их зачастую применяют даже игроки вместо проприетарного драйвера Catalyst. Однако не обошлось без ряда проблем.
Radeon X1800XT — В целом, Gallium3D-драйвер R300 достаточно качественный и зрелый, однако в ряде тестов, в частности, в игре Tesseract, были проблемы с корректностью рендеринга некоторых сцен. Radeon X1950PRO — В процессе тестирования данной видеокарты в некоторых тестах возникали ошибки DRM «failed to schedule IB». Radeon HD 2400PRO — Эта карта, поддерживаемая драйвером R600, быстро теряла стабильность в процессе тестов. В результате рендеринг некоторых сцен происходил с ошибками. Кроме того в процессе тестов случались зависания GPU («fence wait failed»). Восстановление после зависания GPU было неуспешным («radeon: failed testing IB on GFX ring»). Radeon HD 2600PRO — В процессе тестирования GPU зависал с ошибкой «ring 0 stalled». Radeon HD 2900XT — система зависла после завершения загрузки. Radeon HD 3650 — Зависания GPU похожие на более старые GPU (ring 0 stalls). Radeon HD 4870×2 — в открытых драйверах нет поддержки Crossfire и реализация данной возможности является низкоприоритетной целью по состоянию на данный момент. Radeon HD 5750 — После длительного прогона тестов с экрана пропадает картинка. Radeon HD 7850 — Данная карта на основе GCN зависала при прохождении теста Unigine Tropics. Radeon HD 7950 — В процессе проведения тестов 2D экран заполнился мусором. Radeon R7 260X — У данного GPU изначально не заработал реклокинг. Для исправления ситуации необходимо скачать максимально свежий микрокод для данного GPU. Radeon R9 270X — множественные ошибки GPU «si_restrict_performance_levels_before_switch failed» и повисание ring 3 (кольцо GPU). Эти проблемы в основном возникали в тестах Unigine Tropics и Unvanquished. Radeon R9 290 — поддержка 3D ускорения в открытом драйвере в данный момент неработоспособна. FireGL V8600 — курсор мыши двигался, однако система не реагировала на действия пользователя. FirePro V8750 — после загрузки система отображает пустой экран. Результаты тестов: OpenArena 0.8.8: участники распределились вполне предсказуемым образом — максимальный FPS показывали средние и старшие видеокарты AMD 5000 и 6000 серий, а также старшие модели FirePro. Из особенностей можно отметить:
Все видеокарты NVIDIA были крайне медлительны из-за отсутствия реклокинга. Отсутствие реклокинга является наиболее серьезной проблемой с производительностью в открытом драйвере. Видеокарта Radeon HD 6950 (Cayman) заметно медленнее, чем Radeon HD 6870. Видеокарты семейства HD 6900 несколько отличаются архитектурно, в данный момент драйвер работает с семейством 6900 не слишком оптимально. В результате Radeon HD 6870 с открытым драйвером оказывался заметно быстрее чем Radeon HD 6950. Видеокарта Radeon R7 260X работала очень медленно из-за неработоспособности реклокинга (требуется обновление микрокода). В целом, поддержка семейства Radeon HD 6000 в очень хорошем состоянии. Более новые GPU на основе архитектуры GCN использует Gallium3D-драйвер RadeonSI который также приближается по качеству к R600g cards, однако для наилучшего результата драйвер RadeonSI требует максимально свежего LLVM. В игре Prey основанной на движке id Tech 4 результаты были похожими, с той разницей что Radeon HD 6870 использующий драйвер R600g обогнал вообще всех остальных участников тестирования. В игре Reaction Quake 3 v 1.0 beta результаты оказались очень похожими на предыдущий тест, самым быстрым также оказался HD 6870. В игре Tesseract (форк Cube 2 Sauerbraten) распределение результатов осталось похожим на предыдущие тесты. В тесте Unigine Sanctuary лучше всего себя показали старшие модели HD5000 и HD6000. Кроме того, вполне достойно выступили видеокарты на архитектуре GCN, составив более старым семействам конкуренцию. Единственным исключением стал R7 260X, показавший очень плохой результат по уже известным причинам. Самыми медленными оказались Radeon HD 5450 и HD 4550, а также разумеется все младшие модели Nvidia. Тест Unigine Tropics является одним из наиболее требовательных к графической подсистеме программ. Тем не менее, тест успешно отработал на большинстве упомянутых GPU. Результаты в целом оказались достаточно похожи на предыдущий тест. Unvanquished — одна из наиболее перспективных игр с открытыми исходниками. Данная игра примечательна тем, что ее графический движок вызывает множество проблем у открытых видеодрайверов. В частности, видеокарты на основе GCN в указанной конфигурации не прошли данный тест. В Warsow 1.5 практически все GPU смогли показать как минимум 30FPS, а средние и старшие модели без проблем взяли планку 60FPS. Данная игра играбельна на большинстве GPU, даже с открытыми драйверами. В игре Xonotic распределение сил не отличается от результатов прошлых тестов. В пакете GPU Test — тест Furmark сильно выступили мощные GPU на основе архитектуры GCN. За ними с некоторым отставанием следовали мощные представители семейств HD6000 и 5000, а также архитектурно похожие на них GPU семейства FirePro. Выводы: GPU семейства NVIDIA с открытым драйвером работают крайне медленно из-за отсутствия реализации реклокинга. Низкая производительность данных GPU с открытым драйвером не улучшится до тех пор, пока для этих GPU не будет реализован реклокинг. Тем не менее, в остальном, поддержка GPU семейств Fermi и Kepler в открытом драйвере работает достаточно неплохо, за исключением некоторых тестов. Поэтому нетребовательные пользователи которым достаточно лишь десктопных эффектов и т.п. вполне могут удовольствоваться открытым драйвером. Для любителей тяжелых 3D-игр открытый драйвер nouveau не подойдет. Хотя поддержка старых GPU в открытых драйверах AMD не прекращается, в отличие от того, как AMD и NVIDIA поступили с старыми GPU в проприетарных драйверах, фактическая поддержка того или иного GPU может варьироваться из-за регрессий. В отличие от Intel, у AMD пока нет сильного процесса тестирования качества открытых драйверов в пределах компании средствами ее разработчиков. Из проблем в открытых драйверах: в данный момент поддержка OpenCL находится в зачаточном состоянии, отсутствует поддержка CrossFire/SLI, оверклокинга и т.п. Кроме того, OpenGL 4.x на данный момент реализован не полностью. На данный момент в открытых драйверах отсутствует нормальная поддержка AMD Radeon R9 290 (Hawaii). Разработчики открытого драйвера не считают проблему высокоприоритетной, вероятно так как пользователи данных видеокарт скорее всего все-равно в данный момент предпочтут проприетарный драйвер из соображений максимальной производительности. Драйверы от Intel справляются с практически всеми тестами и являются наименее проблемными из всех протестированных драйверов. К сожалению, данные GPU достаточно слабы и могут конкурировать только с младшими дискретными видеокартами. Среди видеокарт AMD на данный момент хорошим выбором являются представители семейства HD6000, за исключением семейства HD6900. Семейство HD6000 можно рекомендовать к покупке пользователям Linux, предпочитающим открытые драйверы, при условии, что попадется выгодное предложение. Кроме того, перспективно смотрятся GPU на архитектуре GCN, так как драйвер RadeonSI по качеству и полноте возможностей уже приблизился к R600g. В заключение, автор ресурса отмечает что за 10 лет тестов он мог наблюдать очень существенное («heck a lot») улучшение ситуации с открытыми драйверами.
Полный текст статьи читайте на OpenNet