Архитектура Kepler и ее производные Tesla K10, Tesla K20

02.10.2012, 14:30

Шрифт: A- A+

Редактировать статью

Компания NVIDIA анонсировала два новых ускорителя Tesla (K10 и K20) на ежегодном ивенте GTC 2012. Ускоритель K10 является высокопроизводительной 8гигабайтной версией видеокарты GeForce GTX 690, о K20 известно лишь то, что в нем будет до 7.1 миллиарда транзисторов.

На вчерашней выставке GTC 2012 представители компании обнародовали слайды и некоторую, дополнительную информацию об архитектуре Kepler GK110, которая будет использоваться при производстве устройства NVIDIA Tesla K20 GPU.  По слухам данное видео решение будет присутствовать в усовершенствованной версии  суперкомпьютера Jaguar.

Согласно обнародованным данным, будущие ускорители будyт содержать такие плюшки:

  • 2880 ядер CUDA
  • 15ть блоков SMX
  • 384-битный контроллер памяти
  • До 24 гигабайт видео памяти DDR5
  • Второе поколение памяти ECC
  • Динамический параллелизм (возможность потокам GPU генерировать новые, что бы быстрее адаптироваться к новым данным).
  • Функция Hyper-Q  (функция позволяет нескольким ядрам CPU одновременно использовать ядра CUDA на одном GPU Kepler).
  • Виртуализация GPU на hardware уровне.
  • Общая производительность ожидается на уровне 1.5 TFLOPS DP FP64
  • Пропускная способность 250 Gb/s

Единственный параметр, который остался неизвестным – количество видеопамяти ускорителя. В данный момент NVIDIA успешно “впихнула” 6 – 12 GB видео памяти, но инженеры компании не хотят на этом останавливаться и, возможно, количество видеопамяти на борту данного ускорителя будет увеличено вдвое.

Но , всегда и везде есть это “но”, новинка не выйдет в этом году, выход ускорителей ,построенных по данной технологии, ожидается лишь в апреле 2013 года (к началу ивента NAB 2013). Для хардкорных геймеров компания планирует выпустить серию GTX 700 гораздо ранее, чем выйдут ускорители на основе GK110.

Так что же такое Kepler? С чем же его едят?

По утверждению компании NVIDIA архитектура Kepler является “самой быстрой в мире архитектурой, созданной для высокопроизводительных вычислений”.

Компания NVIDIA и отряд доблестных инженеров предлагают новый продукт, а точнее новую технологию для производства их главного продукта – графических ускорителей. На сей раз, гораздо более мощных. Делается это для того, что бы удовлетворить потребность параллельных вычислений и обработки данных, ведь многие отрасли нуждаются в таких решениях, такие отрасли как медицина, инженерия,  финансовая отрасль.  Созданием технологии Fermi компания уже внесла свой вклад в развитие отрасли высокопроизводительных вычислений, которые задействованы при обработке сейсмологических данных, биометрических симуляций, в прогнозировании погоды, проведении финансовых расчетов, инженерии, анализе данных и т.д Появление новой архитектуры Kepler является еще одним виток эволюции в данной сфере. Решения, основанные на данной технологии помогут справиться вышеуказанным отраслям с самыми сложными задачами

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

Высочайшая производительность = высочайшая эффективность?

Данная архитектура включает в себя 7.1 миллиард транзисторов, что делает ее самой сложной, с технической стороны, архитектурой из всех созданных ранее.  Имея “в рукаве” много козырей, данная архитектура была создана для того, что бы стать, эдакой, энергетической установкой для параллелизации обработки данных.

Данная архитектура обеспечивает производительность более 1 TFlop с удвоенной точностью, пропускную способность канала на 80% больше чем это было в Fermi.

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

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

  • Динамический параллелизм – Эта функция позволяет потокам GPU динамически генерировать новые потоки, чтобы динамически адаптироваться к данным. Новая технология существенно упрощает параллельное программирование за счет применения GPU-ускорения к широкому спектру распространенных алгоритмов, таких как адаптивное уточнение сеток, быстрые мультипольные и мультисеточные методы
  • Hyper-Q – Эта функция позволяет нескольким ядрам CPU одновременно использовать ядра CUDA на одном GPU Kepler. Нагрузка на GPU значительно вырастает, уменьшается простой CPU и улучшается программируемость. Hyper-Q – это подходящее решение для кластерных задач, использующих MPI.
  • SMX потоковый мультипроцессор – Будучи основным строительным материалом каждого GPU, SMX потоковый мультипроцессор был создан с нуля для высокой производительности и экономичности. Он обеспечивает производительность на Ватт до 3 раз выше по сравнению с потоковым мультипроцессором Fermi. Экономичность SMX была достигнута за счет вчетверо большего числа ядер CUDA при сокращении частоты каждого ядра, отключения питания частей GPU, находящихся в простое, и увеличения площади GPU, предназначенной для ядер для параллельных расчетов вместо управляющей логики.
  • GMU – технология используемая для контроля и управления сетями созданными при помощи CUDA ядер и сетям созданными вручную. Так же данная технология осуществляет контроль за равномерным распределением нагрузки между центральным процессором и графическим процессором.
  •  NVIDIA GPUDirect  - данная технология позволяет графическим процессорам данными внутри единой сети, не вовлекая в этот процесс центральный процессор компьютера. Даная технология позволяет накопителям любого типа (будь то SSD/NIC/IB) использовать ресурсы GPU для удовлетворения потребностей пользователя без участия CPU. Так же данная технология поддерживает peer-to-peer технологию для трансляции видео внутри единой сети. Благодаря данной технологии peer-to-peer видео транслируется с меньшими задержками и ,практически, без потерь качества.

Обзор архитектуры GK110 Kepler

Технология Kepler GK 110 изначально была создана для применения в графических ускорителях типа Tesla (и им подобным) и ее главной целью было обеспечить наивысший уровень производительности при  вычислениях с распараллеливанием данных. Новая технология является ресурсоэкономной, ведь , в сравнении с той же Fermi, графические ускорители основанные на ней будут потреблять меньше энергии и выделять меньше тепла.

Полноценная имплементация технологии включает в себя 15ть блоков SMX и шесть 64 битных контроллеров памяти.  Спектр продукции, который будет построен на основе данной технологии будет использовать разные ее конфигурации. К примеру, продукты построенный по данной технологии могут различаться количеством блоков SMX (будь то 13 или все 15ть). Данные различия и буду влиять на цену будущих продуктов.

Ключевыми особенностями архитектуры включают в себя:

  • Новая архитектура блоков SMX
  • Улучшение и расширение подсистемы памяти. Данное улучшение позволит оптимизировать работу кэша, обеспечить большую пропускную способность,  ускорит работу (читать быстродействие) DRAM I/O.
  •  Аппаратная поддержка для поддержания стабильной работы во время вычислений.

Архитектура Kepler GK 110 поддерживает новые вычислительные возможности CUDA 3.5. В поданной ниже таблице сравниваются некоторые параметры Fermi и Kepler архитектур.

 

Производительность

Основной целью проектирования архитектуры GK 110 была энергоэффективность данного решения и ее всевозможные улучшения. При проектировании инженеры старались оптимизировать и улучшить все наработки Fermi для обеспечения стабильности работы Kepler, для больших вычислительных показателей.  Видео решения, построенные на 28нм кристалле, будут менее прожорливыми. Однако и другие технологии, которые будут воплощены в будущих графических ускорителях заставят инженеров пересмотреть показатели энергопотребления в сторону улучшения производительности. 

Каждая составная часть, входящая в архитектуру Kepler, была создана для обеспечения максимально производительности на потребленный ею ватт энергии. Лучшей иллюстрацией вышесказанного можно назвать производительность SMX блоков, которая значительно повысилась в сравнении с показателями SMX в других продуктах.

Производительность потокового мультипроцессора

Новаторство в области SMX блоков, делают данный тип мультипроцессоров не только самыми мощными на рынке, но и самыми программируемыми и энергоэффективными.

Каждый такой блок архитектуры Kepler GK 110 содержит в себе 129 CUDA ядер, каждое из эти ядер имеет программные компоненты с конвейеризованной плавающей точкой и логику схемы арифметического устройства.

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

Ядра мультипроцессора архитектуры GK 110 перво-наперво используют мощностью GPU процессора для выполнения поставленных задач, в большей степени, чем шейдерный потенциал.  Стоит напомнить, что задействование шейдерного потенциала впервые было применено в архитектуре G80, а теперь оно используется в последующих продуктах Tesla и им подобным. Задействование в работе данных блоков позволяет устройству на более высоких частотах выполнить поставленную задачу, задействуя меньшее количество юнитов, что по своей сути является хорошей оптимизацией работы. Что касается архитектуры Kepler, нашей первостепенной задачей было достичь наивысших показателей производительности на потребленный ватт энергии. Не смотря на то, что мы сделали множество оптимизаций нацеленных на уменьшение объемов и потребления энергии, мы решили оптимизировать потребление энергии по максимуму, не смотря на то, что это повлечет за собой повышение стоимости продукта. Большее число процессорных ядер работает на меньших скоростях лишь для того, что бы будущий продукт потреблял меньше энергии.

 

Модульный планировщик

По задумке инженеров данные планировщики объединены в группы, именуемые в технической документации как “waprs”. Каждый SMX блок насчитывает 4 warp’a и восемь юнитов для управления отправкой данных. Данная схема позволяет всем четырем warp’ам корректно работать.

При проектировании данного решения инженеры использовали все имеющиеся возможности для того, что бы оптимизировать подсистему питания SMX логики.  В обеих архитектурах (Fermi & Kepler) есть специальные  юниты, отвечающие за функцию планирования, включая такие как :

  • Запись и учет задержек выполняемых задач (загрузка текстур)
  • Использование и производительная работа GigaThread Engine
  • Выбор лучшей “связки” для быстрейшей работы

Однако, подобный этому, планировщик Fermi имеет дополнительный hardware комплекс, для предотвращения потери данных. Многоходовой регистр планировщика ведет строгий учет других регистров, которые остались невыполненными, а блок проверки зависимостей анализирует использование регистра по его же записям.

В случае с Kepler’ом мы посчитали, что такой тип информации является детерминированным и следовательно,  компилятор сможет сам определять когда к нему поступят необходимые инструкции. Такой подход позволяет нам избавиться от некоторых “прожорливых” блоков и заменить их на менее ресурсоемкие блоки.

Технология дележки загрузки

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

Атомарные операции

Данный тип операций является очень важным и повсеместно применяется при параллельных вычислениях. Такие операции позволяют потокам корректно выполнять операции типа Чтение/Правка/Запись с данными. Операции типа Добавить/Уменьшить/Увеличить/Сравнить/Занести в своп являются атомарными, за счет того, что они выполняются без оказания влияния на другие потоки. Такой тип операций часто используется для параллельной сортировки, операций по уменьшению, построению массивов из данных и т.д.

Пропускная способность памяти была значительно улучшена, это отразилось на скорости и качестве проведения атомарных операций.  Так же была улучшение работа данных операций по независимым глобальным адресам. Загрузка GPU при выполнении данных операций сопоставима с загрузкой GPU при выполнении обычных нагрузок.  В архитектуре Kepler была улучшена поддержка 64битных атомарных операций видеопамяти. Данная архитектура поддерживает следующие типы атомарных команд (кроме atomicAdd,atomicCAS,atomicExch):

  • atomicMin
  • atomicMax
  • atomicAnd
  • atomicOr
  • atomicXor
  •  

Если у конечного пользователя возникнет потребность в других атомарных операциях ,точнее поддержке тех, которые не указаны в списке, то их всегда можно эмулировать используя comparе-and-swap (CAS) инструкции.

Всевозможные текстурные улучшения

Текстурные блоки, которые содержит GPU, являются довольно важным ресурсом видеокарты как для геймеров, так и для обычных пользователей ПК. Пропускная способность этих блоков в технологии Kepler была значительно увеличена, теперь каждый каждый SMX  блок содержит 16 текстурных фильтров, это отличный пример четырехкратного увеличения производительности.

Кроме того, архитектура кардинально изменяет способ “обращения” с текстурами. Для Fermi была характерно назначения определенного “слота” да текстуры и дальнейшая  ее обработка. Каждый такой слот находится внутри фиксированной таблицы, количество таких слотов позволяет узнать, сколько разных текстур сможет “переварить” видео ускоритель. В конечном итоге, Fermi могла переварить 128 разных текстур за раз.

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

Подсистема кэша

Подсистема памяти в новой архитектуре очень напоминает старую. В данной архитектуре используется кэш-память первого уровня на каждом SMX мультипроцессоре.  Новая архитектура позволяет компилятору напрямую использовать дополнительные ресурсы в виде кэша.

64 кб программируемой памяти и L1 кэш

В новой архитектуре каждый мультипроцессор имеет 64кб памяти, которая находится вне его конструкции. Данная память может быть разделена на 48кб Shared memory и 16KB кеша L1 уровня.

Технология обеспечивает дополнительную гибкость в конфигурировании распределения общей памяти и кэша L1 уровня, позволяя разделить доступные килобайты поровну (32/32) между памятью и кэшем для их нужд. Так же была увеличена пропускная способность каждой единицы SMX c 64 байт до 256 байт на ядро.

48 кб кэш памяти с пометкой “Только чтение”

В дополнение к кеш памяти L1, в технологии Kepler была введена дополнительная память, а точнее 48кб кэша, для данных которые доступны лишь для чтение и не доступны для записи.  В технологии Fermi память такого типа была доступна лишь при выполнении определенных операций с текстурами. Программисты считают данный тип памяти очень выгодным, ведь они подгружают многие данные под видом текстур, но до сегодняшнего дня данный подход имел некоторые ограничения.

В Kepler’e был увеличен как объем такого типа памяти, так и ее мощность.  Данный тип памяти стал доступным для SMX мультипроцессора, без каких либо ограничений, прямо во время выполнения операций с данными.  Задействование такого типа памяти значительно разгрузит кэш первого уровня. Использования такой техники позволяет компилятору получать доступ к любой переменной структуры данных.

Оптимизация кэш-памяти L2

В графических ускорителях ,основанных на технологии Kepler, будет доступно 1536KB кэш памяти L2 уровня,  это вдвое больше чем было в Fermi . Данная кэш память является основной точкой объединения данных между SMX юнитами , используемая для загрузки данными, сохранением изменений в подгруженных текстурах, обеспечивая высокоскоростной обмен данными по средствам GPU. Такая кеш память предоставляет удвоенную пропускную способность на ядро. Алгоритмы , в которых адресные данные заранее неизвестны , такие как физические явления, трассировка луча,  постройка матриц и проекций особенно выиграют от такой иерархии кэш памяти.

Защита памяти

Так же, как и в Fermi, в архитектуре Kepler все типы памяти защищены с помощью Single‐Error Correct Double‐Error Detect (SECDED) ECC кода. В случае обнаружения, каких либо ошибок проводится проверка считываемости данных, если считывание не удается произвести то данные помечаются “сбойными”  и считывание прекращается. Включенная или отключенная опция проверки значительно отражается на пропускной способности видеопамяти.  В виду этого, в новую архитектуру были внесены некоторые оптимизации для выполнения операций проверки “проверочного бита” памяти. В следствии оптимизаций включенная опция не дается сильной нагрузки (т.е не отнимает) чрезмерное количество видеопамяти.

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

В гибридных GPU – CPU системах, задействование большого количества кода программ для параллельных вычислений позволяет GPU увеличить показатели масштабности и производительности графических процессоров  при выполнении задач в такого рода приложениях.  Благодаря всевозможным оптимизациям железа, теперь видеоадаптер сможет поддерживать большее количество операций при выполнении параллельных вычислений.  Д.п является новой функцией, которая позволяет GPU поддерживать новые виды работ по синхронизированию и получению результатов операций, а так же осуществлять контроль за выполнением многих функций своих подсистем благодаря некоторым новым составляющим.

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

Д.п позволяет большему количеству параллельных алгоритмов выполняться непосредственно путем задействования ресурсов видеокарты.

Hyper Q

Одна из самых главных и сложных задач сегодня – обеспечить равномерную нагрузку между графическим процессором и центральным, дабы облегчить жизнь последнего. В архитектуре Fermi поддерживалось до 16ти соединений разного типа, по которым информация поступала на ускоритель. В архитектуре Kepler появилась функция Hyper-Q. Данная функция увеличивает количество таких соединений между хостом (т.е Вами) и CWD логикой, позволяя GPU поддерживать аж 32 потока одновременно. Данное решение позволяет получать данные со всех CUDA потоков, из MPI интерфейса и т.д Можно сказать что производительность на данном архитектурном участке была увеличена втрое.

Данная функция так же обеспечивает легкость и надежность использования MPI интерфейса, при параллельных исчислениях.  При использовании данного интерфейса функция Hyper-Q будет удалять ложные зависимости, значительно увеличивая эффективность обмена данными между GPU и MPI процессами.

Технология NVIDIA GPUDirect™

При работе с большим объемом данных,  жизненно важным является снижения всякого рода задержек и повышение производительности видеоадаптера в целом. Этим и занимается выше упомянутая технология, которая разработана для того, что бы повысить уровень производительности позволяя приложениям работающим с разных накопителей задействовать ресурсы GPU напрямую.  Основными возможностям данной технологии стоит назвать:

  • Прямой доступ  накопителя к ресурсам GPU
  • Переработанный подход к выполнению MPISend/MPIRecv
  • Работа без значительных задержек
  • Работа с разными типами сетей, накопителями и устройствами для “захвата”.

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

Что же, выше были поданы данные о самых “вкусных” фишках новой архитектуры, которую мы увидим … Нет ,не увидим, мы прочитаем о  ней в обзоре испытания нового суперкомпьютера Jaguar. Теперь нужно подытожить, дать какую то свою оценку.

Выводы

В отличии от технологий примененных в архитектуре Fermi, новая архитектура от NVIDIA разрабатывалась с нуля, для того , что бы обеспечить конечного пользователя максимальным быстродействием. Видеоадаптеры, построенные на основе этой технологии, созданы для работы с параллельными исчислениями в высокопроизводительных системах , типа HMC.  Оглядываясь на все новшества которые буду использоваться в видео решениях подобного рода, нельзя не согласиться с тем, что их выход станет новым витком в развитии графических ускорителей, да и графики в целом. Сомневаюсь что данное решение будет доступно по карману всем, так сказать поголовно, но видеокарты на основе Kepler станут отличным выбором для топовых игровых платформ, для энтузиастов да и вообще людей, которые хотят приобрести видеокарту с “запасом” мощности.

 

Изображения к материалу:

Чтобы написать здесь комментарий необходимо

КОММЕНТАРИИ: 0 СВЕРНУТЬ


    Нет комментариев. Ваш будет первым!




Система Orphus