Что подобное Nvidia SLI

    GeForce_980_Ti_garage_system-34.jpg

    Для всякого вычислительного компонента, будь то процессор или GPU, есть несколько стезей развития. Самый банальный — это взять и нарастить частоту. При этом отдача будет расти почти линейно, но вот тепловыделение будет расти по кубическому закону (зачем — ответ в этой статье). Второй способ — оптимизация наиболее процессора: доработка конвейера, оптимизация инструкций, изменение типа транзисторов и так дальше. Способ хорош тем, что даже сейчас позволяет поднять производительность на 5-7% за колено, но это явно не тот прирост, которого все ждут. Ну и третий способ — это уменьшение техпроцесса: при текущем снижается и рабочее напряжение процессора, а значит и его тепловыделение, что позволяет, к образцу, увеличить его частоту. Однако чем меньше техпроцесс, тем труднее его делать еще меньше: к пример, Intel «сидит» на 14 нм уже третий год, и неизвестно, если перейдет на 10 нм.

    Перенесемся на 13 лет назад — времена Pentium 4. Частоту увеличивать выше 3.5 ГГц было не эффективно — процессор и так был очень горячим. Трансферт его на более низкий техпроцесс и тем более оптимизация — процесс долгий, а AMD со собственными Athlon не ждет. И тогда Intel решила зайти с другой местности — сделать двухядерный процессор, но на несколько более низких частотах. В результате тепловыделение осталось на том же уровне, а вот производительность повысилась. Позже появились пользовательские 4ядерные процессоры, затем 6ядерные, ну и апогей — 8ядерные Ryzen. И этот процесс, естественно, будет продолжаться дальше.

    А что же происходит на рынке видеокарт? В принципе — также самое. «Одноголовых» решений хватало и хватает обычным игрокам, но для про-геймеров корпорация 3dfx в 1998 сделал тоже, что и Intel 7 годами позже — выпустила «двухголовочную» видеокарту.

    История появления SLI

    Как я уже написал выше, в 1998 году корпорация 3dfx представила технологию SLI (англ. Scan Line Interleave — альтернирование строчек), с помощью которой могли работать вместе два чипа Voodoo2:

    voodoo_2_sli_2a.jpg

    Это выкидывало невероятные по тем временам возможности — запуск игр в разрешении 1024х768. За всем тем проблем так же хватало — это и повышенное тепловыделение, и цена (600 долларов). Увы — мысль не особо прижилась из-за того, что софта, который умел использовать оба чипа, практически не было, и в итоге через пару лет линейка Voodoo5 очутилась просто провальной — продали всего 200 видеокарт, из которых действительно работало около сотни. Это, а также другие ошибки 3dfx, привели к этому, что компания была куплена Nvidia за 110 миллионов долларов в 2001 годку. 

    В Nvidia, конечно же, оценили SLI, но вот проблема в том, что тогда получил формирование AGP-порт, который был на материнских платах только один, так что идея SLI на 2 разных видеокартах, увы, провалилась (хотя видеокарты с двумя графическими чипами все же изготавливались, но, скорее, как исключения).

    В 2004 году появилась шина PCI-E, какая активно используется до сих пор. И одним из ее плюсов было деление линий — то лакомиться можно было сделать два порта по х4 или один по х8. Стали появляться исходные платы с двумя портами PCI-E, и тогда же Nvidia «перезапустила» SLI — ныне он расшифровывается как Scalable Link Interface (масштабируемый интерфейс). Увы — первоначально (да и сейчас) были все те же проблемы, что и у 3dfx: нужно было оптимизировать драйвера под применение 2 видеокарт, и нужно было «пинать» разработчиков игр, чтобы они оптимизировали их под SLI. Это работали далеко не все, поэтому особого толку от SLI тогда не было: люди переплачивали двукратно, а прирост в играх в лучшем случае был 50-60%, а в некоторых случаях fps от применения SLI даже падал.

    Но Nvidia не сдавалась — в 2007 году был представлен Triple-SLI, дозволяющий подключать уже 3 видеокарты вместе, и даже годом раньше появился не абсолютно честный Quad-SLI: можно было подключать вместе две двухчиповых видеокарты (GeForce 7900GX2), что вручало 4 работающих вместе GPU. В теории Nvidia обещала, что 3 видеокарты могут заниматься вместе до 2.5 раз быстрее, чем одна. На практике, увы, все было еще хуже, чем с 2 картами.

    Методы построения изображения с использованием SLI

    Самый простой алгоритм — Split Frame Rendering (отдельный рендеринг кадра). Он заключается в том, что кадр делится поровну между абсолютно всеми видеокартами в системе:

    001_sfr.jpg

    Плюсы очевидны — картинку можно без проблем разделить и на 2, и на 3, и на 4, и даже на 10 кусков, то есть в доктрине количество одновременно работающих видеокарт не ограничено. Но проблемы, увы, тоже потреблять — у каждого участка кадра своя сложность, и поэтому все видеокарты предстоят, пока одна из них не обработает свой самый трудный участок. Благодаря этого видеокарты временами работают неэффективно, и в итоге fps оказывается вниз того, что мог быть.

    Второй алгоритм, вытекающий из первого — Alternate Frame Rendering (чередующийся рендеринг приятельница). Он заключается в том, что все видеокарты обрабатывают кадры по очереди: к примеру, если их две, то одним обрабатывает все четные кадры, а другая — все нечетные:

    004_afr2.jpg

    Плюсы все те же — таким ролью можно распараллелить загрузку между любым количеством видеокарт. Минусов также хватает — начиная с того, что сложность кадров может быть различной (а значит опять же возможны задержки), и заканчивая тем, что в видеопамяти теперь обязан храниться не один кадр как раньше, а уже два — то есть требуется больше видеопамяти (вобщем говоря, я несколько утрирую — один кадр это минимум, в современных забавах видеокарта может хранить и 5 последующих кадров в буфере).

    К слову, в Quad-SLI с 2 двухчиповыми видеокартами используется объединение технологий выше — одна двухчиповая видео-карточка использует SFR, то есть разделение кадра на две части, а в сумме обе видеокарты трудятся по AFR — то есть чередуют кадры. Но, как не трудно догадаться, проблем с организацией только этого множество, поэтому прирост производительности гораздо ниже прогнозируемого 4кратного.

    Еще один алгоритм построения изображения, SLI AA (Anti Aliasing, скрашивание), качественно отличается от предыдущих — он заточен не на повышение fps, а на улучшение качества рисунки: один кадр генерируется на всех видеокартах, и последовательно частично скрадывается сначала на одной, потом на другой (то есть сглаживание идет с кое-каким шагом). В итоге на выходе мы получаем картинку с тем же fps, что и у одиночной видеокарты (ну или мало-мальски выше), но гораздо более четкую — может быть даже х32 амортизация!

    Однако SLI может использоваться не только для прямого распараллеливания нагрузки — к образцу, у Nvidia есть PhysX SLI — он заключается в том, что одна видеокарта (самая сильная) обрабатывает графику, а другая (более слабая) — PhysX-эффекты (дым, свет, эффекты ткани и так далее). Так же есть так называемый Hybrid SLI — это работа встроенной в процессор видеокарты вместе с дискретной. Увы — как и следовало ожидать, прироста от данного не было, поэтому эта технология трансформировалась в Nvidia Optimus, где картинку в силах рендерить или дискретная, или интегрированная видеокарта, ну а на экран картинку всегда вводит интегрированная (чтобы не было заметного переключения между видеокартами).

    Условия для системы с видеокартами в SLI



    Так как мы подключаем сразу несколько видеокарт, то на материнской плате надо быть столько же слотов PCI-E, сколько будет подключено видеокарт. В убеждении для работы одной карты хватает даже х4 скорости, поэтому на нынешных материнских платах обычно ставят до 3 портов, в итоге получается распорядок х8+х4+х4. Второе очевидное требование — это блок питания, с, во-первых, довольной мощностью (700 и выше ватт), и, во-вторых, с нужным количеством 6 и 8-пиновых коннекторов для добавочного питания видеокарты. Также для работы требуется специальный SLI-мостик для обобщения видеокарт напрямую:

    55532c131f86d_untitled.jpg

    Разумеется, можно передавать данные напрямую чрез PCI-E, и раньше так делали, но сейчас объем данных настолько велик, что их передача по PCI-E существенно бы снизила производительность (так как сам интерфейс PCI не очень-то и борзый, особенно если используются всего 4 линии). Также требуются видеокарты с помощью SLI — их легко определить по специальным контактам для подсоединения мостика. Еще одно значительное требование — мощный процессор: чем выше fps, тем выше нагрузка на процессор, к этому же ему придется синхронизировать видеочипы между собой.

    Самое основное — какой-никакие видеокарты объединяются в SLI. Во-первых, для корректной работы это должны быть видеокарты одной линейки (но не естественно одинаковых производителей). Объем памяти ограничивается наименьшим объемом из все видеокарт (всего в играх под DX 11 — в DX 12 память может суммироваться). Все остальное — версии BIOS, частоты и так позже — не важно.

    Ну и самый главный вопрос — а стоит ли вообще делать SLI? Мой опровержение — нет, исключение — вы очень требовательный геймер и хотите выступать в 8К60. Посудите сами — самой мощной пользовательской одночиповой видеокарты, 1080 Ti, без осложнений хватает на максимальные настройки даже в 2К, в 4К для 60 fps в самых требовательных забавах придется чуть убрать сглаживание и эффекты. То есть обычному игроку этой видеокарты просто заглаза. Заморачиваться с SLI стоит, если у вас, к образцу, 120 гц 4К монитор, или парочка 4К 60 гц мониторов — в таком случае да, SLI обладает смысл для достижения плавности картинки на максимальных настройках в обоих вариантах, но и тут нужно понимать, что не во всех играх от SLI будет существенный прирост, потому все равно в некоторых играх придется или снижать графику, или «терпеть» fps дальше 60. Так что увы — если в процессорах многоядерность давно стала нормой, в окружении видеокарт пока все еще правят «одноголовые» решения.