> > > > Next-Gen GPU: создать многочиповую архитектуру Navi будет очень сложно

Next-Gen GPU: создать многочиповую архитектуру Navi будет очень сложно

Опубликовано:

amd-radeonНовость на прошлой неделе о том, что новая архитектура AMD Navi ориентирована на массовый рынок, а не на high-end сегмент, вызвала горячие обсуждения. Были высказаны предположения, что AMD может разработать GPU Navi, например, с 2.048 потоковыми процессорами для среднего сегмента рынка. Но с помощью многочиповых модулей (MCM), похожих на процессоры Ryzen (Threadripper) два или четыре подобных кристаллов Navi можно будет объединить, чтобы создать более мощный GPU.

В принципе, на подобное решение намекает то, как сама AMD описывает архитектуру Navi. В ранее опубликованных планах AMD всегда говорила о памяти нового поколения и масштабируемости. Под памятью NextGen можно понимать GDDR6 или HBM3, но масштабируемость явно указывает на существование архитектуры с несколькими вариантами расширения. В принципе, такой подход сегодня используют AMD и NVIDIA, пусть даже мы по-прежнему подразумеваем монолитные чипы. Которые, в случае NVIDIA GV100, достигли площади 815 мм². С процессорами сегодня наблюдаются схожие размеры. Например, в случае Ryzen Threadripper и Epyc AMD использует дизайн MCM из четырех ядер площадью 213 мм² = 852 мм². Intel, с другой стороны, пока придерживается монолитных кристаллов, достигнув площади 720 мм² для Knights Corner и 698 мм² для Skylake SP/X.

Если архитектура GFX10/Navi будет производиться по дизайну MCM, то AMD придется преодолеть все трудности, которые возникали при реализации MCM в процессорах.

Дизайн MCM для GPU смог бы дать существенные преимущества по себестоимости производства. Вместо одного крупного чипа можно изготавливать несколько меньших по размеру кристаллов, что увеличит долю выхода годных кристаллов и снизит расходы на производство. Если верить AMD, дополнительное увеличение бюджета транзисторов, связанное с дизайном MCM, составляет порядка 10% по сравнению с монолитными чипами (в случае Epyc/Ryzen Threadripper площадь 777 мм² увеличилась до 852 мм²). Но в случае процессоров себестоимость дизайна MCM составляет 59% от монолитных чипов. Что можно перенести и на GPU.

NVIDIA тоже работает над дизайнами MCM для своих GPU. Используются модули GPU (GPM), которые в упаковке MCM связаны с другими GPM через интерконнект. Подобные GPM специально разрабатываются под нужды MCM. Инженерам удалось в пять раз снизить внутренние коммуникации GPU, производительность каждого GPM увеличилась на 22,8%.

Самая большая проблема - быстрый интерконнект

Но с базовыми функциями GPU не все просто. Некоторые проблемы дизайна MCM, возникающие в случае GPU, хорошо видны по процессорам. Для Ryzen, Ryzen Threadripper и Epyc AMD использовала специально разработанный интерконнект Infinity Fabric, связывающий кристаллы между собой, а также с внешними компонентами. Помимо всего прочего, здесь важны контроллеры памяти, которые могут работать в разных режимах Non-Uniform Memory Access (NUMA) и Uniform Memory Access (UMA) в случае Ryzen Threadripper. Процессоры Ryzen тоже демонстрируют зависимость от быстрой памяти и минимально возможных задержек для кластеров CCX.

AMD добилась пропускной способности между кристаллами 42,7 Гбайт/с, в случае связи упаковки с системой - 170,7 Гбайт/с в двух направлениях. Для GPU даже комбинированной пропускной способности 170,7 Гбайт/с слишком мало. Например, пропускная способность памяти в high-end решениях составляет от 512 до 1.024 Гбайт/с, намного больше того, что может обеспечить сегодня Infinity Fabric. Важность скоростного интерконнекта как раз демонстрировали коммутаторы NVSwitch от NVIDIA, которые распределяли интерконнект NVLink по 16 GPU со скоростью до 7,2 Тбит/с, что соответствует 900 Гбайт/с, такую пропускную способность уже можно сравнить с памятью. Но пропускная способность памяти - это одно, внутри GPU в секунду передаются терабайты данных, в том числе между кэшами L1, L2 и L3. У GPU с двумя или большим числом кристаллов часть ресурсов будут общими, поэтому необходимо обеспечивать скоростную передачу данных между ними.

Кроме вопроса пропускной способности остается проблема энергопотребления. Быстрый интерконнект сложно создавать не только из-за требований пропускной способности, но и по причине высокого энергопотребления. Коммутатор NVSwitch потребляет порядка 100 Вт, когда задействованы все 576 линий NVLink. Но даже в случае существенно меньшего количества линий в упаковке GPU, энергопотребление может стать серьезным препятствием на пути использования подобных интерконнектов.

В итоге решающим фактором может стать скорость подключения памяти HBM к отдельным кристаллам. Режимы UMA/NUMA в случае процессоров AMD как раз указывает на существование проблемы на уровне памяти, ее придется решать и в случае GPU.

Для MCM GPU требуются свои режимы рендеринга

С точки зрения производства самой серьезной проблемой дизайна MCM для GPU станет интерконнект. Но на этом трудности не заканчиваются.

Как GPU будет разделять работу между несколькими кристаллами? Конечно, сегодня существуют разные подходы multi-GPU, но каждый имеет свои недостатки. Вспомните горячие споры по поводу подходов Alternate Frame Rendering (AFR) и Split Frame Rendering (SFR), причем оба нельзя назвать оптимальными. В режиме AFR каждый GPU полностью рассчитывал свой кадр поочередно, в SFR один кадр рассчитывался на нескольких GPU. Да и технология Scan-Line Interleave (поочередный расчет строчек), которая и стала причиной названия SLI, является не самым оптимальным способом распределения нагрузки на два или больше GPU.

Наиболее эффективным способом пока считается Checker Board/Supertiling, когда кадр разделяется на несколько меньших областей. При использовании трассировки лучей или 3D-рендеринга на видеокартах класса рабочих станций данная технология используется давно, она доказала свою эффективность. Но и здесь пока рано говорить о рендеринге в реальном времени с 60 fps. Дополнительный блок балансировки нагрузки должен гарантировать, что все области кадра будут рассчитываться за одинаковое время двумя или большим числом GPU, чтобы картинка была синхронизирована. Все эти проблемы хорошо известны по решениям multi-GPU, таким как SLI и CrossFire. Вместе с аппаратными сложностями они привели к тому, что рендеринг multi-GPU сегодня занимает довольно небольшую нишу на игровом рынке.

Современные GPU уже опираются на тайловый рендеринг, чтобы уменьшить внутреннюю пропускную способность и распределить рендеринг по доступным ресурсам. Концепция Tile Based Rendering является противоположностью рендерингу Immediate Mode Rendering. Процесс растеризации IMR выполняется для всего кадра, в случае же TBR кадр разделяется на множество прямоугольных тайлов, и процесс растеризации выполняется уже отдельно для тайлов. Как правило, тайлы имеют размер 16x16 или 32x32 пикселей. Подобная параллелизация нагрузки отлично подходит для современных GPU с тысячами потоковых процессоров. Кроме того, у Immediate Mode Rendering довольно высокие требования к пропускной способности памяти.

Но у Tile Based Rendering есть и недостатки. Почти все игры и другие приложения оптимизируются под режим Immediate Mode Rendering. Поэтому с архитектурами Maxwell и Pascal NVIDIA пришлось пойти на ряд хитростей, чтобы тайловый рендеринг работал эффективно. Среди них – специальный код DirectX, управляющий растеризацией треугольников. Кроме использования Tile Based Rendering остальная часть графического конвейера осталась прежней. К ней относится тесселяция, геометрия, шейдеры и т.д.

В общем, даже помимо проблемы интерконнектов, пока не прослеживается простых решений MCM GPU по рендерингу и программной поддержке.

Интересный подход, но слишком много вопросов

Сегодня нельзя ответить на вопрос, сможет ли AMD перенести архитектуру Navi на high-end сегмент, используя дизайн MCM. Да и имеющаяся информация носит характер слухов. Нельзя с абсолютной точностью сказать, что AMD ориентирует архитектуру Navi действительно на средний сегмент рынка. Возможно, компания выберет другой путь.

В любом случае, поразмышлять о дизайне MCM GPU весьма полезно, пусть даже каких-то готовых решений пока ожидать рано.