Kepler - это кодовое название микроархитектуры графического процессора, разработанной Nvidia и впервые представленной в розничной продаже в апреле 2012 года [1] в качестве преемника микроархитектуры Fermi . Kepler была первой микроархитектурой Nvidia, сфокусированной на энергоэффективности. Большинство графических процессоров серии GeForce 600 , большинство серий GeForce 700 и некоторые графические процессоры серии GeForce 800M были основаны на Kepler, и все они производились по 28-нм техпроцессу. Kepler также нашел применение в GK20A, компоненте графического процессора Tegra K1 SoC , а также в серии Quadro Kxxx, Quadro NVS 510 и Nvidia Tesla. вычислительные модули. За Kepler последовала микроархитектура Maxwell, которая использовалась вместе с Maxwell в сериях GeForce 700 и GeForce 800M .
Дата выпуска | Апрель 2012 г. |
---|---|
Процесс изготовления | TSMC 28 нм |
История | |
Предшественник | Ферми |
Преемник | Максвелл |
Архитектура названа в честь Иоганна Кеплера , немецкого математика и ключевой фигуры научной революции 17 века .
Обзор
Если целью предыдущей архитектуры Nvidia было проектирование, ориентированное на повышение производительности вычислений и тесселяции, то в архитектуре Kepler Nvidia сосредоточила свое внимание на эффективности, программируемости и производительности. [2] [3] Цель эффективности была достигнута за счет использования унифицированной тактовой частоты графического процессора, упрощенного статического планирования инструкций и повышенного внимания к производительности на ватт. [4] За счет отказа от тактовой частоты шейдера, которая использовалась в их предыдущих проектах графических процессоров, эффективность повышается, хотя для достижения более высокого уровня производительности требуются дополнительные ядра. Это связано не только с тем, что ядра более энергоэффективны (два ядра Kepler используют 90% мощности одного ядра Fermi, согласно данным Nvidia), но и переход на унифицированную схему тактовой частоты графического процессора обеспечивает снижение энергопотребления на 50% в в этой области. [5]
Цель программируемости была достигнута с помощью Kepler's 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 регистров на поток.
Упрощенный планировщик инструкций
Дополнительное сокращение занимаемого пространства кристалла и экономия энергии были достигнуты за счет удаления сложного аппаратного блока, который предотвращал опасность данных. [3] [5] [8] [9]
GPU Boost
GPU Boost - это новая функция, которая примерно аналогична турбо-ускорению процессора. Графический процессор всегда гарантированно работает на минимальной тактовой частоте, называемой «базовой тактовой частотой». Эта тактовая частота установлена на уровне, который гарантирует, что графический процессор останется в пределах спецификаций TDP даже при максимальной нагрузке. [3] Однако при более низких нагрузках есть место для увеличения тактовой частоты без превышения TDP. В этих сценариях функция ускорения графического процессора будет постепенно увеличивать тактовую частоту, пока графический процессор не достигнет предопределенной целевой мощности (которая по умолчанию составляет 170 Вт). [5] При таком подходе GPU будет динамически увеличивать или уменьшать тактовую частоту, чтобы обеспечить максимально возможную скорость, оставаясь в рамках спецификаций 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 × тактовая частота ядра (в ГГц). Обратите внимание, что, как и Fermi предыдущего поколения , Kepler не может извлечь выгоду из увеличенной вычислительной мощности за счет двойной выдачи MAD + MUL, как это было у Tesla .
Теоретическая мощность обработки с двойной точностью графического процессора Kepler GK110 / 210 составляет 1/3 от его производительности с одинарной точностью. Однако такая вычислительная мощность с двойной точностью доступна только на профессиональных картах GeForce Quadro , Tesla и high-end TITAN , тогда как драйверы для потребительских карт GeForce ограничивают производительность до 1/24 от производительности одинарной точности. [17] Чипы GK10x с более низкой производительностью аналогично ограничены до 1/24 производительности одинарной точности. [18]
Кеплер чипсы
- GK104
- GK106
- GK107
- GK110
- GK208
- GK210
- GK20A ( Tegra K1 )
Смотрите также
- Список графических процессоров Nvidia
- Nvidia NVDEC
Рекомендации
- ^ Муджтаб, Хассан (18 февраля 2012). «NVIDIA планирует выпустить восемь новых 28-нм графических процессоров Kepler в апреле 2012 года» .
- ^ «Внутри Кеплера» (PDF) . Проверено 19 сентября 2015 .
- ^ а б в г д «Представляем графический процессор GeForce GTX 680» . Nvidia. 22 марта 2012 . Проверено 19 сентября 2015 .
- ^ Nividia. «Вычислительная архитектура CUDATM нового поколения NVIDIA: Kepler TM GK110» (PDF) . www.nvidia.com .
- ^ а б в г д Смит, Райан (22 марта 2012 г.). «Обзор NVIDIA GeForce GTX 680: возрождение короны производительности» . AnandTech . Проверено 25 ноября 2012 года .
- ^ «Эффективность благодаря Hyper-Q, динамическому параллелизму и многому другому» . Nvidia. 12 ноября 2012 . Проверено 19 сентября 2015 .
- ^ «Обзор GeForce GTX 680 2 ГБ: Кеплер отправляет Таити в отпуск» . Tom; s Hardware. 22 марта 2012 . Проверено 19 сентября 2015 .
- ^ а б в г «NVIDIA представляет Tesla K20 и K20X: GK110 наконец-то прибыл» . AnandTech. 2012-11-12 . Проверено 19 сентября 2015 .
- ^ а б «Технический документ по архитектуре NVIDIA Kepler GK110» (PDF) . Проверено 19 сентября 2015 .
- ^ «NVIDIA представляет первые графические процессоры GeForce на базе архитектуры Kepler нового поколения» . Nvidia. 22 марта 2012 года Архивировано из оригинального 14 июня 2013 года .
- ^ Эдвард, Джеймс (22 ноября 2012 г.). «NVIDIA утверждает, что частично поддерживает DirectX 11.1» . TechNews. Архивировано из оригинала 28 июня 2015 года . Проверено 19 сентября 2015 .
- ^ а б «Nvidia не полностью поддерживает DirectX 11.1 с графическими процессорами Kepler, но… (ссылка на веб-архив)» . BSN. Архивировано из оригинального 29 декабря 2012 года.
- ^ «Перечисление D3D_FEATURE_LEVEL (Windows)» . MSDN . Проверено 19 сентября 2015 .
- ^ Генри Мортон (20 марта 2014 г.). «DirectX 12: главный шаг в играх» . Проверено 19 сентября 2015 .
- ^ «NVIDIA GPUDirect» . Разработчик NVIDIA . 2015-10-06 . Проверено 5 февраля 2019 .
- ^ а б Крис Анджелини (22 марта 2012 г.). «Результаты тестов: NVEnc и MediaEspresso 6.5» . Оборудование Тома . Проверено 19 сентября 2015 .
- ^ Анджелини, Крис (7 ноября 2013 г.). «Обзор Nvidia GeForce GTX 780 Ti: GK110, полностью разблокирован» . Оборудование Тома . п. 1 . Проверено 6 декабря 2015 .
Драйвер карты намеренно использует блоки FP64 GK110 на 1/8 тактовой частоты графического процессора. Когда вы умножаете это на соотношение ядер CUDA одинарной и двойной точности 3: 1, вы получаете коэффициент 1/24.
- ^ Смит, Райан (13 сентября 2012 г.). «Обзор NVIDIA GeForce GTX 660: GK106 пополняет семейство Kepler» . AnandTech . п. 1 . Проверено 6 декабря 2015 .