Как шина PCI-Express влияет на FPS и почему Linux это плохой выбор для систем с двумя GPU

Ранее были проведены сравнительные тесты между Windows и Linux, участвовали видеокарты GeForce GTX 1070 и Radeon Vega 3, однако была проблема, и связана она с типичной для поделок AMD функциональной недостаточностью - процессор Athlon 200GE отказывался работать с видеокартой в слоте PCI-E x16 когда установлен NVMe SSD.
реклама
В итоге пришлось переключить видеокарту в слот PCI-E 2.0 x1 от чипсета системной платы и это явно негативно отразилось на производительности, что хорошо заметно в среде Linux с активной AMD Radeon, ведь линуксы до сих пор не умеют адекватно работать с двумя видеокартами и мониторами, что в свою очередь заставляло GTX 1070 выводить изображение через узкую шину PCI-E и Vega 3.
Получены результаты тестов - NVIDIA GeForce лучше для Linux, а AMD Radeon несостоятелен

реклама
Как можно заметить, под линуксом с активной Vega пропускной способности шины хватало только на ~111 FPS в 1280x720 разрешении, ну а Windows в принципе не подвержена этой проблеме, ведь в отличие от линуксов - "форточка" умеет адекватно переключать графические процессоры и выводить изображение на мониторы.
Однако, полученные результаты GTX 1070 на шине версии 2.0 x1 наверняка были не лучшими, можно было бы установить Ryzen 7 2700X вместо Athlon 200GE, но это не выйдет сделать, ведь тогда нельзя будет сравнивать новые результаты с уже имеющимися...
![]() |
![]() |
Даже если я и отключу 6 ядер из 8 у R7 2700X, это всё равно будут другие условия по части процессора, ибо у одного старшего модуля CCX целых 8 МБ кэша, когда у Athlon 200GE всего 4 МБ, уже в плане кэша будет существенное различие не позволяющее объективно сравнивать влияние пропускной способности PCI-E, даже если настроить все остальные параметры работы в точности как у Athlon.
реклама
Так что было решено извлечь NVMe SSD и переключить видеокарту в слот PCI-E x16 от процессора, надеюсь слот заработает хотя бы в режиме x4, и тогда точно будет заметно, есть ли значительное влияние от шины.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
И да, компьютер запустился с видеокартой в слоте PCI-E x16 при пустом M2, это уже успех, правда непонятно, в каком именно режиме работает.
![]() |
![]() |
реклама
Но увы, поделка от AMD в лице Athlon 200GE оказалась настолько недоразвитой, что видеокарта хоть и заработала, но в режиме 3.0 x1, да, это больше чем 2.0 x1, но это всё та же одна линия PCI-Express, хотя и более быстрая.
Я разочарован в "красной" конторе, мало того разгон памяти заблокирован у процессора, как и разгон встроенной графики, так ещё и шина для подключения видеокарты работает некорректно, почему-то освободилось не 4 линии после извлечения SSD, как должно было, а всего одна...
![]() |
![]() |
![]() |
У меня были разные процессоры Intel раньше, но даже у самых дешёвых Celeron слот PCI-E x16 всегда работал по-человечески с видеокартами, а с AMD Athlon какая-то печаль и уныние...
Может просто GPU-Z неправильно отображает информацию? Но нет, тесты говорят о том, что видеокарта работает на одной линии версии 3.0.
![]() |
![]() |
![]() |
Ладно, всё получилось хуже ожидаемого, как всегда с AMD, но этого будет достаточно для проведения тестов и сравнения результатов, осталось включить видеокарту Vega 3 через BIOS.
Упс, что такое, опять кривое AMD работает абы как, наперекосяк? Эх, вечно у них всё через одно место...
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Пришлось идти в BIOS и методом тыка колдовать настройки, к счастью, наколдовал с первого раза, достаточно было переключить настройку инициализации дисплея с PCI-E слота на встроенную графику (IGP), это помогло вечно кривому Radeon включиться, была небольшая надежда на то, что шина дискретной видеокарты перейдёт хотя бы в режим x4, но ничего не изменилось.
![]() |
![]() |
![]() |
![]() |
Кстати, почему такой старый драйвер видеокарты AMD версии 24.9.1? Ну, просто "красная" контора уже кинула обладателей видеокарт RX 400 / 500 / Vega с драйверами, так что новых драйверов, судя по всему, уже не будет, обладателям вечно несостоятельных видеокарт Radeon не привыкать.
А дальше мне стало интересно, как тут с настройками цветопередачи в драйвере AMD, хотя ГП в настольном процессоре и не выдал особых проблем с цветами при подключении внешнего дисплея, тем более сейчас всё работает в среде Windows, а не Linux, но я был в недоумении, какого чёрта настройки дисплея находятся в разделе "игры"? Почему в панели драйвера на ноутбуке мне приходилось лазить в "шестерёнку", и там искать те же самые параметры, такие же скудные? Что за вакханалия вообще твориться с драйверами AMD?
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
А ещё некоторые любители "красного хлама" ноют, мол, у NVIDIA плохая панель управления, просто потому что не меняется уже больше 20 лет, собственно, а зачем менять то, что прекрасно работает и выполняет задачи пользователей? Зачем мне, пользователю, эта возня с "красным недоразумением" функционально недостаточным, когда у "зелёных" всё на своих местах и работает как положено...
![]() |
![]() |
![]() |
![]() |
Ну да ладно, пора бы начать тесты и сбор результатов.
![]() |
![]() |
![]() |
![]() |
В среде Windows всё прошло идеально, как всегда, даже не отключал встроенную Vega через BIOS, ибо не было необходимости, это вам не "дряхлый пингвин"...
![]() |
![]() |
![]() |
А вот с Linux всё гораздо сложнее, ведь он настолько недоразвит, что не способен во время работы нормально переключать видеокарты и дисплеи, ну короче функциональность нескольких ГП / Мониторов, у линукса, как всегда, на отвратительном уровне.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
А ещё эта кривая Mesa3D в качестве драйвера графики предоставляющего графические API, даже с Nouveau некоторые тесты в артефактах, хотя выглядят они не так, как с видеокартами Intel / AMD, но суть примерно такая же, особенно позабавили артефакты на весь экран когда отправил систему на перезагрузку, и это с полностью исправным оборудованием. Впрочем, это же линукс...
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Ладно, перезагружаю систему и выбираю по умолчанию Vega в качестве видеокарты, по идее так ведь правильнее должно быть, хотя кто знает, к какому мракобесию в линуксах этот выбор может привести, да и нужно протестировать при активных двух видеокартах, а если выбирать NVIDIA, то AMDGPU оказывается в чёрном списке, так что в любом случае нужно начинать с AMD, даже если не будет участвовать в тестах...
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
В общем, устанавливаю драйвер NVIDIA и проверяю, всё работает, правда за вывод изображения отвечает AMD Radeon сейчас, а значит при использовании GTX 1070 используется шина PCI-E для вывода изображения на монитор.
![]() |
![]() |
![]() |
![]() |
Уже с первых тестов видно, что FPS увеличился до 220 с шиной версии 3.0 x1, при шине 2.0 x1 было около 110 FPS.
![]() |
![]() |
![]() |
А дальше нужно было отключить встроенную графику, чтобы заставить "дряхлого пингвина" напрямую выводить изображение через GTX 1070, но что-то пошло не так, и линукс поломался. Я не удивлён, чтобы Linux, и не ломался на ровном месте...
В общем, безрезультатно потанцевал с бубном и решил переустановить систему, это конечно не рекорд, Manjaro Linux умирал гораздо быстрее, причём сам ломался без сторонних драйверов установленных вручную, но всё равно неприятно, стабильность уровня Windows 98.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Короче переустановил линукс, установил драйвер видеокарты и собрал результаты без проблем, вполне возможно в проблемах виноваты были вечно кривые драйверы AMD, видимо что-то установилось не так с двумя активными видеокартами, главной из которых была Radeon, но точно тут не скажу, ибо проще переустановить систему, чем танцевать с терминалом до полуночи.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Ещё ради интереса я пошел в BIOS, но обнаружил, что заблокированная IGP была выставлена для инициализации дисплея, не знаю в этом была проблема с линуксом, или просто он навернулся сам собой, но так явно не должно быть, хотя в Windows это как-то не доставляло проблем при заблокированной встройке...
Впрочем, мне было интересно, даст ли функционально недоразвитый Athlon 200GE дополнительные линии PCI-E, если заблокирую встроенный в ЦП SATA контроллер, но увы, ничего не изменилось, однако проверить это всё же надо было.
![]() |
![]() |
![]() |
![]() |
-
Результаты
Ну что же, пришло время посмотреть на результаты, сильно ли влияет пропускная способность шины PCI-Express, или это не всегда имеет значение.
Таблицу подготовил, так как в сравнении будет только NVIDIA GeForce GTX 1070, то было решено удалить результаты AMD Radeon, чтобы не занимали лишнее место бессмысленно, ведь сравниваться сейчас будет именно влияние от пропускной способности шины PCI-Express.

Начнём с OpenCL, почему? Просто потому что! Хотя ладно думаю всем известно, что люди занимающиеся майнингом очень любят PCI-E x1 райзеры для подключения видеокарт, а майнинг это есть ничто иное как вычислительная работа выполняемая видеокартой.
Так вот, OpenCL тесты показали, что они очень даже зависят от пропускной способности шины PCI-Express.

Практически во всех вычислительных тестах производительность возросла почти в 2 раза с переходом PCI-E 2.0 x1 на PCI-E 3.0 x1 при прочих равных, но есть и примечательный момент в среде Linux без использования OFFLOAD, переменной окружения с активной Radeon Vega - в таком режиме не было выявлено чёткой зависимости от шины, хотя это относиться только к тестам использующим OpenCL.

Так что при работе с OpenCL шина однозначно влияет на результат, по крайней мере в столь ограниченном режиме с одной линией PCI-Express.
Далее Vulkan API, тут уже нет двукратного роста производительности при увеличении пропускной способности шины, кроме одного-единственного случая в среде Linux, когда выводом изображения занимается AMD Radeon, в таком случае да, FPS подрос в два раза, но это лишь потому, что видеокарте GTX 1070 нужно выводить изображение на монитор через шину PCI-E через процессор, а после уже через графику Vega, то есть через двух посредников.

При нормальном режиме работы, когда видеокарта выводит изображение прямо на монитор без посредников, производительность значительно возросла лишь в нескольких тестах, в большинстве случаев FPS повысился незначительно при использовании Vulkan API.

Однако совсем иная картина при использовании OpenGL API, тут уже есть значительное количество тестов, что отреагировали двукратным ростом FPS при таком же увеличении пропускной способности PCI-Express.

По крайней мере есть 5 тестов отреагировавших двукратным ростом FPS и только три теста из 19 показали совсем незначительный рост, не считая случаев, когда лимитирующим фактором была производительность видеокарты.
Однако я очень сомневаюсь, что при дополнительном увеличении пропускной способности шины PCI-Express, большинство тестов так же хорошо отреагируют более высокой производительностью, тут уже отчётливо видно, что дальше шина уже не будет иметь столь существенного влияния, ибо ограничивающим фактором начнёт выступать как сам процессор, так и видеокарта.
![]() |
![]() |
Со старыми тестами OpenGL ситуация уже неоднозначная.

Лишь в нескольких случаях был значительный рост производительности вслед за пропускной способностью шины PCI-Express, тем не менее, прирост есть и он заметен, хотя и не везде.

-
Заключение
В целом можно сказать, что производительность зависит от шины PCI-Express, однако важно заметить, что тесты проводились в очень жёстких условиях с одной линией PCI-E, ведь процессор AMD оказался не способен предоставить видеокарте более одной линии даже при извлечённом M2 NVMe SSD...
Из результатов можно заметить, что PCI-E x1 версии 2.0 сильно ограничивал производительность видеокарты GeForce GTX 1070 в большинстве случаев, кроме Vulkan API, однако переход на PCI-E x1 версии 3.0 не всегда давал соразмерную прибавку к FPS. Да, в ряде случаев производительность действительно возрастала в 2 раза, но в большинстве прирост был не настолько впечатляющим.
Полагаю, что дальнейший рост пропускной способности шины без увеличения производительности процессора и видеокарты, может вообще не оказать заметного влияния на производительность в большинстве случаев.
Впрочем, если видеокарта используется как второстепенная и операционная система не способна адекватно работать с двумя видеокартами и мониторами (привет Linux, особенно на ноутбуках с дискретным ГП), то шина PCI-Express имеет решающее значение, ведь именно через неё в таком случае приходится перегонять изображение обратно к процессору, чтобы тот отослал на активную видеокарту к которой подключен монитор.
Хотя такой режим работы является крайне неоптимальным, ведь значительно увеличивает задержки вывода, и это ещё одна причина, почему Linux непригоден для адекватного использования в ноутбуках, особенно когда нужно подключить внешний монитор...
На этом всё.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.

Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
































































































Комментарии Правила