Сегодня 25 декабря 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Видеокарты

NVIDIA GF100 – полное описание архитектуры

⇣ Содержание

#Graphic Processing Cluster

 GF100s.png
Графический процессор GF100 построен на базе масштабируемой архитектуры, в основе которой лежит применение объединенных в кластеры GPC (Graphic Processing Cluster – кластеры обработки графики) потоковых мультипроцессоров (SM, Streaming Multiprocessor). Каждый такой кластер содержит четыре мультипроцессора, а также все необходимые блоки для обработки геометрических данных и текстурирования. Фактически, каждый GPC представляет собой самостоятельный ГП, не имеющий лишь собственной подсистемы памяти. GF100 состоит из четырех таких кластеров, совместно использующих шесть контроллеров памяти, шесть модулей ROP (по 8 блоков ROP в каждом) и L2-кеш. Очевидно, что младшие (а со временем, возможно, и старшие) модели ГП будут получены изменением количества «кубиков» этого «конструктора».
 gpc.png

#PolyMorph Engine

Использование теселляции фундаментальным образом изменило распределение нагрузки внутри графического процессора и вынудило инженеров NVIDIA несколько изменить компоновку вычислительных блоков и ввести новый тип блока – PolyMorph Engine. Каждый графический кластер (GPC) оснащен четырьмя такими блоками – по одному на каждый мультипроцессор (SM). Каждый PolyMorph Engine выполняет пять стадий: выбор вершин, тесселяция, преобразование координат, преобразование атрибутов, потоковый вывод.
 polymorph.png
На первом этапе вершины выбираются из глобального буфера, после этого вершина отправляется в мультипроцессор, где ее координаты преобразуются в координаты сцены и определяется уровень тесселяции (аналог уровня детализации, LOD). После этого вершина передается на второй этап – тесселяцию. На этом этапе полигон разбивается на несколько новых, более мелких, по карте смещения определяются их координаты. Полученные новые вершины вновь обрабатываются в мультипроцессоре и передаются через потоковый вывод в память для дальнейшей обработки.

#Raster Engine

После того, как геометрические данные обработаны в PolyMorph Engine они передаются для растеризации в Raster Engine. В этом блоке отфильтровываются невидимые примитивы (т.н. обратные поверхности), затем геометрические данные преобразуются в экранные точки, которые в свою очередь сортируются и фильтруются по Z-координате. Каждый кластер (GPC) оснащен одним блоком растеризации, обрабатывающим до 8 точек за такт, то есть суммарная производительность GF100 составляет 32 точки за такт – это в 8 раз больше, чем обеспечивал GT200.
 raster.png

#Streaming Multiprocessor третьего поколения

Каждый мультипроцессор состоит из 32 вычислительных блоков CUDA – четырехкратное преимущество в сравнении с предыдущими архитектурами. Как и прежде, ядра CUDA имеют скалярную архитектуру, что позволяет добиться максимальной загрузки, независимо от типа обрабатываемых данных – будь то операции с z-буфером или обработка текстур. Каждый процессор CUDA оснащен одним логическим блоком ALU и одним FPU.
 SMs.png
Кроме того, каждый мультипроцессор оснащен 16 Load/Store-блоками, позволяющими определить адреса данных в кеше или памяти для 16 потоков за каждый такт. Предусмотрены и четыре блока специальных функций (SFU, Special Function Unit), выполняющих такие операции как синус, косинус, квадратный корень. Каждый SFU выполняет одну операцию на поток за такт, так что ветвь (warp, 32 потока) выполняется за 8 тактов. Мультипроцессор организует потоки в ветви по 32 потока, для управления этими ветвями используется два планировщика ветвей – две ветви могут выполняться на одном мультипроцессоре одновременно. Планировщики GF100 передают по одной инструкции от каждой ветви группе из 16 ядер CUDA, 16 блоков LD/ST или четырех SFU. Кроме того, каждый SM оснащен четырьмя текстурными блоками – каждый из них отбирает до четырех текстурных семплов за такт, результат может быть сразу же отфильтрован – предусмотрена билинейная, трилинейная и анизотропная фильтрация. В отличие от GT200, в GF100 блоки текстурирования работают на частоте, большей частоты ядра. Текстурные блоки GF100 поддерживают форматы BC6H и BC7, реализованные в DX11 и позволяющие снизить загрузку подсистемы памяти при обработке HDR-текстур. Общая память и кеши Общая память – это быстрая, программируемая, расположенная в микросхеме память, позволяющая максимально оптимизировать обмен данными внутри потока. В GF100 помимо общей памяти используется также L1-кеш, собственный внутри каждого мультипроцессора (SM). L1-кеш работает в паре с общей памятью, в то время как общая память предназначена для алгоритмов с упорядоченным доступом к памяти, L1-кеш ускоряет те алгоритмы, где адреса данных не известны заранее.
 memory1.png
 memory2.png
В GF100 каждый мультипроцессор оборудован 64 Кб памяти, которая может быть поделена на 48 Кб общей памяти и 16 Кб L1-кеша или наоборот. Кроме того, предусмотрен унифицированный L2-кеш объемом 768 Кб. Он обеспечивает максимально быстрый обмен данными между различными блоками ГП.
 memory3.png
Блоки ROP Блоки ROP в GF100 организованы партициями по восемь блоков в каждом. Каждый блок может вывести 32-бит целое значение за такт, либо FP16 за два такта, либо FP32 – за четыре. Благодаря улучшенным алгоритмам сжатия и увеличенному количеству ROP заметно ускорено сглаживание 4x и 8xMSAA – оно выполняется соответственно в 1,6 и 2,3 раза быстрее, чем GT200. Стоит отметить, что GF100 выполняет сглаживание 8xAA лишь на 9% медленнее, чем 4хАА. Кроме того, в GF100 реализован новый режим сглаживания – 32хCSAA (Coverage Sample Antialiasing).

#Дополнительные возможности

В заключение стоит сказать о эффектах следующего поколения – основанных не на традиционной попиксельной обработке, а на вычислениях с помощью архитектуры CUDA. Подобные вычисления позволяют реализовать гораздо более сложные алгоритмы визуализации, как хорошо уже знакомые нам физические эффекты PhysX, так и более продвинутые техники, например, трассировка лучей (Ray Tracing) и даже реализация искусственного интеллекта средствами ГП. Круг задач, которые позволяет решить GF100 гораздо шире, чем у обычного графического процессора, однако применение новых возможностей – безусловно, вопрос завтрашнего дня, так как в настоящее время разработчики игр еще не готовы использовать весь арсенал этого процессора. Впрочем, темой одного из докладов на прошедшей в Лас-Вегасе конференции как раз стало сотрудничество компании NVIDIA с разработчиками игр, так что есть все поводы надеяться, что уже в этом году появятся первые игры, способные максимально активно использовать возможности GF100.
 raytrace.png
Благодарим российское представительство компании NVIDIA за помощь в организации поездки на выставку CES'2010 и участие в NVIDIA GF100 Deep Dive
- Обсудить материал в конференции


 
← Предыдущая страница
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
За 2024 год в Steam вышло на 30 % больше игр, чем за прошлый — это новый рекорд 31 мин.
«Яндекс» закрыл почти все международные стартапы в сфере ИИ 55 мин.
Создатели Escape from Tarkov приступили к тестированию временного решения проблем с подключением у игроков из России — некоторым уже помогло 2 ч.
Веб-поиск ChatGPT оказался беззащитен перед манипуляциями и обманом 3 ч.
Инвесторы готовы потратить $60 млрд на развитие ИИ в Юго-Восточной Азии, но местным стартапам достанутся крохи от общего пирога 4 ч.
Selectel объявил о спецпредложении на бесплатный перенос IT-инфраструктуры в облачные сервисы 5 ч.
Мошенники придумали, как обманывать нечистых на руку пользователей YouTube 5 ч.
На Открытой конференции ИСП РАН 2024 обсудили безопасность российского ПО и технологий искусственного интеллекта 6 ч.
Российские торговые площадки назвали самые продаваемые игры в преддверии новогодних праздников 6 ч.
Linux Foundation сократила расходы на разработку ядра Linux до $6,8 млн, 6 ч.