Кеплер (микроархитектура) - Kepler (microarchitecture)

Nvidia Kepler
Дата выходаАпрель 2012 г.
Процесс изготовленияTSMC 28 нм
История
ПредшественникФерми
ПреемникМаксвелл

Кеплер это кодовое имя для GPU микроархитектура разработан Nvidia, впервые представленный в рознице в апреле 2012 года,[1] как преемник Ферми микроархитектура. Kepler была первой микроархитектурой Nvidia, сфокусированной на энергоэффективности. Наиболее GeForce 600 серии, наиболее GeForce 700 серии, и немного GeForce 800M серии Графические процессоры были основаны на Kepler, все производились по 28 нм. Кеплер также нашел применение в GK20A, компоненте графического процессора Тегра К1 SoC, а также в Quadro Серии Kxxx, Quadro NVS 510 и Nvidia Tesla вычислительные модули. Кеплера последовал Максвелл микроархитектуры и используется вместе с Максвеллом в GeForce 700 серии и GeForce 800M серии.

Архитектура названа в честь Иоганн Кеплер, немецкий математик и ключевая фигура 17 века. научная революция.

Обзор

Снимок графического процессора GK110 A1 внутри карт GeForce GTX Titan

Если целью предыдущей архитектуры Nvidia было проектирование, ориентированное на повышение производительности вычислений и тесселяции, то в архитектуре Kepler Nvidia сосредоточила свое внимание на эффективности, программируемости и производительности.[2][3] Цель эффективности была достигнута за счет использования унифицированных часов графического процессора, упрощенного статического планирования инструкций и повышенного внимания к производительности на ватт.[4] За счет отказа от тактовой частоты шейдеров, которая использовалась в их предыдущих проектах графических процессоров, эффективность повышается, хотя для достижения более высокого уровня производительности требуются дополнительные ядра. Это связано не только с тем, что ядра более энергоэффективны (два ядра Kepler используют 90% мощности одного ядра Fermi, согласно данным Nvidia), но и переход на унифицированную схему тактовой частоты графического процессора обеспечивает снижение энергопотребления на 50% в эта область.[5]

Цель программирования была достигнута с помощью Kepler Hyper-Q, Dynamic Parallelism и нескольких новых функций Compute Capabilities 3.x. Благодаря этому с помощью графических процессоров GK стало возможным более эффективное использование графического процессора и упрощенное управление кодом, что обеспечило большую гибкость программирования для графических процессоров Kepler.[6]

Наконец, с целью повышения производительности дополнительный ресурс выполнения (больше CUDA Core, регистр и кеш) и способность Kepler достичь тактовой частоты памяти 6 ГГц увеличивает производительность Kepler по сравнению с предыдущими графическими процессорами Nvidia.[5]

Функции

Графический процессор серии GK содержит функции как старого поколения Fermi, так и нового поколения Kepler. Члены на основе Кеплера добавляют следующие стандартные функции:

  • PCI Express 3.0 интерфейс
  • DisplayPort 1.2
  • HDMI 1.4a видеовыход 4K x 2K
  • Purevideo VP5 аппаратное ускорение видео (декодирование до 4K x 2K H.264)
  • Аппаратный блок ускорения кодирования H.264 (NVENC)
  • Поддержка до 4 независимых 2D-дисплеев или 3-х стереоскопических / 3D-дисплеев (NV Surround)
  • Многопроцессор потоковой передачи нового поколения (SMX)
  • Полиморф-двигатель 2.0
  • Упрощенный планировщик инструкций
  • Безвязные текстуры
  • CUDA Вычислительные возможности от 3,0 до 3,5
  • GPU Boost (обновлено до 2.0 на GK110)
  • Поддержка TXAA
  • Изготовлены по TSMC по 28 нм техпроцессу
  • Новые инструкции по перемешиванию
  • Динамический параллелизм
  • Hyper-Q (резерв функциональности MPI Hyper-Q только для Tesla)
  • Блок управления сетью
  • NVIDIA GPUDirect (резерв функциональности RDMA GPU Direct только для Tesla)

Многопроцессор потоковой передачи нового поколения (SMX)

Архитектура Kepler использует новую многопроцессорную потоковую архитектуру под названием «SMX». SMX являются причиной энергоэффективности Kepler, поскольку весь графический процессор использует единую унифицированную тактовую частоту.[5] Хотя использование SMX единой унифицированной тактовой частоты увеличивает энергоэффективность из-за того, что несколько ядер Kepler CUDA с более низкой тактовой частотой потребляют на 90% меньше энергии, чем несколько ядер Fermi CUDA Core с более высокой тактовой частотой, для выполнения всей деформации за цикл требуются дополнительные процессоры. Удвоение от 16 до 32 на массив CUDA решает проблему выполнения деформации, внешний интерфейс SMX также удваивается с планировщиками деформации, блоком диспетчеризации и регистровым файлом, удвоенным до 64К записей, чтобы питать дополнительные исполнительные блоки. Из-за риска раздувания области штампа SMX PolyMorph Engines улучшены до 2.0, а не удваиваются вместе с исполнительными блоками, что позволяет увеличивать полигон за более короткие циклы.[7] Преданный FP64 Ядра CUDA также используются, поскольку все ядра Kepler CUDA не поддерживают FP64 для экономии места на кристалле. Благодаря усовершенствованию, которое Nvidia внесла в SMX, результаты включают повышение производительности и эффективности графического процессора. В GK110 кэш текстур размером 48 КБ разблокирован для вычислительных рабочих нагрузок. При вычислительной нагрузке кэш текстур становится доступным только для чтения кешем данных, специализирующимся на рабочих нагрузках невыровненного доступа к памяти. Кроме того, были добавлены возможности обнаружения ошибок, чтобы сделать его более безопасным для рабочих нагрузок, полагающихся на ECC. Количество регистров на поток также удвоено в GK110 и составляет 255 регистров на поток.

Упрощенный планировщик инструкций

Дополнительные места для кристаллов можно получить, заменив сложный аппаратный планировщик простым программным планировщиком. Благодаря программному планированию планирование деформаций было перенесено в компилятор Nvidia, и, поскольку математический конвейер графического процессора теперь имеет фиксированную задержку, он представил параллелизм на уровне инструкций в дополнение к параллелизму на уровне потоков. Поскольку инструкции планируются статически, согласованность обеспечивается переходом к инструкциям с фиксированной задержкой, а статический запланированный компилятор убирает уровень сложности.[3][5][8][9]

GPU Boost

GPU Boost - это новая функция, которая примерно аналогична турбо-ускорению ЦП. Графический процессор всегда гарантированно работает на минимальной тактовой частоте, называемой «базовой тактовой частотой». Эта тактовая частота установлена ​​на уровне, который гарантирует, что графический процессор останется в пределах TDP технические характеристики даже при максимальных нагрузках.[3] Однако при более низких нагрузках есть место для увеличения тактовой частоты без превышения TDP. В этих сценариях функция ускорения графического процессора будет постепенно увеличивать тактовую частоту, пока графический процессор не достигнет заранее заданной целевой мощности (которая по умолчанию составляет 170 Вт).[5] Используя этот подход, графический процессор будет динамически увеличивать или уменьшать тактовую частоту, чтобы обеспечить максимальную возможную скорость, оставаясь в пределах спецификаций TDP.

Целевая мощность, а также размер шагов увеличения тактовой частоты, которые будет выполнять графический процессор, регулируются с помощью сторонних утилит и предоставляют средства для разгона карт на основе Kepler.[3]

Поддержка Microsoft Direct3D

Графические процессоры Nvidia Fermi и Kepler серии GeForce 600 поддерживают спецификацию Direct3D 11.0. Nvidia изначально заявила, что архитектура Kepler имеет полную DirectX 11.1, включая путь Direct3D 11.1.[10] Однако следующие функции Direct3D 11.1 «Современный интерфейс» не поддерживаются:[11][12]

  • Независимая от цели растеризация (только 2D-рендеринг).
  • 16xMSAA Растеризация (только 2D-рендеринг).
  • Режим отрисовки ортогональных линий.
  • UAV (Unordered Access View) на этапах без пиксельного шейдера.

Согласно определению Microsoft, Уровень функций Direct3D 11_1 должен быть полным, иначе путь Direct3D 11.1 не может быть выполнен.[13]Встроенные функции Direct3D в архитектуре Kepler такие же, как и в архитектуре Fermi серии GeForce 400.[12]

Следующая поддержка Microsoft Direct3D

Графические процессоры NVIDIA Kepler серии GeForce 600/700 поддерживают Direct3D 12 уровня функций 11_0.[14]

Поддержка TXAA

TXAA - это эксклюзивный для графических процессоров Kepler метод сглаживания от Nvidia, предназначенный для непосредственной реализации в игровых движках. TXAA основан на MSAA техники и настраиваемые фильтры разрешения. Он разработан для решения ключевой проблемы в играх, известной как мерцание или мерцание. временное алиасинг. TXAA решает эту проблему, сглаживая сцену в движении, убеждаясь, что любая игровая сцена очищается от любых искажений и мерцания.[3]

Инструкции по перемешиванию

На низком уровне GK110 видит дополнительные инструкции и операции для дальнейшего повышения производительности. Новые инструкции перемешивания позволяют потокам внутри деформации обмениваться данными без возврата в память, что делает процесс намного быстрее, чем предыдущий метод загрузки / совместного использования / сохранения. Атомарные операции также подверглись капитальному ремонту, увеличивая скорость выполнения атомарных операций и добавляя некоторые операции FP64, которые ранее были доступны только для данных FP32.[8]

Hyper-Q

Hyper-Q расширяет рабочие очереди оборудования GK110 с 1 до 32. Важность этого заключалась в том, что наличие единственной очереди работ означало, что Ферми иногда мог быть недостаточно занят, поскольку в этой очереди не было достаточно работы, чтобы заполнить все SM. Имея 32 рабочие очереди, GK110 может во многих сценариях достичь более высокого уровня использования, имея возможность помещать различные потоки задач в то, что в противном случае было бы бездействующим SMX. Простая природа Hyper-Q дополнительно подкрепляется тем фактом, что он легко отображается на MPI, общий интерфейс передачи сообщений, часто используемый в HPC. Поскольку у устаревших алгоритмов на основе MPI, которые изначально были разработаны для многопроцессорных систем, которые оказались узкими местами из-за ложных зависимостей, теперь есть решение. Увеличивая количество заданий MPI, можно использовать Hyper-Q в этих алгоритмах для повышения эффективности без изменения самого кода.[8]

Динамический параллелизм

Способность динамического параллелизма позволяет ядрам отправлять другие ядра. С Fermi только ЦП мог отправлять ядро, что влечет за собой определенные накладные расходы из-за необходимости обратной связи с ЦП. Предоставляя ядрам возможность отправлять свои собственные дочерние ядра, GK110 может как сэкономить время, не возвращаясь к процессору, так и в процессе освободить процессор для работы над другими задачами.[8]

Блок управления сетью

Включение динамического параллелизма требует новой системы управления сетью и диспетчерского контроля. Новый блок управления сетью (GMU) управляет сетями и определяет их приоритетность. GMU может приостанавливать отправку новых сеток и ожидающих очереди и приостановленных сеток до тех пор, пока они не будут готовы к выполнению, обеспечивая гибкость для включения мощных сред выполнения, таких как динамический параллелизм. Дистрибьютор CUDA Work Distributor в Kepler имеет готовые к отправке сети и может отправлять 32 активные сети, что вдвое превышает емкость Fermi CWD. Kepler CWD связывается с GMU через двунаправленную связь, которая позволяет GMU приостанавливать отправку новых сетей и удерживать ожидающие и приостановленные сети до тех пор, пока это не понадобится. GMU также имеет прямое соединение с модулями Kepler SMX, чтобы позволить сеткам, которые запускают дополнительную работу на GPU через динамический параллелизм, отправлять новую работу обратно в GMU для определения приоритетов и отправки. Если ядро, отправившее дополнительную рабочую нагрузку, приостанавливает работу, GMU будет удерживать его в неактивном состоянии до завершения зависимой работы.[9]

NVIDIA GPUDirect

NVIDIA GPUDirect - это возможность, которая позволяет графическим процессорам на одном компьютере или графическим процессорам на разных серверах, расположенных в сети, напрямую обмениваться данными без необходимости обращения к ЦП / системной памяти. Функция RDMA в GPUDirect позволяет сторонним устройствам, таким как твердотельные накопители, сетевые адаптеры и адаптеры IB, получать прямой доступ к памяти на нескольких графических процессорах в одной системе, что значительно снижает задержку отправки и получения сообщений MPI в / из памяти графического процессора.[15] Это также снижает требования к пропускной способности системной памяти и освобождает механизмы DMA графического процессора для использования другими задачами CUDA. Kepler GK110 также поддерживает другие функции GPUDirect, включая Peer-to-Peer и GPUDirect для видео.

Распаковка / сжатие видео

NVDEC

NVENC

NVENC - это энергоэффективный кодер с фиксированными функциями от Nvidia, который может принимать кодеки, декодировать, предварительно обрабатывать и кодировать контент на основе H.264. Форматы ввода спецификации NVENC ограничены выходом H.264. Но все же NVENC, благодаря своему ограниченному формату, может поддерживать кодирование до 4096x4096.[16]

Как и Intel Quick Sync, NVENC в настоящее время предоставляется через собственный API, хотя у Nvidia есть планы по обеспечению использования NVENC через CUDA.[16]

Спектакль

Теоретическая мощность обработки одинарной точности графического процессора Kepler в GFLOPS вычисляется как 2 (операций на инструкцию FMA на ядро ​​CUDA за цикл) × количество ядер CUDA × тактовая частота ядра (в ГГц). Обратите внимание, что, как и в предыдущем поколении Ферми, Kepler не может извлечь выгоду из увеличения вычислительной мощности за счет двойной выдачи MAD + MUL, например Тесла был способен.

Теоретическая мощность обработки с двойной точностью графического процессора Kepler GK110 / 210 составляет 1/3 от его производительности с одинарной точностью. Однако такая мощность обработки с двойной точностью доступна только на профессиональных Quadro, Тесла, и высокого класса под маркой TITAN GeForce карты, в то время как драйверы для потребительских карт GeForce ограничивают производительность до 1/24 от производительности одинарной точности.[17] Чипы GK10x с более низкой производительностью также ограничены до 1/24 производительности одинарной точности.[18]

Кеплер чипсы

Смотрите также

Рекомендации

  1. ^ Муджтаба, Хасан (18 февраля 2012 г.). «NVIDIA планирует выпустить восемь новых 28-нм графических процессоров Kepler в апреле 2012 года».
  2. ^ "Внутри Кеплера" (PDF). Получено 2015-09-19.
  3. ^ а б c d е «Представляем графический процессор GeForce GTX 680». Nvidia. 22 марта 2012 г.. Получено 2015-09-19.
  4. ^ Nividia. «Вычислительная архитектура NVIDIA CUDATM нового поколения: Kepler TM GK110» (PDF). www.nvidia.com.
  5. ^ а б c d е Смит, Райан (22 марта 2012 г.). «Обзор NVIDIA GeForce GTX 680: возрождение короны производительности». АнандТех. Получено 25 ноября, 2012.
  6. ^ «Эффективность за счет Hyper-Q, динамического параллелизма и многого другого». Nvidia. 12 ноября 2012 г.. Получено 2015-09-19.
  7. ^ «Обзор GeForce GTX 680 2 ГБ: Кеплер отправляет Таити в отпуск». Tom; s Hardware. 22 марта 2012 г.. Получено 2015-09-19.
  8. ^ а б c d «NVIDIA представляет Tesla K20 и K20X: GK110 наконец-то прибыл». AnandTech. 2012-11-12. Получено 2015-09-19.
  9. ^ а б "Технический документ по архитектуре NVIDIA Kepler GK110" (PDF). Получено 2015-09-19.
  10. ^ «NVIDIA выпускает первые графические процессоры GeForce на базе архитектуры Kepler нового поколения». Nvidia. 22 марта 2012 г. Архивировано с оригинал 14 июня 2013 г.
  11. ^ Эдвард, Джеймс (22 ноября 2012 г.). «NVIDIA утверждает, что частично поддерживает DirectX 11.1». TechNews. Архивировано из оригинал 28 июня 2015 г.. Получено 2015-09-19.
  12. ^ а б «Nvidia не полностью поддерживает DirectX 11.1 с графическими процессорами Kepler, но… (ссылка на веб-архив)». BSN. Архивировано из оригинал 29 декабря 2012 г.
  13. ^ «Перечисление D3D_FEATURE_LEVEL (Windows)». MSDN. Получено 2015-09-19.
  14. ^ Генри Мортон (20 марта 2014 г.). «DirectX 12: главный шаг в играх». Получено 2015-09-19.
  15. ^ «NVIDIA GPUDirect». Разработчик NVIDIA. 2015-10-06. Получено 2019-02-05.
  16. ^ а б Крис Анджелини (22 марта 2012 г.). «Результаты тестирования: NVEnc и MediaEspresso 6.5». Tom’s Hardware. Получено 2015-09-19.
  17. ^ Анджелини, Крис (7 ноября 2013 г.). «Обзор Nvidia GeForce GTX 780 Ti: GK110, полностью разблокирован». Оборудование Тома. п. 1. Получено 6 декабря 2015. Драйвер карты намеренно задействует блоки FP64 GK110 на 1/8 тактовой частоты графического процессора. Когда вы умножаете это на соотношение ядер CUDA одинарной и двойной точности 3: 1, вы получаете коэффициент 1/24
  18. ^ Смит, Райан (13 сентября 2012 г.). «Обзор NVIDIA GeForce GTX 660: GK106 заполняет семейство Kepler». АнандТех. п. 1. Получено 6 декабря 2015.