Архитектура gpu от nvidia реферат

Обновлено: 02.07.2024

Появление видеокарт на основе графических процессоров NVIDIA G80 и ATI R600 обозначило начало нового этапа развития индустрии компьютерных игр: появилась поддержка нового интерфейса прикладного программирования (API, Application Programming Interface) от Microsoft — DirectX 10.

Исходя из характеристик вышеупомянутых видеокарт, несложно определить их теоретическую пиковую шейдерную производительность. Шейдерная подсистема R600 работает с той же тактовой частотой, что и остальная логика (740 МГц), в то время как у G80 частота этой подсистемы значительно выше (1,35 ГГц). Теоретическая пиковая шейдерная производительность Radeon HD 2900 XT равна 236,8 млрд. условных скалярных операций в секунду, а GeForce 8800 GTX — только 172,8 млрд. операций в секунду. Однако по результатам первых тестов, несмотря на преимущество в шейдерной производительности, видеокарта на основе R600 проиграла конкуренту от NVIDIA.

Многие пользователи, не ориентирующиеся в особенностях архитектуры современных графических процессоров, озадачены одним и тем же вопросом: почему видеокарта, обладающая в 2,5 раза большим количеством шейдерных конвейеров, проигрывает своему конкуренту? Ответом на данный вопрос послужит эта небольшая статья.

Архитектура графического процессора NVIDIA G80

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

Блок-схема графического процессора NVIDIA G80 выглядит следующим образом:

Блок-схема NVIDIA G80

Как уже было сказано выше, G80 — это первый графический процессор с поддержкой DirectX 10. Вслед за ним NVIDIA выпустила графические процессоры под кодовыми названиями G86, G84, а также серии G9x и GT200. Все они обладают унифицированной скалярной шейдерной архитектурой.

Сравнительная таблица видеокарт GeForce 8 Series:

Сравнительная таблица видеокарт GeForce 9 Series:

Сравнительная таблица видеокарт GeForce 200 Series:

Архитектура графического процессора ATI R600

Компания ATI выпустила свой ответ с запозданием примерно на полгода. За это время NVIDIA успела выпустить на рынок несколько видеокарт на основе G80.

Как и в случае G80, каждый из шейдерных конвейеров R600 может выполнять одну операцию за такт. Дело в том, что конвейеры R600 не являются скалярными в широком смысле этого слова, так как они группируются в блоки по 5 штук. Каждый из этих 64 суперскалярных блоков может выполнять за такт одну скалярную операцию и одну векторизированную на 4-х конвейерах сразу. Теоретически одна такая векторизированная команда эквивалентна 4-м скалярным, но не всегда. Говоря простым языком, 4 одинаковые скалярные операции можно преобразовать в 1 векторизированную. Если же эти 4 скалярные операции отличаются по характеру, то такое преобразование невозможно. Это не имело бы никакого значения, если бы все операции с шейдерами были векторизированными, но на деле всё обстоит иначе, и прямая аналогия между 5-ю конвейерами ATI типа Vec 4+1 и 5-ю скалярными конвейерами NVIDIA просматривается далеко не всегда, поскольку в реальных приложениях доля независимых скалярных расчётов довольно значительна. Очевидно, что это негативно отражается на реальной производительности R600.

Какова же теоретическая производительность R600 с 64-ю шейдерными блоками Vec 4+1? Получается, что 47,3 млрд. векторных и столько же скалярных операций в секунду. В таком случае, в зависимости от соотношения количества скалярных и векторных операций в программе, превосходство R600 над G80 с его 43,2 млрд. векторных операций в секунду составит 9-19% при полной векторной нагрузке, а при полностью скалярной примерно двукратное превосходство получит G80. Как показывает практика, в общем случае суперскалярная архитектура R600 не имеет явного преимущества над скалярной архитектурой G80.

Блок-схема графического процессора ATI R600:

Блок-схема ATI R600

Суперскалярную архитектуру R600 унаследовали и новые графические процессоры, которые принадлежат к следующим поколениям видеокарт ATI, то есть HD 3xxx и HD 4xxx.

Сравнительная характеристика видеокарт HD 2xxx:

Сравнительная характеристика видеокарт HD 3xxx:

Сравнительная характеристика видеокарт HD 4xxx:

Выводы

Несмотря на свою теоретическую шейдерную мощь видеокарты ATI на практике не столь сильны, как может показаться на первый взгляд. В современных играх значительную часть времени занимают скалярные расчёты, что снижает реальную производительность систем на основе видеокарт ATI. С другой стороны, оптимизация шейдерного кода позволяет минимизировать этот недостаток.

Примером может послужить сравнение видеокарт GeForce GTX 295 и Radeon HD 4870 X2. Продукт от NVIDIA основан на двух графических процессорах GT200b с 240-ю унифицированными скалярными шейдерными конвейерами каждый, в то время как решение от ATI содержит по 800 конвейеров в каждом из своих двух графических процессоров RV770. Но на самом деле HD4870 X2 имеет только 320 шейдерных блоков (по 160 на графический процессор), производительность которых на скалярных операциях существенно уступает производительности конкурента.

Отсюда ответ на вопрос, почему видеокарта с 480-ю шейдерными конвейерами побеждает видеокарту, у которой их 1600, звучит примерно так: видеокарты ATI Radeon обладают суперскалярной архитектурой, в отличие от видеокарт NVIDIA GeForce с их скалярной архитектурой, и реальное количество шейдерных блоков у видеокарт ATI значительно меньше заявленного количества конвейеров.

Однако тот факт, что в 3D-приложениях, выпущенных к моменту выхода R600, суперскалярная архитектура не оправдала ожиданий, вовсе не означает, что в ATI неверно выбрали направление и создали ущербную базовую архитектуру. Во время разработки R600 основной акцент был сделан именно на вычисления, а не на скорость текстурирования или скорость заполнения (fill rate) — R600 показывает отличные результаты почти по всех синтетических тестах, особенно в геометрических, а также в тестах сложных пиксельных шейдеров с ветвлениями. Поэтому количество блоков текстурирования и растеризации не столь значительно, как ранее предполагалось. Превосходство R600 в шейдерной производительности будет тем значительнее, чем сложнее (векторизированнее) будут шейдерные операции.

Послесловие

В данной статье было произведено сравнение архитектуры графических процессоров NVIDIA G80 и ATI R600. Аналогичное сравнение применимо и для последующих поколений видеокарт со скалярной (GeForce 8 / 9 / GTX) и суперскалярной (Radeon HD 2xxx / HD 3xxx / HD 4xxx) архитектурой.

С рассмотрением блоков текстурирования этих графических процессоров можно ознакомиться в статье Игоря Лагунова "Блоки адресации, выборки и фильтрации текстур в составе современных графических чипов".

Краткий справочник терминов, упоминающихся в статье

Шейдер (shader) — это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки.

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

Вершинный шейдер (vertex shader) оперирует данными, сопоставленными с вершинами многогранников. К таким данным, в частности, относятся координаты вершины в пространстве, текстурные координаты, тангенс-вектор, вектор бинормали, вектор нормали. Вершинный шейдер может быть использован для видового и перспективного преобразования вершин, генерации текстурных координат, расчета освещения и т. д.

Шейдерный конвейер (процессор) — это устройство для обработки одного элемента данных одной командой (типичными элементами данных могут быть целые или числа с плавающей запятой).

Блок растеризации (ROP, Raster Operator) — устройство, выполняющее Z-буферизацию, сглаживание и запись обработанного изображения в буфер кадра видеокарты.

Блок текстурирования (TMU, Texture Mapping Unit) — устройство, отвечающее за наложение изображений (текстур) на поверхности геометрических объектов.

Многое изменилось с точки зрения архитектура of NVIDIA Графические процессоры за последние два десятилетия, но важным поворотным моментом стало то, что те, кто в зеленом, запустили архитектуру Tesla еще в 2006 году. В этой статье мы собираемся оглянуться назад, чтобы увидеть, как развивалась архитектура NVIDIA. от Теслы до Тьюринга , текущая архитектура (при отсутствии прибытия Ампера), и более конкретно, как его SM (Потоковые мультипроцессоры) сделали это.

В этой статье мы рассмотрим, как архитектура NVIDIA эволюционировала от Теслы до Тьюринга, поэтому сейчас самое время отойти в сторону и посмотреть, что особенного в каждой из этих архитектур, что вы можете найти в следующей таблице. ,

Как архитектура NVIDIA эволюционировала от Теслы до Тьюринга

Пат: эпоха до NVIDIA Tesla

До прихода Tesla в 2006 году NVIDIA GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР дизайн был соотнесен с логическими состояниями API рендеринга. В GeForce GTX 7900 Работает на матрице G71 и состоит из трех секций (одна предназначена для обработки вершин (8 единиц), другая для генерации фрагментов (24 единицы) и другая для объединения этих (16 единиц)).

Эта корреляция вынудила дизайнеров и инженеров придумывать расположение узких мест, чтобы правильно сбалансировать каждый слой. К этому добавилось прибытие DirectX 10 с затенением геометрии инженеры NVIDIA оказались между молотом и наковальней, чтобы уравновесить матрицу, не зная, когда и каким образом будет следующий этап графических API.

Пришло время менять как вы разрабатываете свою архитектуру .

Архитектура NVIDIA Tesla

Две СФУ единицы (вы можете увидеть их на диаграмме выше) отвечают за сложные математические вычисления, такие как обратные квадратные корни, синусы, косинусы, exp и rcp. Эти блоки также способны выполнять одну инструкцию для каждого тактового цикла, но поскольку их всего две, скорость выполнения делится на четыре для каждого из них (то есть для каждого четырех ядер используется один SFU). Аппаратная поддержка вычислений float64 отсутствует, и они выполняются программно, что значительно снижает производительность.

SM работает с максимальным потенциалом, когда задержку памяти можно устранить, всегда имея программируемые деформации в очереди выполнения, но также и тогда, когда поток деформации не имеет расхождений (это то, для чего нужен поток управления, который поддерживает их всегда в одном и том же путь инструкций). Файл журнала ( 4KB РФ ), где хранятся состояния потоков, а потоки, которые потребляют слишком много очереди выполнения, уменьшают количество их в этом журнале, что также снижает производительность.

С архитектурой Tesla NVIDIA также представила язык программирования CUDA (Compute Unified Devide Architecture) в C, расширенный набор C99, который был долгожданным облегчением для энтузиастов GPGPU, которые приветствовали альтернативу обмануть GPU с помощью шейдеров и текстур GLSL.

Архитектура Ферми

Тесла был очень рискованным шагом, но он оказался очень хорошим, и он был настолько успешным, что стал основой архитектур NVIDIA на следующие два десятилетия. В 2010 году NVIDIA выпустила GF100 умереть на основе нового ферми архитектура, с многочисленными новыми функциями внутри.

Модель исполнения все еще вращается вокруг 32-проводных деформаций, запрограммированных в SM, и это было только благодаря 40нм литография (по сравнению с 90-нм техпроцессом Tesla), что NVIDIA почти все увеличила в четыре раза. SM теперь может программировать два медиа-деформирования (16 потоков) одновременно благодаря двум наборам из 16 ядер CUDA. Когда каждое ядро ​​выполняло одну инструкцию за такт, один SM смог выполнить одну инструкцию деформации за цикл (а это в 4 раза больше, чем у Tesla SM).

С точки зрения программирования, унифицированная система памяти Fermi позволила расширить CUDA C такими функциями C ++, как виртуальные объекты и методы.

Матрица GF100 NVIDIA Fermi

Архитектура NVIDIA Kepler

В 2012 году появилась архитектура NVIDIA Kepler, с которой энергоэффективность его матрицы была значительно улучшена за счет понижения тактовой частоты и объединения центральных тактовых импульсов с тактовой частотой карты (они раньше имели частоту в два раза), что позволило решить проблему GTX 480 предыдущего поколения (они сильно нагревались и имели очень высокий расход).

Такой подход усложнил логику программирования, но при наличии до шести команд деформации за такт SMX Kepler обеспечивает удвоенную производительность Fermi SM.

Матрица GK104 NVIDIA Kepler

Флагманской графикой этого поколения была GeForce GTX 680 с кристаллами GK104 и 8 SMX, которые содержали невероятное количество 1536 ядер и обеспечивали до 3,250 GFLOP полной мощности.

Архитектура NVIDIA Maxwell

Второе поколение Maxwell значительно улучшило производительность, сохранив энергоэффективность первого поколения. Поскольку литографический процесс по-прежнему застопорился до 28 нм, инженеры NVIDIA не могли полагаться на миниатюризацию транзисторов для повышения производительности, но меньшее количество ядер на SMM уменьшало их размер, позволяя им соответствовать большему количеству SMM. в тот же день. Maxwell Gen 2 содержит вдвое больше СММ, чем Кеплер, и его площадь увеличена только на 25%.

В списке улучшений мы также должны упомянуть более упрощенную логику планирования, которая уменьшила избыточный пересчет решений по планированию, что уменьшило задержку вычислений, чтобы обеспечить лучшую занятость деформаций. Часы памяти также были увеличены в среднем на 15%.

Микросхема GM200 NVIDIA Maxwell

Диаграмма чипа GM200, которую мы видим выше, почти начинает ранить глаз, верно? Это матрица, которая включала в себя GTX 980 Ti с 3072 ядрами в 24 SMM и обеспечивала общую мощность 6,060 GLOP.

Архитектура NVIDIA Pascal

В 2016 году появилось следующее поколение NVIDIA Pascal, и техническая документация выглядела почти как точная копия SMM Максвелла. Но то, что в SM нет никаких изменений, не означает, что не было никаких улучшений, и на самом деле 16-нм техпроцесс, используемый в этих микросхемах, существенно улучшил производительность за счет возможности разместить больше SM на одном чипе.

Другими важными усовершенствованиями стали система памяти GDDR5X, новинка, обеспечивающая скорость передачи до 10 Гбит / с благодаря восьми контроллерам памяти, а ее 256-битный интерфейс обеспечивает пропускную способность на 43% больше, чем в предыдущем поколении.

Матрица GP104 NVIDIA Pascal

Графическим флагманом поколения Pascal был GTX 1080 Ti, с его кристаллом GP102, который вы можете видеть на изображении выше, и его 28 SM, упакованными в общей сложности 3584 ядра для общей мощности 11,340 11.3 GLOP (у нас уже XNUMX TFLOP ).

Архитектура NVIDIA Turing

Благодаря независимому программированию потоков, введенному в Volta (который мы здесь не включаем, поскольку это не ориентированная на пользователя архитектура), каждый поток имеет свой собственный IP, и, как результат, SM могут свободно программировать потоки в деформации без необходимость ждать их сближения как можно скорее.

С. М. Тьюринг

Вершина линейки графиков этого поколения - RTX 2080 Ti с его кристаллом TU102 и 68 TSM, содержащим 4352 ядра, с общей мощностью 13.45 TFLOP. Мы не помещаем его полную блок-диаграмму, как в предыдущих, потому что для того, чтобы она поместилась на экране, ее пришлось бы сжать настолько сильно, что это стало бы размытием.

И что будет дальше?

Как вы хорошо знаете, следующая архитектура NVIDIA называется Ampere, и она наверняка прибудет с производственным узлом на расстоянии 7 нм от TSMC. Мы обновим эту статью, как только все данные будут доступны.

Споры о том, кто правил миром 3D-графики в самом начале, не утихают и по сей день. Отдавая дань роли компании 3Dfx Interactive, теперь уже ставшей частью истории, не нужно забывать и другие эпохальные события, например, выпуск чипа NV1. Стал ли первый продукт NVIDIA революцией в мире объемной графики на ПК, попыткой сформировать новую область рынка или просто неудачно спроектированным решением?

Firingsquad: "Выпущенный в 1995 году, NV1 и его модификация STG2000 были первыми "полными" мульт.

Споры о том, кто правил миром 3D-графики в самом начале, не утихают и по сей день. Отдавая дань роли компании 3Dfx Interactive, теперь уже ставшей частью истории, не нужно забывать и другие эпохальные события, например, выпуск чипа NV1. Стал ли первый продукт NVIDIA революцией в мире объемной графики на ПК, попыткой сформировать новую область рынка или просто неудачно спроектированным решением?

Firingsquad: "Выпущенный в 1995 году, NV1 и его модификация STG2000 были первыми "полными" мультимедиа-ускорителями. Оба чипа были идентичны за исключением того, что NV1 использовал высокопроизводительную VRAM, а STG2000 - более дешевую DRAM. Несмотря на то, что NV1 был первым продуктом NVIDIA, для свого времени он был весьма продвинутым решением: 2D- и 3D-графика, встроенный аудиопроцессор мощностью 350 MIPS и процессор ввода-вывода. Самой известным ускорителем на основе NV1 был Diamond EDGE 3D.

Когда чип NV1 был только представлен, многие из 3D-стандартов, которые сейчас кажутся непререкаемыми, еще принимались. Пока полигоны не были окончательно утверждены в качестве стандарта для 3D-игр, NVIDIA решила использовать другой способ формирования примитивов объемного изображения - Quadratic Texture Maps (кривые поверхности третьего порядка). Тогда как современным 3D-ускорителям требуется большое количество маленьких полигонов для воспроизведения гладкой поверхности, в NV1 использовались искривленные стороны полигонов. Это позволяло чипу отображать гладкие поверхности без особой нагрузки. Текстуры хранились в системной памяти и подавались через шину PCI или VESA Local Bus по мере необходимости - по тому же принципу через несколько лет будет работать AGP.

Однако первый продукт NVIDIA не состоял целиком из графического ядра. В NV1 была интегрирована микросхема для воспроизведения звука. С 32 каналами, 16-битным CD-качеством и аппаратным ускорением примитивного объемного звука, NV1 производила более сильное впечатление, чем многие PCI звуковые карты первого поколения. В качестве банка для MIDI (таблица MIDI была сертифицирована Fat Labs) использовалось 6 МБ системной памяти.

Вместо традиционного игрового порта на NV1 был размещен разъем, поддерживающий геймпады и джойстики от Sega Saturn, которые можно было использовать в любой совместимой с DirectInput игре, включая Virtua Fighter, Virtua Cop и Panzer Dragoon.

Хотя чип NV1 намного превосходил возможности конкурентов и был значительно перспективней, именно технология кривых поверхностей третьего порядка привела к его рыночной смерти. Когда Microsoft утвердила спецификации Direct3D, незадолго после того, как NV1 появился на полках магазинов, именно полигоны были выбраны в качестве стандартных примитивов. И, несмотря на все усилия NVIDIA и Diamond, разработчики больше не хотели ориентироваться на NV1. Компания Diamond даже пыталась увеличить число покупателей огромными скидками и включением в комплект поставки геймпада от Sega, но и это не принесло успеха.

С помощью Direct3D Microsoft практически уничтожила NVIDIA. Производители ПК отказывались ставить в машины видеокарты на чипе, несовместимом с Direct3D, и инженеры NVIDIA понимали, что не смогут вывести на рынок новый полигональный 3D-ускоритель. Компания ушла от общественного интереса и была вынуждена уволить несколько сотрудников.

Чип: nVidia Riva TNT2 (TNT2 Vanta, TNT2 M64, TNT2 Pro);
Технологический процесс: 0,25 микрон (0,22 микрон у TNT2 Pro);
Архитектура чипа 128 бит;
Разрядность интерфейса памяти 128 бит (64 бит у TNT2 Vanta и TNT2 M64)
Разрядность шины данных 128 бит (64 бит у TNT2 Vanta и TNT2 M64)
Пропускная способность памяти 2,4 Гб/сек., ( 1,2 Гб/сек у TNT2 Vanta и TNT2 M64; 2,65 Гб/сек. у TNT2 Pro)
Интерфейс AGP 4X (режим Fast Writes не поддерживается);
Частота работы ядра 125 МГц, (100 МГц у TNT2 Vanta, 125 МГц TNT2 M64 и 142 МГц у TNT2 Pro)
Частота работы памяти 150 МГц, (125 МГц у TNT2 Vanta, 150 МГц TNT2 M64 и 166 МГц у TNT2 Pro)
Тип памяти SDR / SGR;
Максимальный объем видеопамяти: 32 Мб;
Конвейеров рендеринга: 2, с двумя блоками текстурирования на каждый;
Скорость заполнения при мультитекстурировании: 125 Мпикселей/сек., 250 Мтекселей/сек., (100 Мпикселей/сек., 200 Мтекселей/сек. у TNT2 Vanta, 125 Мпикселей/сек., 250 Мтекселей/сек. у TNT2 М64 и 142 Мпикселей/сек., 284 Мтекселей/сек. у TNT2 Pro);
Нет аппаратной поддержки T&L;

0.18 микрон;
Частота чипа ожидается в районе 160 - 200 МГц;
Частота памяти от 183 МГц до 200 МГц для SDR и от 333 МГц до 400 для DDR;
Поддержка памяти SDR, DDR SDRAM/SGRAM;
Внутрення шина памяти 128 и 256 бит;
До 128 Мб памяти;
Производительность в режиме мультекстурирования 640-800 млн. пикселей (Ge Force 256 - 240 млн. пикселей);
RAMDAC 350 МГц;
PCI 2.2 и AGP x4 (включая режим Fast Writes);
Поддержка HW T&L, FSAA, HDTV процессор, edge anti-aliasing (краевое сглаживание)

Технология: 0.15 мкм
около 60 миллионов транзисторов
Частота графического ядра: 200+ МГц (позже, вероятны "Ultra" и "Pro" варианты, например на 250 МГц)
Число пиксельных конвейеров рендеринга: четыре
Число текстурных блоков на конвейер рендеринга: два
Возможность наложения четырех текстур на один пиксель (требуется два такта)
Интерфейс памяти: 128 бит
Поддерживается память типа DDR SDRAM/SGRAM
Пиковая пропускная способность шины памяти при 250 Мгц шине: 8 Гб/с
Поддерживаемый объем локальной видеопамяти: до 128 Мб (первые карты, как и наш образец, будут иметь 64 Мб)
RAMDAC: 350 МГц
Максимальное разрешение: 2048x1536@75Hz
Аппаратный T&L: эффективная производительность порядка 40+ млн. полигонов в секунду (у нашего образца чуть меньше 40 млн. полигонов в секунду на синтетическом тесте)

6 пиксельных конвейеров рендеринга
частота ядра - 300MHz
частота памяти - 600MHz, полоса пропускания - 10.5GB/sec
поддержка TwinView
аппаратная поддержка декодирования MPEG-2
улучшенный модуль T&L, алгоритмы сглаживания
технология производства - 0.13микрон.
63 млн транзисторов (только на 3 млн больше GeForce3);
Изготовитель: TSMC по 0,15 мкм техпроцессу;
T&L производительность: 75-100 млн вершин/с;
128 Мб кадровый буфер по умолчанию;
Движок nFiniteFX II;
Сглаживание Accuview;
Архитектура памяти Lightspeed II;
nView.

73 миллиона транзисторов
0.13-мкм технологический процесс;
частота ядра - 450 МГц;
поддержка AGP 8x;
8 конвейеров рендеринга;
4 блока вертексных шейдеров;
2 блока пиксельных шейдеров;
Lightspeed Memory Architecture III (в продолжение LMA II в GeForce4);
двойной Z-Buffer;
новый метод анизотропной фильтрации под названием "12nvx";
поддержка Glide;
отдельный процессор T&L, работающий на тех же 450 МГц (помните 3dfx с ее отдельным T&L-процессором Sage? Между прочим, все специалисты из этой компании до сих пор трудятся в NVidia);
256-битный доступ к памяти, имеющей частоту в 750 МГц (DDR), то есть пиковая пропускная способность памяти составляет 24 Гбайт/с

Про современные архитектуры подробнее:

Флагманской моделью линейки NV4x является чип NV40, увидевший свет в апреле 2004 года. Он производится по хорошо отработанному, но стремительно устаревающему 130-нм техпроцессу на заводах IBM, его 222 миллиона транзисторов потребляют до 120 Ватт энергии, поэтому "силовых" возможностей штатного интерфейса AGP 8x уже катастрофически не хватает и на видеокартах, изготовленных на базе NV40, обычно устанавливают по два (!) дополнительных разъема питания. Да и система охлаждения всей этой "печки" должна быть не самой слабой. Наряду с NV40, выпускается и его PCI Express-модификация NV45, все отличие которой от базовой модели, заключается в интегрированном в корпус чипа AGP-PCI-E мосте HSI. В производственной линейке NVIDIA встречается еще и чип NV48, который отличается от базового NV40 только тем, что выпускается на фабриках TSMC. Таким образом, NVIDIA целиком и полностью отказалась от услуг IBM в области изготовления чипов, и вернулась к своему старому и, видимо, более приемлемому, чем IBM, технологическому партнеру.

256 битный четырехканальный (организация 64х4) интерфейс памяти NV40 обеспечивает подключение до 1 Гбайта памяти любого типа - как обычной DDR1/DDR2, так и специально разработанной для использования в видеоустройствах GDDR3. Что касается архитектурных особенностей NV40, то стоит отметить, что он стал первым графическим процессором, возможности которого полностью соответствуют требованиям DirectX 9.0с, иными словами, его вычислительные возможности позволяют выполнять шейдеры версии SM (Shader Model) 3.0. Высокую производительность обеспечивают 6 вершинных и 16 пиксельных конвейеров (каждый из которых, в свою очередь, оборудован двумя шейдерными блоками и одним блоком текстурирования). Одновременно могут работать либо два шейдерных блока, либо текстурный и один из шейдерных блоков. Таким образом, NV40 позволяет выполнить за такт до 16 текстурных операций или 32 операций с глубиной и буфером шаблонов, обеспечивая анизотропную фильтрацию с соотношением сторон до 16:1 включительно.

На базе ядра NV40/NV45/NV48 выпускаются видеокарты: GeForce 6800 Ultra, GeForce 6800 GT, GeForce 6800 и GeForce 6800 LE. Типовые значения частоты ядра/шины памяти GeForce 6800 Ultra составляют 400 МГц/1,1 ГГц, у модификации GeForce 6800 GT они снижены до 350 МГц/1 ГГц, у GeForce 6800 - до 325 МГц/700 МГц, а у GeForce 6800 LE частотные параметры не оговорены вообще - все отдано на усмотрение производителей видеокарт. При этом у последних двух еще и уменьшено до 12 количество пиксельных конвейеров. Причем, в отличие от общепринятой практики, когда "урезание" осуществляется путем программного отключения некоторого числа процессоров (что дает возможность народным "умельцам" путем нехитрой операции подключить неиспользуемые блоки, получив, таким образом, полнофункциональную GeForce 6800 за небольшие деньги), в данном случае компания NVIDIA выпустила специальное "усеченное" ядро NV41. В нем имеется всего лишь 12 "физических" пиксельных процессоров, тогда как все остальное полностью соответствует базовому NV45. Ядро NV42 является 110-нм версией NV41. Кстати, именно оно лежит в основе самой последней новинки NVIDIA - GeForce 6800 GS (частота чипа - 425 МГц, памяти - 1000 МГц), призванной составить конкуренцию ATI Radeon X1600 XT.

Для видеокарт среднего уровня, компания NVIDIA в августе 2004 года выпустила графическое ядро NV43, являющееся, впрочем, несколько упрощенным (путем уменьшения числа вершинных и пиксельных процессоров и каналов контроллера памяти) решением, основанным на архитектуре NV40. Однако NV43 выполнен по 0,11-мкм технологии TSMC (количество транзисторов в ядре составляет 146 млн.), и, кроме того, он стал первым графическим ядром NVIDIA с встроенным контроллером PCI Express (возможна трансляция интерфейса PCI-E в APG 8х с помощью двустороннего PCI-E-AGP моста HSI). Благодаря более "тонкому" технологическому процессу и меньшему количеству исполнительных устройств в ядре, тепловыделение NV43 не превышает 70 Вт, то есть на PCI-Express карте разъем для дополнительного питания не нужен.

Набор вычислительных ресурсов NV43 ровно вдвое меньше, чем у старшей модели NV40 - он оснащен восемью пиксельными конвейерами и тремя вершинными, а ширина шины памяти уменьшена с 256 до 128 бит.

В настоящее время представлено две Mainstream-модификации видеокарт, базирующихся на графическом процессоре NV43 - GeForce 6600 и GeForce 6600 GT, а также одна класса Low-End - GeForce 6200 (впрочем, с недавних пор она переименована в GeForce 6600 LE). Частоты ядра и шины памяти GeForce 6600 составляют 300 и 550 (иногда - 500) МГц, а у модификации GT - 500 и 1000 МГц соответственно. В GeForce 6200/6600 LE используется "усеченное" ядро NV43V с четырьмя (вместо пиксельными конвейерами, а его частотный диапазон соответствует GeForce 6600.

В младшей модели семейства графических процессоров NVIDIA GeForce 6x00 - GeForce 6200ТС используется преимущественно ядро NV44, изготовленное по 0,11-мкм проектным нормам. Как и в случае NV43, PCI Express у него нативный (то есть реализованный на чипе), а AGP 8х вариант чипа обозначается как NV44А. NV44 имеет 3 вершинных процессора, как у NV43, и 4 пиксельных, какие-либо глобальные архитектурные отличия от NV40 и NV43 отсутствуют.

Главным ограничителем производительности у NV44, является подсистема памяти - ширина шины ограничена 64-битами. Индекс TC обозначает поддержку технологии TurboCache, призванная задействовать часть системной памяти при рендеринге буфера кадра, благо, пропускной способности шины PCI-E x16 для этого хватает. Конечно, такие видеокарты заметно проигрывают по уровню производительности своим полноценным собратьям, зато немного выигрывает у них по стоимости. А для бюджетных решений, каждый сэкономленный доллар может оказаться решающим в деле продвижения на рынок решений той или иной конкурирующих фирм. Тем не менее, для того, кто захочет немного сэкономить, приобретя такую видеокарту, такой выигрыш окажется иллюзорным. Ведь системная память, в особенности DDR2, от которой "оттяпывает" свою часть видеосистема, отнюдь не безразмерна и далеко не бесплатна.

Середина лета 2005 года стала новой вехой в истории компании NVIDIA - был выпущен графический процессор нового поколения G70. Но, несмотря новое кодовое название чипа, его архитектуру нельзя считать принципиально новой - он является очередным этапом эволюции хорошо знакомой всем нам архитектуры семейства NV4x (о чем свидетельствует первоначальное кодовое обозначение чипа - NV47).

Плюс к этому, NVIDIA не стала рисковать и выпустила его по хорошо отработанному 110-нм техпроцессу TSMC, поэтому нет ничего удивительного в том, что видеокарты семейства GF7800GTX стали доступны в массовых количествах сразу после анонса.

Основным новшеством G70, базирующемся на все том же наборе шейдеров Shader Model 3.0 (SM 3.0), стало увеличение до 24 (или, по терминологии NVIDIA, до 6 процессоров квадов) числа слегка улучшенных, по сравнению с NV4x, пиксельных процессоров, а вершинных - до 8, объем адресуемой памяти типа GDDR3 может достигать 1 Гбайт. Кроме того, была осуществлена оптимизация питания и энергопотребления, благодаря чему типовое потребление видеокарты GeForce 7800 GTX не превышает 110 Ватт, то есть осталось на уровне GeForce 6800 Ultra, несмотря на 30% увеличение числа транзисторов. В G70 появилась аппаратная поддержка ряда потенциальных "хитов" ближайшего будущего: воспроизведение видео в формате HDTV, а также поддержка важных специальных возможностей графической драйверной модели Windows Vista. Кроме High-End видеокарты GeForce 7800 GTX (430/1200 МГц), процессор G70 устанавливается и в его чуть более скромном собрате - GeForce 7800 GT, отличающимся от GTX не только пониженными (до 400/1000 МГц) частотами, но и урезанным числом конвейеров (20 пиксельных и 7 вершинных) рендеринга, что обеспечивает ему место (по показателям производительности) где-то посередине между GeForce 7800 GTX и GeForce 6800 Ultra.

Очередными новыми чипами NVIDIA должны стать G72 и G74 (официальные названия GeForce 7600 и GeForce 7200), которые следует ожидать в феврале-марте 2006 года. Они, скорее всего, будут урезанными версиями базового G70, и станут первыми графическими чипами NVIDIA, выпускаемыми по 0,09 мкм технологии. Они должны заменить NV43 и NV44 в Mainstream- и Low-End секторах соответственно. Таким образом, в ближайшие полгода NVIDIA собирается полностью заменить все чипы NV4x на новинки из линейки G7x. Кроме того, NVIDIA в начале 2006 года планирует представить чип G71, являющийся 0,09 мкм версией G70 с меньшей площадью кристалла и пониженным энергопотреблением.

Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.


С момента изобретения своего первого графического процессора в 1999 году компания Nvidia находится в авангарде трехмерной графики и вычислений с ускорением на графическом процессоре. Каждая архитектура компании Nvidia тщательно разработана для обеспечения революционного уровня производительности и эффективности.

Главной особенностью архитектуры Turing является новый тип процессора, называемый RT Core, который ускоряет процесс рендеринга, известный как трассировка лучей. Трассировка лучей создает невероятно фотореалистичные изображения, но это дорогостоящий метод с точки зрения вычислений. Обещание новых ядер RT Turing заключается в их способности выполнять трассировку лучей в реальном времени.

1 ТРАССИРОВКА ЛУЧЕЙ И ТЕХНОЛОГИЯ DLSS

Работа графического процессора состоит в том, чтобы получить информацию о 3D-сцене, например, о положении группы многоугольников, и превратить ее в 2D-представление, подходящее для монитора вашего компьютера. Традиционно это достигается с помощью метода рендеринга, называемого растеризацией [5]. Растеризация включает в себя серию вычислений для учета информации о положении, освещении, цвете и текстуре для каждого пикселя на экране. Сегодняшние графические процессоры используют высокоэффективные алгоритмы растеризации, которые позволяют обновлять сложные сцены десятки раз в секунду, например, в игровых приложениях. Растеризация позволяет получать изображения высокого качества, но плохо работает при визуализации таких визуальных элементов, как отражения и тени.

Альтернативой растеризации является метод рендеринга, называемый трассировкой лучей. Этот метод назван так потому, что он основан на физике световых лучей [5]. По аналогии с тем, как наши собственные глазные яблоки собирают информацию о трехмерном мире вокруг нас, трассировка лучей использует смоделированные световые лучи для сбора информации о трехмерной сцене. Обычно (и в отличие от наших глазных яблок) эти лучи проецируются камерой на сцену, где они отражаются от различных объектов, пока не попадут в источник света. Каждый луч и каждый отскок дают ценную информацию о том, как должна выглядеть сцена. На рисунке 1 представлена иллюстрация трассировки лучей.

Рисунок 1 – Иллюстрация трассировки лучей

Поскольку трассировка лучей основана на физической реальности, она создает чрезвычайно фотореалистичные изображения с неповрежденными тенями и отражениями [2]. Однако из-за большого количества смоделированных световых лучей, необходимых для достижения такого уровня фотореализма, трассировка лучей требует большого количества вычислений, а большое количество вычислений требует много времени. По этой причине трассировка лучей используется только в приложениях, которые могут сэкономить это время. Блокбастеры с большим бюджетом могут использовать трассировку лучей для визуализации своих визуальных эффектов, но видеоигры, которым требуется более 30 визуализаций в секунду, не могут позволить себе ждать.

Вот почему компания Nvidia так взволнована архитектурой Turing и новыми видеокартами серии RTX. Благодаря тому, что ядра RT ускоряют эти вычисления трассировки лучей, этот метод теперь можно выполнять в реальном времени. Его можно использовать в видеоиграх для улучшения качества графики; его можно использовать в САПР или архитектурной визуализации для более быстрых и лучших результатов; он может обеспечить более фотореалистичный опыт виртуальной реальности; это может сократить время рендеринга для кинематографистов - и этот список можно продолжить.

Хотя трассировка лучей и обеспечивает более высокое качество картинки, но в сравнение с растеризацией, она весьма требовательна к ресурсам компьютера и ее применение ограничено возможностями аппаратного обеспечения. Анонсирование технологии RTX и аппаратно поддерживающих ее графических процессоров дал разработчикам возможность начать внедрение алгоритмов, использующих трассировку лучей, что является самым значительным изменением в графике реального времени за последние несколько лет. Со временем эта технология кардинально изменит подход к рендерингу 3D-сцен, но это будет происходить постепенно [2]. Поначалу использование трассировки будет гибридным, то есть сочетание трассировки лучей и растеризации, но затем дело дойдет и до полной трассировки сцены, которая станет доступной через несколько лет.

Трассировка лучей работает в среде Windows 10 (начиная с версии 1809) через API DirectX Raytracing (DXR), который является расширением DirectX 12 [3]. На сегодня трассировка лучей доступна во многих игр.

Оптимальным решением для трассировки лучей являются видеокарты компании Nvidia серии GeForce RTX, имеющие аппаратные улучшения для ускорения соответствующих операций, в частности, дополнительные блоки RT. При этом все функции API DXR поддерживаются и старыми видеокартами архитектуры Pascal, что позволяет включить новые эффекты на GeForce GTX 1080 Ti и других видеокартах этой серии. Но без соответствующих аппаратных оптимизаций трассировка лучей дается им с огромными потерями в производительности.

Технология Nvidia DLSS не связана с трассировкой напрямую, поэтому может использоваться в играх без новых эффектов. Этот метод рендеринга используется для ускорения производительности, что критично при активации RTX-эффектов. Поскольку DLSS использует аппаратные особенности графических процессоров с архитектурой Turing, то технология работает исключительно на видеокартах серии GeForce RTX.

2 АРХИТЕКТУРА TURING И ОСОБЕННОСТИ ВИДЕОКАРТ СЕРИИ GEFORCE RTX

В графических процессорах с архитектурой Turing можно выделить несколько ключевых изменений. В первую очередь это появление новых вычислительных блоков – тензорных и RT -ядер, сетчатые шейдеры, шейдинг с переменной скоростью, а также ускоренная обработка шейдеров. На рисунке 2 будет представлена характеристика графических процессоров архитектуры Pascal и Turing .

Рисунок 2 – Характеристика графических процессоров

По сравнению с частями предыдущего поколения Pascal архитектура Turing имеет аналогичные тактовые частоты, но увеличивает количество ядер CUDA на 15-20 процентов по всей линии. Также добавляются ядра Tensor и ядра RT к изображению, а отдельные SM (потоковые мультипроцессоры) претерпели значительные изменения.

Еще одно большое изменение заключается в том, что Nvidia одновременно запускает три совершенно разных графических процессора для сегмента высокого класса и энтузиастов. Ранее 1070/1080 и 970/980 были построены из одного и того же кристалла, причем меньшая часть использовала частично отключенную версию. В 2080 и 2080 Ti все еще используются заготовленные матрицы, но 2070 получает отдельный и полный графический процессор TU 106. Это также оставляет место для будущих промежуточных графических процессоров, таких как 2070 Ti и Titan RTX , естественно. Чистая пропускная способность памяти также значительно улучшилась благодаря GDDR 6.

Рисунок 3 – Блок-схема архитектур Turing

Выше приведена полная блок-схема архитектур Turing TU102 / TU104 / TU106. TU102 состоит из шести GPC (кластеров обработки графики), каждый из которых содержит шесть TPC (кластеров обработки текстур), механизм PolyMorph и выделенный механизм растеризации. Каждый TPC, в свою очередь, связан с двумя SM (потоковыми мультипроцессорами) [3].

Наряду с GPC, на высоком уровне TU102 включает в себя 12 32-битных контроллеров памяти GDDR6 (всего 384-бит), которые можно отключить независимо. Контроллеры памяти также содержат ROP (выходы рендеринга), поэтому RTX 2080 Ti с 11 контроллерами памяти также имеет 88 ROP. Хост-интерфейс PCIe 3.0 и другие элементы также находятся за пределами GPC.

Интересно, что GPC не одинаковы для всех графических процессоров архитектуры Turing . TU104 также имеет шесть GPC, но каждый GPC в TU104 имеет восемь SM, где GPC TU102 и TU106 имеют 12 SM. Однако оба TU104 и TU106 имеют восемь 32-разрядных контроллеров памяти (всего 256-разрядное) вместе с различными другими функциональными блоками.

Интересно, что GPC не одинаковы для всех графических процессоров архитектуры Turing [4]. TU104 также имеет шесть GPC, но каждый GPC в TU104 имеет восемь SM, где GPC TU102 и TU106 имеют 12 SM. Однако оба TU104 и TU106 имеют восемь 32-разрядных контроллеров памяти (всего 256-разрядное) вместе с различными другими функциональными блоками.

Рисунок 4 – Потоковый мультипроцессор

В основе каждого графического процессора лежит фундаментальный строительный блок. Nvidia называет это потоковым мультипроцессором (SM), в то время как AMD называет его вычислительным модулем (CU) [5].

SM архитектуры Turing содержат планировщики, графические ядра, кэш L1 / L2, модули текстурирования и многое другое. Nvidia кардинально изменила архитектуру Turing SM по сравнению с предыдущими архитектурами Pascal и Maxwell.

Во-первых, число ядер CUDA на SM теперь составляет 64 вместо 128 в Pascal. За последнее десятилетие Nvidia выросла примерно с 32 до 192 ядер CUDA на SM, но Nvidia говорит, что с другими архитектурными изменениями 64 ядра теперь более эффективны.

Рисунок 5 – Одновременное исполнение

Новым для архитектуры Turing является выделенный целочисленный конвейер, который может работать одновременно с ядрами с плавающей запятой [4].

На предыдущих архитектурах ядрам FP приходилось останавливать свою работу, пока графический процессор обрабатывал инструкции INT, но теперь планировщик может отправлять оба на независимые пути. Это обеспечивает теоретическое немедленное улучшение производительности на 35 процентов на ядро.

Это делает ядра GPU в архитектуре Turing более похожими на современные архитектуры ЦП, и планировщик может отправлять две инструкции за такт. Эти инструкции могут быть также для ядер RT и ядер Tensor.

Помогут улучшенные тактовые частоты GDDR6 по сравнению с GDDR5 и GDDR5X, но архитектура Turing на этом не останавливается. У архитектуры Pascal уже было несколько доступных методов сжатия памяти без потерь, и архитектура Turing продолжает улучшаться в этой области. Компания Nvidia не предоставляет конкретных сведений о том, что изменилось, но более крупные кэши и улучшенное сжатие увеличивают эффективную пропускную способность на 20-35 процентов по сравнению с графическими процессорами Pascal.

В совокупности GeForce RTX 2080 Ti имеет в среднем на 50 процентов более эффективную полосу пропускания, чем GTX 1080 Ti, хотя скорость памяти только на 27 процентов выше. RTX 2080 и 2070 должны показать еще большие улучшения, поскольку тактовые частоты памяти увеличились на 40 и 75 процентов соответственно.

Шейдинг с переменной скоростью (VRS) – следующая новая функция, которая позволяет играм использовать больше шейдеров там, где это необходимо, и меньше шейдеров, где это не важно. Цель состоит в том, чтобы обеспечить эквивалентное качество изображения с лучшей производительностью, и Nvidia предложила увеличить производительность на 15 процентов. VRS также можно использовать несколькими способами, например, MAS (адаптивное затенение движения), где быстро движущимся объектам не требуется столько деталей (потому что они в конечном итоге становятся размытыми), и CAS (адаптивное затенение контента), где больше усилий затрачивается на сложные Поверхности, как автомобиль, в игре на вождение, и на простых поверхностях, таких как дорога, в той же игре используется меньше усилий.

Помимо улучшения графического процессора и памяти, Nvidia также работала над улучшением NVENC, аппаратного обеспечения, используемого для кодирования / декодирования видео. Графические процессоры Pascal обеспечивают хорошую производительность, но качество получаемых видео не всегда было таким же хорошим, как даже профиль x264 Fast, работающий на процессоре. С архитектурой Turing Nvidia заявляет, что обеспечивает лучшее качество, чем x264 Fast, практически без нагрузки на процессор.

Наконец, Nvidia кратко обсудила еще две функции в архитектуре Turing : Multi-View Rendering (MVR), улучшенную версию одновременной мульти-проекции (SMP), которая уже была функцией в Pascal, и Texture Space Shading (TSS). В тех случаях, когда SMP в основном сосредоточен на двух видах и приложениях VR, MVP может выполнять четыре вида за проход и удаляет некоторые атрибуты, зависящие от вида. Это должно способствовать дальнейшему повышению производительности в приложениях VR, особенно с некоторыми новыми гарнитурами VR, которые имеют более широкое поле зрения.

Тем временем TSS имеет еще меньше смысла для тех, кто не пишет игровые движки. Компания Nvidia заявляет, что может позволить разработчикам использовать избыточность пространственного и временного рендеринга, эффективно уменьшая объем работы шейдера, который необходимо выполнить. В техническом описании архитектуры Turing есть несколько страниц, описывающих варианты использования TSS, но, как и в случае с предыдущими технологиями, такими как SMP и VXAO, еще неизвестно, сколько разработчиков будет использовать эту функцию.

Архитектура Turing — передовая графическая архитектура, которая расширяет возможности привычного рендеринга, добавляя трассировку лучей в реальном времени и возможность использовать нейронные сети для вспомогательных функций. Новые аппаратные возможности обеспечивают поддержку совершенно новых технологий и графических эффектов.

Появление архитектуры Turing стало знаковым событием, которое обозначает старт новой эры и постепенную интеграцию трассировки в игровую индустрию. Уже есть первые проекты, где будет поддержка эффектов на базе трассировки Nvidia RTX. Еще больше игр получат поддержку нового сглаживания Nvidia DLSS. Также в архитектуре Turing есть много улучшений для ускорения традиционного рендеринга.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

Читайте также: