Запущен | 3 апреля 2012 г. (2012-04-03) |
---|---|
Разработано | Нвидиа |
Изготовлено | |
Процесс изготовления | TSMC 28 нм |
Серия продуктов | |
Рабочий стол | |
Профессионал/рабочая станция | |
Сервер/центр обработки данных | |
Технические характеристики | |
Кэш L1 | 16 КБ (на SM) |
кэш L2 | До 512 КБ |
Поддержка памяти | GDDR5 |
поддержка PCIe | PCIe 2.0 PCIe 3.0 |
Поддерживаемые графические API | |
DirectX | DirectX 12 Ultimate (уровень возможностей 11_0) |
Модель шейдера | Модель шейдера 6.5 |
Вулкан | Вулкан 1.2 |
Медиа-движок | |
Кодировать кодеки | H.264 |
Декодировать кодеки | |
Поддерживаемые кодировщики | НВЕНК |
Выходы дисплея | DVI DisplayPort 1.2 HDMI 1.4a |
История | |
Предшественник | Ферми |
Преемник | Максвелл |
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 и вычислительных модулях Tesla .
За Kepler последовала микроархитектура Maxwell , которая использовалась наряду с Maxwell в сериях GeForce 700 и GeForce 800M .
Архитектура названа в честь Иоганна Кеплера , немецкого математика и ключевой фигуры научной революции XVII века .
Целью предыдущей архитектуры Nvidia было проектирование, ориентированное на повышение производительности вычислений и тесселяции. С архитектурой Kepler Nvidia сосредоточилась на эффективности, программируемости и производительности. [2] [3] Цель эффективности была достигнута за счет использования унифицированных часов GPU, упрощенного статического планирования инструкций и большего акцента на производительности на ватт. [4] Отказавшись от шейдерных часов, которые использовались в предыдущих конструкциях GPU, эффективность увеличилась, хотя для достижения более высоких уровней производительности требуются дополнительные ядра. Это связано не только с тем, что ядра более экономичны (два ядра Kepler используют 90% мощности одного ядра Fermi, согласно данным Nvidia), но и с тем, что переход на унифицированную схему часов GPU обеспечивает 50%-ное снижение энергопотребления в этой области. [5]
Цель программируемости была достигнута с помощью Hyper-Q, Dynamic Parallelism и нескольких новых функциональных возможностей Compute Capabilities 3.x от Kepler. С этим, более высокая загрузка GPU и упрощенное управление кодом были достигнуты с GK GPU, что обеспечивает большую гибкость в программировании для Kepler GPU. [6]
Наконец, с целью повышения производительности, дополнительными ресурсами выполнения (больше ядер CUDA, регистров и кэша) и способностью Kepler достигать тактовой частоты памяти 7 ГГц, производительность Kepler повышается по сравнению с предыдущими графическими процессорами Nvidia. [5] [7]
GPU серии GK содержит функции как старого поколения Fermi, так и нового поколения Kepler. Члены на базе Kepler добавляют следующие стандартные функции:
Kepler использует новую потоковую многопроцессорную архитектуру, называемую SMX. Количество ядер выполнения CUDA было увеличено с 32 на каждый из 16 SM до 192 на каждый из 8 SMX; файл регистров был только удвоен на SMX до 65 536 x 32-бит для общего более низкого соотношения; между этим и другими компромиссами, несмотря на общее увеличение ядер CUDA в 3 раза и увеличение тактовой частоты (на 680 по сравнению с Fermi 580), фактический прирост производительности в большинстве операций был значительно ниже 3-кратного. Выделенные ядра FP64 CUDA используются вместо обработки двух ядер FP32 как единого блока, как это делалось ранее, и очень немногие были включены в потребительские модели, что привело к вычислению FP64 в 1/24 скорости по сравнению с FP32. [9]
В моделях HPC, GK110/210, количество SMX было увеличено до 13-15 в зависимости от продукта, и было включено больше ядер FP64, чтобы довести коэффициент вычислений до 1/3 FP32. В GK110 предел регистров на поток был увеличен в четыре раза по сравнению с Fermi до 255, но это все еще позволяет потоку, использующему половину регистров, распараллеливать только до 1/4 каждого SMX. GK210 (выпущенный в то же время) увеличил предел регистров до 512, чтобы улучшить производительность в ситуациях с высокой нагрузкой на регистры, таких как эта. Кэш текстур, который программисты уже использовали для вычислений в качестве буфера только для чтения в предыдущих поколениях, был увеличен в размере, а путь данных оптимизирован для более высокой пропускной способности при использовании этого метода. Все уровни памяти, включая файл регистров, также являются однобитными ECC.
Еще одной примечательной особенностью является то, что в то время как к графическим процессорам Fermi мог обращаться только один поток ЦП за раз, графические процессоры HPC Kepler добавили поддержку многопоточности, поэтому процессоры с большим количеством ядер могли открывать 32 соединения и легче загружать вычислительные мощности. [10]
Дополнительное сокращение площади кристалла и экономия энергии были достигнуты за счет удаления сложного аппаратного блока, который занимался предотвращением рисков утечки данных. [3] [5] [11] [12]
GPU Boost — это новая функция, которая примерно аналогична турбонаддуву ЦП. Графический процессор всегда гарантированно работает на минимальной тактовой частоте, называемой «базовой тактовой частотой». Эта тактовая частота устанавливается на уровне, который гарантирует, что графический процессор останется в пределах спецификаций TDP даже при максимальных нагрузках. [3] Однако, когда нагрузки ниже, есть возможность увеличить тактовую частоту без превышения TDP. В этих сценариях GPU Boost будет постепенно увеличивать тактовую частоту шагами, пока графический процессор не достигнет предопределенного целевого значения мощности 170 Вт по умолчанию (на карте 680). [5] При таком подходе графический процессор будет динамически увеличивать или уменьшать свою тактовую частоту, так что он будет обеспечивать максимально возможную скорость, оставаясь в пределах спецификаций TDP.
Целевой показатель мощности, а также размер шагов увеличения тактовой частоты, которые будет выполнять графический процессор, настраиваются с помощью сторонних утилит и предоставляют средства разгона видеокарт на базе Kepler. [3]
Графические процессоры Nvidia Fermi и Kepler в серии GeForce 600 поддерживают спецификацию Direct3D 11.0. Nvidia изначально заявила, что архитектура Kepler имеет полную поддержку DirectX 11.1, которая включает путь Direct3D 11.1. [13] Однако следующие функции Direct3D 11.1 «Modern UI» не поддерживаются: [14] [15]
Согласно определению Microsoft, уровень возможностей Direct3D 11_1 должен быть полным, в противном случае путь Direct3D 11.1 не может быть выполнен. [16] Интегрированные возможности Direct3D архитектуры Kepler такие же, как и у архитектуры Fermi серии GeForce 400. [15]
Графические процессоры Nvidia Kepler серий GeForce 600/700 поддерживают Direct3D 12 уровня возможностей 11_0. [17]
Эксклюзивный для графических процессоров Kepler, TXAA — это новый метод сглаживания от Nvidia, разработанный для прямой реализации в игровых движках. TXAA основан на технике MSAA и пользовательских фильтрах разрешения. Он разработан для решения ключевой проблемы в играх, известной как мерцание или временное сглаживание . TXAA решает ее, сглаживая сцену в движении, гарантируя, что любая игровая сцена будет очищена от любого сглаживания и мерцания. [3]
В GK110 было добавлено небольшое количество инструкций для дальнейшего повышения производительности. Новые инструкции shuffle позволяют потокам внутри варпа обмениваться данными между собой с помощью инструкции, которая завершает обычные операции сохранения и загрузки, которые ранее требовали двух доступов к локальной памяти в рамках одной инструкции, что делает процесс примерно на 6% быстрее, чем при использовании локального хранилища данных. Атомарные операции также были улучшены, с 9-кратным увеличением скорости для некоторых инструкций и добавлением большего количества атомарных 64-битных операций, а именно min, max, and, or и xor. [11]
Hyper-Q расширяет аппаратные рабочие очереди GK110 с 1 до 32. Значение этого заключается в том, что наличие одной рабочей очереди означало, что Fermi мог быть недозагружен, поскольку в этой очереди не было достаточно работы для заполнения каждого SM. Имея 32 рабочие очереди, GK110 может во многих сценариях достичь более высокой загрузки, имея возможность помещать различные потоки задач на то, что в противном случае было бы простаивающим SMX. Простая природа Hyper-Q еще больше подкрепляется тем фактом, что он легко сопоставляется с MPI, распространенным интерфейсом передачи сообщений, часто используемым в HPC. Поскольку устаревшие алгоритмы на основе MPI, изначально разработанные для многопроцессорных систем, стали узким местом из-за ложных зависимостей, теперь имеют решение. Увеличивая количество заданий MPI, можно использовать Hyper-Q в этих алгоритмах для повышения эффективности, не изменяя сам код. [11]
Возможность динамического параллелизма позволяет ядрам отправлять другие ядра. С Fermi только ЦП мог отправлять ядро, что влечет за собой определенные накладные расходы, поскольку ему приходилось общаться с ЦП. Предоставляя ядрам возможность отправлять свои собственные дочерние ядра, GK110 может сэкономить время, не обращаясь к ЦП, и в процессе освободить ЦП для работы над другими задачами. [11]
Включение динамического параллелизма требует новой системы управления сеткой и диспетчеризации. Новый блок управления сеткой (Grid Management Unit, GMU) управляет и расставляет приоритеты для выполнения сеток. GMU может приостанавливать отправку новых сеток и ставить в очередь ожидающие и приостановленные сетки до тех пор, пока они не будут готовы к выполнению, обеспечивая гибкость для включения мощных сред выполнения, таких как динамический параллелизм. Распределитель работ CUDA в Kepler хранит сетки, готовые к отправке, и может отправлять 32 активные сетки, что вдвое превышает емкость Fermi CWD. Kepler CWD взаимодействует с GMU через двунаправленную связь, которая позволяет GMU приостанавливать отправку новых сеток и удерживать ожидающие и приостановленные сетки до тех пор, пока они не понадобятся. GMU также имеет прямое соединение с блоками Kepler SMX, чтобы разрешить сеткам, которые запускают дополнительную работу на GPU через динамический параллелизм, отправлять новую работу обратно в GMU для приоритизации и отправки. Если ядро, которое отправило дополнительную рабочую нагрузку, приостанавливается, GMU будет удерживать его в неактивном состоянии до тех пор, пока зависимая работа не будет завершена. [12]
Nvidia GPUDirect — это возможность, которая позволяет графическим процессорам в пределах одного компьютера или графическим процессорам на разных серверах, расположенных в сети, напрямую обмениваться данными без необходимости обращения к памяти ЦП/системы. Функция RDMA в GPUDirect позволяет сторонним устройствам, таким как SSD, NIC и IB-адаптеры, напрямую получать доступ к памяти на нескольких графических процессорах в пределах одной системы, что значительно снижает задержку отправки и получения сообщений MPI в/из памяти графического процессора. [18] Это также снижает требования к пропускной способности системной памяти и освобождает движки DMA графического процессора для использования другими задачами CUDA. Кристалл Kepler GK110 также поддерживает другие функции GPUDirect, включая Peer-to-Peer и GPUDirect для видео.
NVENC — это энергоэффективный кодер с фиксированной функцией от Nvidia, способный принимать кодеки, декодировать, предварительно обрабатывать и кодировать контент на основе H.264. Входные форматы спецификации NVENC ограничены выходом H.264. Но все же NVENC, благодаря своему ограниченному формату, может поддерживать кодирование до 4096x4096. [19]
Как и QuickSync от Intel, NVENC в настоящее время доступен через собственный API, хотя у Nvidia есть планы обеспечить использование NVENC через CUDA. [19]
Теоретическая вычислительная мощность одинарной точности графического процессора Kepler в GFLOPS вычисляется как 2 (операций на инструкцию FMA на ядро CUDA за цикл) × количество ядер CUDA × тактовая частота ядра (в ГГц). Обратите внимание, что, как и предыдущее поколение Fermi , Kepler не может извлечь выгоду из увеличения вычислительной мощности за счет двойной выдачи MAD+MUL, как это было возможно в Tesla .
Теоретическая мощность обработки двойной точности графического процессора Kepler GK110/210 составляет 1/3 от его производительности одинарной точности. Однако эта мощность обработки двойной точности доступна только на профессиональных картах Quadro , Tesla и высокопроизводительных картах GeForce под брендом Titan , в то время как драйверы для потребительских карт GeForce ограничивают производительность до 1/24 производительности одинарной точности. [20] Более низкопроизводительные кристаллы GK10x также ограничены до 1/24 производительности одинарной точности. [21]
Кеплер
ГК104 | ГК106 | ГК107 | ГК110 | |||
---|---|---|---|---|---|---|
Вариант(ы) | ГК104-200-А2 ГК104-300-А2 ГК104-325-А2 ГК104-400-А2 ГК104-425-А2 ГК104-850-А2 | ГК106-240-А1 ГК107-400-А1 | ГК107-300-А2 ГК107-301-А2 ГК107-320 -А2 ГК107-400-А2 ГК107-425-А2 ГК107-450-А2 ГК107-810-А2 | ГК110-300-А1 ГК110-400-А1 ГК110-425-Б1 ГК110-885-А1 | ||
Дата выпуска | 3 апреля 2012 г. | 6 сен 2012 г. | 6 сен 2012 г. | 12 ноября 2012 г. | ||
Ядра | Ядра CUDA | 1536 | 960 | 384 | 2880 | |
TMU | 128 | 80 | 32 | 240 | ||
ROP-ы | 32 | 24 | 16 | 48 | ||
Потоковые мультипроцессоры | 8 | 5 | 2 | 15 | ||
GPC | 4 | 3 | 1 | 5 | ||
Кэш | Л1 | 128 КБ | 80 КБ | 32 КБ | 240 КБ | |
Л2 | 512 КБ | 512 КБ | 256 КБ | 1,5 МБ | ||
Интерфейс памяти | 256-бит | 192-бит | 192-бит | 384-бит | ||
Размер матрицы | 294 мм 2 | 221 мм 2 | 118 мм 2 | 561 мм 2 | ||
Количество транзисторов | 3,54 млрд. | 2,54 млрд. | 1,27 млрд. | 7,08 млрд. | ||
Плотность транзисторов | 12,0 МТр/мм 2 | 11,5 МТр/мм 2 | 10,8 МТр/мм 2 | 12,6 МТр/мм 2 | ||
Пакетный разъем | BGA1745 | BGA1425 | BGA908 | BGA2152 | ||
Продукция | ||||||
Потребитель | Рабочий стол | GTX 660 GTX 660 Ti GTX 670 GTX 680 GTX 690 GTX 760 GTX 760 Ti GTX 770 | GTX 650 GTX 650 Ti GTX 660 | GT 630 GTX 650 GT 720 GT 730 GT 740 GT 1030 | GTX 780 GTX Титан | |
Мобильный | GTX 670MX GTX 675MX GTX 680M GTX 680MX GTX 775M GTX 780M GTX 860M GTX 870M GTX 880M | GTX 765M GTX 770M | GT 640M GTX 640M LE GT 645M GT 650M GTX 660M GT 740M GT 745M GT 750M GT 755M GTX 810M GTX 820M | — | ||
Рабочая станция | Рабочий стол | Квадро K4200 Квадро K5000 | Квадро K4000 Квадро K5000 | Квадро К410 Квадро К420 Квадро К600 Квадро К2000 Квадро К2000D | Квадро K5200 Квадро K6000 | |
Мобильный | Quadro K3000M Quadro K3100M Quadro K4000M Quadro K4100M Quadro K5000M Quadro K5100M | — | Квадро К100М Квадро К200М Квадро К500М Квадро К1000М Квадро К1100М Квадро К2000М | — |
Кеплер 2.0
карты намеренно управляет блоками FP64 GK110 на 1/8 тактовой частоты графического процессора. Если умножить это на соотношение 3:1 ядер CUDA одинарной и двойной точности, то получится частота 1/24