Честно говоря, это должна была быть небольшая заметка о том, как при помощи старых драйверов можно помирить две видеокарты. Заставить одну рассчитывать физику, другую рендерить картинку. И при помощи железа 2008-го года запускать на топовых настройках игры вплоть до 2013-го года… Но что-то пошло не так, и это что-то, заставило покопаться в теме чуть-чуть глубже.
Итак, сразу предупреждаю — это не аналитика с цифрами и статистикой предрекающая чиплетное будущее и победу AMD над Nvidia. Это скорей взгляд со стороны на индустрию, и попытка представить ближайшее будущее, которое должно было наступить еще много лет тому назад.
Итак, начало!
История началась с блуждания по игровым форумам в надежде примирить одну неназванную игру с современным железом, чтобы просто поиграть.
И одно из прочитанных сообщений ссылалось на довольно занятную фразу.
В смысле — означает ли это, что в одном компьютере можно заставить заработать сразу две видеокарты от разных производителей? При этом можно заставить одну из карт рассчитывать физику?
В этот момент передо мною пронеслись тайтлы, в которые было бы интересно поиграть на такой железяке в непереизданном варианте. Это были и:
Mafia 2.
Анабиоз.
Бэтмен.
UT3.
Все игры, которые поражали своей физикой в далекие годы (да и будем честны, сейчас тоже поражают), и все это при помощи аппаратного ускорения без прибитых люков, с развевающимися плащами, водой и пр.
Ведь все что нужно, это:
Собрать старый компьютер.
Найти драйвера до 186 версии (как оказалось не обязательно — вплоть до 300-й подходили).
Откопать в веб-архиве приблуду, которая позволяет примирить две карты.
Наслаждаться получившимся монстром Франкенштейном.
Эксперимент не удался
Проблемы начались уже на этапе сборки. Оказывается, найти живое топовое железо тех лет, не такая простая задача какой могла показаться, особенно, если учитывать что для реализации нужна материнская плата сразу с двумя слотами PCI-E.
Но спустя какое-то время поисков удалось добыть:
Asus striker extreme.
Intel core 2 extreme.
Corsair dominator DDR2 (4GB)
Geforce 8800.
ATI Radeon Hd 2900 XT.
Сборка завелась (пригодился и киловаттный блок питания). Посажена была на две операционные системы (XP, и Vista чтобы играться по разному, и пробовать разные варианты если не получится сразу). Драйвера были установлены 185,85 (в дальнейшем экспериментировал и с другими, но по большей части безуспешно).
Первые звоночки начались на моменте поиска того самого Hybrid Radeon PhysX MoD. Оказалось, что найти его не так просто. А когда выяснилось, что нужен не только 1.03, но и 1.05ff. Руки почти опустились. Но мат-перемат и веб-архив, решили проблему!
Но на этом удача закончилась, то ли версии драйверов оказались не те, то ли я упустил что-то в конфигурации и настройке, то ли не хватало какой-то магии VooDoo… Но несмотря на то, что Fluid PhysX успешно показывал PhysX Hardware Acceleration, ни одна игра из тех, что были выкачаны под пиратским флагом, рассчитывать физику на гибриде отказывалась. И в принципе все… занавес…
Эксперимент официально не удался — Франкенштейн был разобран и продан таким же энтузиастам, а глянув на объем изначальной статьи (со всеми этими инструкциями про виртуальный монитор), которую я радостно хотел выпустить на Хабр, я лишь посмеялся, и отложил её в долгий ящик.
НО! Всё то время, что я возился с этим гибридом (в 2022-ем то году, вообще заняться нечем), я много читал про видеокарты, про физику, про её отсутствие у "Красных", про то, что у Nvidia есть волшебные CUDA ядра, про SLI, и про развитие видеокарт с того самого 2008-го года, и по сегодняшний… о чем дальше и пойдёт речь.
Интерлюдия
Конечно, первый рациональный вопрос — зачем заморачиваться и делать какой-то гибрид из карт Radeon и Nvidia, если при наличии двух слотов PCI-e можно было просто установить две карты от Nvidia в SLI и радоваться жизни, с таким же, если не с большим ФПС.
Ответ предельно прост. Можно было установить мощный Radeon, и посредственную Nvidia, и этого уже было достаточно для большого прироста. Судя по Веб-архиву, технология активно существовала вплоть до 13-го года. И собрать какой-нибудь хороший AMD, а к нему приспособить старый GeForce за копейки — звучало вполне как план. Как план для извращенца, но всё же план.
Физика — она испарилась
А вот здесь все сильно проще, в своё время физический сопроцессор PhysX не принадлежал Nvidia, как и графические ускорители Voodoo от 3dfx. В период, когда физика была модной, и была двигателем прогресса, Nvidia пыталась разместить её где только могла (Ageia была куплена ещё в начале 2008-го года).
Когда же физика перестала быть модной (а в особенности после инцидента, позволяющего запускать гибриды физики вместе с картами AMD) Nvidia прикрыла лавочку, и выложила библиотеки почти в открытый доступ, но без возможности аппаратного ускорения (если расчеты выполняются не на графическом чипе Nvidia). При этом и само внедрение Физики происходило по какой-то лицензии, при которой разрабатывать игры могли, но при продажах, процент должен был уходить Nvidia (здесь не силен, если в комментариях поправят, я внесу сюда исправления).
Что в итоге? Если у вас на борту не Nvidia, то не видать вам физики (да есть и другие движки в т. Havoc и Bullet, но самая впечатляющая физика была и остается у Nvidia).
А основной рынок разработки игр какой? Правильно — консольный, а тут ещё целую библиотеку подключать, ещё и не везде она будет работать. Вот и ответ на вопрос, куда пропала физика из игр, данный как раз примерно в 15-ом году. (конечно она пропала не отовсюду, и не совсем. И были отдельные игры, на собственных разработках, вроде Hydrophobia, и физика в том же ведьмаке вроде как просчитывается через PhysX, и прекрасно работает на картах от красных, но это уже детали).
Но проблема даже не в этом, а в том, что Nvidia создала (купила, украла, доработала, нужное подчеркнуть) очень много интересных технологий, которые канули в Лету (возможно лучики следующие на очереди).
Reflex
Подробная статья о том, как работает Reflex.
Технология, применяемая в шутерах на 144 герцовых и выше мониторах, для уменьшения инпут лага при работе с нейросетями третьего поколения. Один из тех примеров, когда Nvidia сама создает проблемы, сама же их и решает.
В целом Reflex имеет право на существование в киберспорте, если бы не одно, но! Большая часть киберспортсменов умышленно роняет графику в плинтус, для достижения минимальных задержек нативно, следовательно, для них сам Reflex избыточен. А остальные игроки, которые не используют DLSS 3.0, просто не почувствуют разницы.
Hairworks
У нас есть свободные CUDA ядра. Куда же их определить? А давайте будем рисовать шерсть? Фактически технология-гиммик, которая не прижилась по двум причинам.
Результат просто отвратительный.
Она никак не влияла на сам процесс разработки (в отличие от лучиков).
Да и нагружала карты она ой-ой-ой как. Возможно если бы волосам добавить текстурки, или увеличить кол-во волос (шерсти/меха), все могло бы пойти совсем другим путем. И сейчас бы мы наслаждались красивыми шарфами вместо реалистичного освещения.
Несмотря на то, что волосы и физика волос была много где, самым запоминающимся остаётся Ведьмак 3. Где его все равно отключали из чисто эстетических причин.
FlameWorks
Остался технодемкой. Хотя и довольно впечатляющей.
ShadowWorks
Был использован только в Watch Dogs 2. Где его никто не заметил. Во многом стала избыточной с появлением лучиков. А если хорошо вспомнить историю, то такие тени нарисовал ещё Кармак в далеком 2001-ом году!
WaveWorks
Несмотря на всю физическую достоверность, вода в Assasin’s Creed: Black Flag (где он и применялся), вела себя не сильно лучше, чем в Корсарах: КВЛ (ГПК) вышедшей ещё на StormEngine.
SLI ушел от нас
Перед финалом, одно любопытное наблюдение. С момента выхода 10-ой серии GeForce, Radeon карты в десктопном сегменте заняли позицию догоняющих.
А мощный рывок Nvidia в 2016-ом году, практически обнулил необходимость в SLI и Crossfire. Что хорошо заметно в том, что уже в 10-ой серии, он был доступен лишь картам начиная от 1070, а к 30-ой вообще ограничился картами уровня 3090.
И если бы не майнеры (затормозившие прогресс, и поднявшие цены карт до небес), то возможно Nvidia отказалась бы от SLI ещё раньше.
При этом важно отметить что Nvidia ни разу не рассматривала возможность использования SLI как описано ранее, когда на одну карту кладётся вся физика, а на другую весь рендер.
Весь SLI (и/или Crossfire) всю дорогу сводился к одной из двух реализаций:
Поочередная подготовка кадров. Тупиковая ветвь в виду того что кадры имеют разную сложность, и поэтому распараллелить подготовку кадров идеально не получается.
Подготовка одного и того же кадра пополам (когда каждая часть кадра генерируется своей видеокартой).
Вторая реализация хоть и казалась идеальной, на практике оказалась не столь радужной. Пропускная способность SLI коннектора, не позволяла обеспечить двукратный прирост скорости. А в дальнейшем это стало и экономически нецелесообразно, когда одна карта условно 70-й линейки в рамках серии, была дешевле, чем 2 50-е. Из-за чего собственно мы пришли к тому, что имеем — огромные цельные чипы у Nvidia.
Причем это довольно интересное явление, учитывая, что в процессорах, тенденция строго обратная. В последние годы она только набирает обороты с распараллеливанием процессов и процессоров, и даже появлением чиплетов.
Свернули не туда — Почему идея AMD выглядит интересней, хоть она и была догоняющей
И пока я рассуждал о том, что вот SLI неэффективен, Nvidia молодцы, а AMD — нет, я пропустил самое главное — последние несколько поколений (а именно с выходом RDNA) АМД активно переходит от монокристалла к чиплетной системе изготовления видеокарт.
Пока это происходит только в мобильном секторе, но сама тенденция показывает, что технология отнюдь не такая тупиковая какой кажется. Потому что при помощи чиплетной системы, AMD может создавать единую линию, на которой будут собираться унифицированные чипы, и закрывать одной линией всё производство видеокарт, от самых бюджетных, до самых топовых, просто размещая на плате условно говоря разное кол-во чипов.
Уже сейчас в Navi 31, который используется в 7900XT, кристаллов получается аж 7. Видеочип и 6 чипов кеш-памяти. А значит уже с Navi 4C, несколько десятков чипов на одной подложке, где каждый может заниматься собственными расчетами.
При общем удешевлении — технология имеет практически неограниченное масштабирование, что может превратить AMD из догоняющих в лидирующих. Но что самое интересное, подобный подход с разделением на отдельные чипы, может наконец вернуть нам аппаратное ускорение физики, и уже через несколько лет мы увидим не прибитые к полу объекты.
При этом причина по которой АМД перешла на чиплеты, скорей всего банальна, они уперлись в потолок производительности на своих монокристаллах. Nvidia находятся где-то там же (и сама необходимость использования DLSS для отрисовки игр тому подтверждении). И скорей всего размещение нескольких чипов на одной плате, скорей всего даст больший прирост чем соединение их Кабелем, что может привести к довольно интересному и резкому скачку в производительности.
Смешно и то, что современная чиплетная система, подозрительно (в общих чертах) напоминает то, к чему история привела во времена процессоров Cell, что на PlayStation 3. Конечно роль прогресса, и избежание ошибок очевидно, но наблюдение занимательно.