Большое тестирование Windows / Linux и AMD / NVIDIA в утилите GPU Caps Viewer: Часть 1
Совсем недавно был куплен процессор AMD Athlon 200GE со встроенным ГП Radeon Vega 3, и он доставил много проблем в использовании:
реклама
Почему AMD Radeon это худший выбор для Linux, или как пришло время переустанавливать линукс
Но часть уже решена, проблема не определяющейся видеокарты "исправлена" переносом GeForce GTX 1070 из слота процессора PCI-e x16 в слот чипсета PCI-e x1, а проблемы драйверов AMD в линуксе были частично решены переустановкой линукса, но увы, не полностью, тот же OpenCL в Linux нормально работает только с NVIDIA, ибо у AMD нет адекватных драйверов в принципе...
реклама
Теперь я могу начать делать сравнительные тесты в разных операционных системах, а именно - в среде Windows и Linux, в первом случае будет Windows 10, во втором - Chimbalix 24.5 двух версий (ядро Linux 6.9 Liquorix)... Первая версия чистая, драйверы Mesa / AMD "из коробки", вторая основная рабочая система, в которой установлены драйверы от AMD, насколько это мракобесие вообще возможно было установить.
Есть ещё второй линукс в лице Sparky Linux, но пока непригоден не то что для использования, но и даже для проведения каких-либо тестов... Так что он будет включён в тесты когда наконец приведу этот очередной, непригодный для использования линукс к более-менее приемлемому состоянию, когда это произойдёт неизвестно, ведь это почти как создать ещё один Chimbalix, то есть перекроить исходный дистрибутив линукса исправляя бесконечные недостатки и проблемы.
-
Тестовые условия
В качестве испытуемого выступает мой компактный ПК в самодельном корпусе, внутри установлена видеокарта MSI GeForce GTX 1070 AERO OC (слот PCI-e 2.0 x1), AMD Athlon 200GE @ 3.7 ГГц, Radeon Vega 3 @ 1000 МГц (разгон заблокирован), 64 GB ОЗУ @ 2666 МГц (разгон частоты заблокирован):
реклама
В среде Windows 10 установлены драйверы видеокарт NVIDIA 560.70 и AMD 24.9.1 соответственно, и да, AMD уже бросила владельцев видеокарт серии RX 500 / Vega, потому установлен не самый последний драйвер Radeon, так что я не гнался за последней версией драйвера для видеокарты GTX 1070:
Переключение видеокарт в среде Windows осуществляется через диспетчер устройств, чтобы одна не вмешивалась в работу другой, и приложения однозначно выбирали именно тестируемую карту, и не иначе:
реклама
В случае Linux будут использованы десятиэтажные заклинания, позволяющие выбрать используемый драйвер при запуске приложения, ведь линуксы всё ещё не доросли до такой штуки как "диспетчер устройств", увы:
Ну и конечно добавил команды в контекстное меню проводника, чтобы не заниматься терминальным мракобесием, так характерным для линуксов:
Правда оверлей Mangohud не стану использовать при сборе результатов, ведь как показала практика - с видеокартой AMD Radeon можно нарваться на артефакты там, где с NVIDIA ни разу не удалось получить никаких искажений, может просто "повезло", а может и нет, но лучше отказаться от Mangohud вообще, это вам не знаменитый MSI Afterburner.
Ну а чтобы полноценно проверить GeForce GTX 1070 не ограничиваясь шиной PCI-e x1 - буду отключать Radeon Vega 3 через BIOS, чтобы Linux смог полноценно переключиться на дискретную видеокарту, и дискретной NVIDIA не приходилось гонять изображение через шину обратно к процессору, а после выводить на монитор через "Вегу"...
Почему Linux скорее мёртв, чем жив в настольном сегменте, а видеокарты AMD Radeon несостоятельны
Ну и ещё один момент, основной используемый Chimbalix 24.5 не является "чистым", он используется как основная операционная система.
Так что будет еще проверен чистый Chimbalix 24.5, в котором почти ничего не делал ещё, даже драйверы AMD не пытался устанавливать, только нормальный драйвер NVIDIA установил.
Драйвер NVIDIA во всех тестируемых линуксах будет не самый свежий CUDA 12.4 (550.54.14), однако он уже проверен временем, так что не вижу смысла экспериментировать с самыми свежими версиями (второй скриншот - AMD Radeon заблокирован через BIOS):
Для запуска GPU Caps Viewer будет использован встроенный в Chimbalix Wine Proton LG 9.5.1, так как в тестах участвуют исключительно OpenGL / Vulkan API, то костыли вроде DXVK / VKD3D использоваться не будут, что хорошо, ибо уменьшается общее количество лишних прослоек:
Список тестов начинается с OpenGL 1.1, и заканчивается Vulkan API, "всего" 38 графических и 4 вычислительных теста OpenCL:
-
Тесты (Linux)
Так как я не особо знаком со спецификой тестов GPU Caps Viewer, первым делом было решено протестировать всё вручную, и если всё пройдёт нормально - взять полученные результаты в таблицу.
Ну что же, вот и протестировал. Осталось только обработать полученные результаты, а ещё подумать, стоит ли это всё выкладывать в статью "как есть", слишком много получилось "скриншотов", более 250 штук...
Много времени было потрачено на размышления, но в итоге решено сделать коллажи, да, пришлось сжать "скриншоты", так в 4 раза меньше объём изображений...
Сразу же разделю тесты на категории по стабильности. В категорию стабильных попадут тесты, у которых FPS не имеет значительных отклонений после 10 секунд, либо есть показатель среднего FPS, и он виден. В GLSL Point Sprite Particles не виден "avg fps" из-за специфики теста, но он попадёт в категорию стабильных, ведь спустя 10 секунд текущий FPS стабилизируется.
Да, точно, совсем забыл сказать, сбор результатов в каждом тесте происходил примерно на десятую секунду работы, исключение "OpenGL 4.3 - Compute Shaders", там 15 секунд нужно ждать из-за особенностей теста.
Категории:
А теперь перейдём к результатам.
Radeon Vega 3, основной Chimbalix 24.5 с драйверами Mesa от AMD.
Тест Vulkan Mesh Shader внезапно заработал с видеокартой AMD не только в линуксе, но и забегая вперёд - в Windows, хотя ранее Radeon не могла ничего нарисовать в данном тесте, что весьма примечательный факт, неужели видеокарта от NVIDIA помогла? Раньше ведь GeForce не определялся системой будучи подключенный к PCI-e x16 слоту процессора Athlon 200GE...
В OpenGL 4.0 Tesselation v3 графический процессор Vega 3 показал артефакты, местами нехватает треугольников (дырки в геометрии), и это устойчивая проблема, не исчезает даже после перезагрузок.
Тест OpenGL 3.2 Coronavirus 2020 работает с артефактами, причина тому кривые драйверы для видеокарт AMD отвечающие за OpenGL API в линуксе (Mesa3D).
Ресурсоёмкий тест OpenGL 2.1 Rhodium работает "пачками", секунду ничего не происходит, а на следующую "выбрасывается" десяток кадров, итого в среднем получается 5 FPS по 10 кадров через 1 секунду... Прочие тяжёлые тесты с низким FPS (ниже 50) работают в разной степени неравномерно, но эта проблема проявляется преимущественно в Linux.
OpenGL 4.3 - GL_NV_shader_thread_group не запускается с AMD Radeon.
GL 2.1 - HDR, DoF and RadialBlur работает некорректно в среде Linux с AMD Radeon, виной тому кривой драйвер Mesa3D предоставляющий OpenGL API.
GL 2.1 - HW Geometry Instancing не запускается с AMD Radeon в среде Linux, виной тому нефункциональный драйвер Mesa3D, что не смог предоставить расширения GL_EXT_gpu_shader4 / GL_ARB_draw_instaced и GL_EXT_draw_instaced.
GeForce GTX 1070, основной Chimbalix 24.5.
В отличие от Radeon Vega, GeForce GTX 1070 отработала без артефактов в трёх OpenGL тестах "Coronavirus 2020", "HDR, DoF and RadialBlur" и "Tesselation v3", однако были совсем незначительные артефакты в "Vulkan Geomechanical", но, как позже выяснилось, если заблокировать AMD Radeon - незначительные артефакты в этом тесте исчезают, вероятно они спровоцированы кривыми драйверами Mesa / AMD, ведь вывод изображения на монитор как раз происходит через "красную" видеокарту...
Из явных отличий еще выделю "OpenGL 4.3 - GL_ARB_shader_atomic_counters", у видеокарты NVIDIA он выглядит не так, как с видеокартами AMD.
Особенно следует выделить нестабильность тестов OpenCL, если в случае AMD они просто не работали, ведь у "красных" не существует полнофункциональных, адекватных драйверов для Linux, то в случае NVIDIA эти тесты работали, но могли выдать ошибку "OpenGL GPU Context creation failed", и как в очередной раз выяснилось - виной тому вывод изображения через AMD Radeon, ведь если заблокировать "красную" видеокарту - проблема нестабильности OpenCL испаряется.
GeForce GTX 1070, основной Chimbalix 24.5, AMD Radeon заблокирован через BIOS.
Теперь результаты с заблокированной видеокартой AMD, когда работает только GTX 1070, и она может напрямую выводить изображение на монитор.
В целом, проблем обнаружено не было, а FPS значительно вырос в тяжёлых тестах, да и в лёгких тоже, ведь теперь видеокарта выводит изображение прямо на монитор без посредников в лице Radeon:
С принудительно отключенным AMD Radeon даже тесты OpenCL работали стабильно независимо от того, сколько было запущено перед ними других тестов, хотя и производительность вычислений явно снизилась, я эту особенность заметил ещё с нейронными сетями, когда GTX 1070 работает в качестве вспомогательной видеокарты без монитора - производительность вычислений почему-то выше, чем когда к видеокарте подключен монитор.
Radeon Vega 3, чистый Chimbalix 24.5, драйвер Mesa "из коробки".
Тут уже работает встроенная в дистрибутив Mesa3D, артефакты в "Coronavirus 2020" и "HDR, DoF and RadialBlur" присутствуют, как и проблемы с тяжёлыми тестами, однако в "Tesselation v3" артефактов нет, совпадение? Не думаю, скорее всего Mesa3D в составе драйверов AMD гораздо более кривая, чем оригинальная Mesa3D...
Проблемы с расширениями OpenGL так же на месте, как и с Mesa от AMD...
GeForce GTX 1070, чистый Chimbalix 24.5.
Тут ничего не изменилось относительно предыдущего линукса, все же видеокарта NVIDIA имеет свой нормальный драйвер, хоть и приходится выводить изображение на монитор через AMD Radeon...
Тесты OpenCL такие же нестабильные при активном ГП "красного лагеря", тем не менее, оно работает...
GeForce GTX 1070, чистый Chimbalix 24.5, AMD Radeon заблокирован через BIOS.
Здесь тоже ничего нового, особых проблем нет.
OpenCL стабильно работает когда в системе нет "красных" видеокарт.
-
--
__NV_PRIME_RENDER_OFFLOAD
Внезапно, находясь в основной операционной системе Chimbalix я решил запустить GPU Caps Viewer через десятиэтажное заклинание, заставляющее использовать видеокарту NVIDIA, и обнаружил, что переменная "__NV_PRIME_RENDER_OFFLOAD" сильно влияет на производительность, и это при условии, что сейчас у меня работает только GTX 1070, Vega 3 заблокирована через BIOS...
Насколько это влияние сильное? Достаточно сильное, чтобы вместо 52 FPS получить всего 21 FPS:
А это значит, что уже собранные результаты могут оказаться не совсем верными, хотя с другой стороны - практически во всех линуксоидных форумах советуют ставить значение этой переменной в единицу...
Похоже я ничего не смогу узнать наверняка, пока не включу AMD Radeon и не проверю влияние данного параметра уже с двумя видеокартами:
Перепроверяю с активной Radeon Vega, всё выглядит обычно:
А вот с отключенным "OFFLOAD" приложение не запустилось, просто закрылось после попытки запуска:
Из этого следует, что при наличии одной видеокарты от NVIDIA использовать переменную "__NV_PRIME_RENDER_OFFLOAD" не следует, но если вдруг используется две разные видеокарты - без неё не обойтись... Главное, что это никак не повлияло на тесты, ведь я не использовал переменную когда графика AMD была заблокирована.
И хотя по факту это ни на что не влияет в моём случае, но в запас костылей для линукса добавлю ещё переменную "__VK_LAYER_NV_optimus", но это так, на будущее, в следующих версиях Chimbalix возможно реализую накапливающиеся "костыли", чтобы в случае когда настанет момент переустанавливать линукс - мне не приходилось заново танцевать с бубном и десятиэтажными заклинаниями для "дряхлого пингвина"...
-
--
Mesa3D AMDGPU проблема тесселяции
Меня сильно напрягал тот факт, что в основной используемой системе AMD Radeon работает с артефактами (Tesselation v3), и эта проблема прямо очень стабильная:
И так как в чистом Chimbalix такой проблемы нет - было решено удалить официальные драйверы от AMD, которые собственно предоставляют OpenGL API в текущем рабочем линуксе:
И да, вырванные куски геометрии как рукой сняло, а это значит - что драйверы и библиотеки AMD ещё более кривые, чем линуксоидные в составе оригинальной Mesa3D, это факт, увы:
Хотя артефакты (на фоне должна быть текстура, но её нет) в тесте "GL 2.1 - HDR, DoF and RadialBlur", появляющиеся исключительно с AMD Radeon, к сожалению, остались на месте, но я не собираюсь проверять очень старые версии Mesa3D, чтобы найти момент, когда линуксоидные разработчики проекта всё поломали до такой степени.
Ох, уж эти драйверы AMD, к чему "красная компания" не прикоснётся - всё в говно превращают.
Про полоску сверху, что мельтешит артефактами исключительно с видеокартой Radeon, пожалуй промолчу, это, как я понимаю, норма для "красных", когда всё утопает в артефактах и рваной геометрии...
-
--
Продолжение следует...
Так как Windows была самой совершенной операционной системой, по сравнению с линуксами конечно, и говорить там особо нечего о нюансах, то и результаты было решено перенести во вторую часть статьи ради оптимизации объёма материала.
Тем более тесты ещё не завершены, как оказалось, нужно ещё раз собрать результаты, но уже с помощью автоматизации, а после перевести всё в наглядные таблицы и графики.
Продолжение:
Получены результаты тестов - NVIDIA GeForce лучше для Linux, а AMD Radeon несостоятелен
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила