Нижегородский государственный университет им. Н.И.Лобачевского
Опубликован: 30.05.2014 | Доступ: свободный | Студентов: 302 / 34 | Длительность: 11:26:00
Лекция 1:

Обзор архитектуры современных многоядерных процессоров

Лекция 1: 1234567 || Лекция 2 >

Ускорители вычислений

Технологический мир сегодня пронизан конвергенцией – взаимным влиянием и даже взаимопроникновением технологий, стиранием границ между ними, возникновением многих интересных результатов на стыке областей в рамках междисциплинарных работ. Одно из проявлений этого явления – "игра" основных производителей аппаратных составляющих компьютеров на "чужих полях". Так, компании NVIDIA и ATI (последняя теперь – в составе компании AMD), накопив опыт и поняв, что пиковая мощность их продуктов уже стала сравнима с кластерами "средней руки", от выпуска графических ускорителей начали движение на рынок высокопроизводительных решений, представив соответствующие продукты (семейства NVIDIA® Tesla™ и ATI FireStream™). Напротив, компании, традиционно выпускавшие процессоры и серверные решения, взялись осваивать область мультимедиа: компания Intel разрабатывает многопоточ-ные векторные графические устройства, компания IBM в составе альянса STI создала, как мы уже обсуждали, процессор Cell, изначально ориентированный именно на быструю обработку мультимедиа информации. Никуда не делись и типичные ускорители вычислений, способные существенно добавить мощности даже обычным "персоналкам" – на этом направлении работает, например, компания ClearSpeed Technology [108]. В конце 2012 года Intel представила свой сопроцессор с архитектурой Intel® Many Integrated Core, предназначенный для ускорения вычислений.

Как следствие перед обычными пользователями, желающими попробовать, "с чем едят" суперкомпьютерные технологии, возникает большой и не всегда просто осуществляемый выбор. Попытаемся немного прокомментировать возможности трёх из представленных выше систем: ClearSpeed™ Advance™ e710, NVIDIA® Tesla™ K20X, Intel® Xeon Phi™ 5110P.

Ускоритель ClearSpeed™ Advance™ e710

ClearSpeed™ Advance™ e710 (см. рис.) – это ускоритель операций над данными с плавающей запятой, представленных в формате с одинарной и двойной точностью. Ускоритель является сопроцессором, разработанным специально для серверов и рабочих станций, которые основаны на 32-х или 64-х битной х86 архитектуре, и построен на базе двухядерного процессора CSX700 содержащего по 96 обрабатывающих элемента на каждом ядре. Ускоритель e710 подключается к PCI-Express разъему на материнской плате. Среда разработки под e710 основана на языке C и включает SDK, а также набор инструментов для написания и отладки программ.

Ускоритель ClearSpeed™ Advance™ e720

Рис. 1.8. Ускоритель ClearSpeed™ Advance™ e720

Технические характеристики e710:

  • 1 процессор CSX700, работающий на частоте 250 МГц.
  • Каждый CSX700 содержит 192 обрабатывающих элемента (по 96 на каждое ядро).
  • Пиковая производительность e710 – 150 гигафлопс.
  • Память 2 GB DDR2-533 SDRAM.
  • Пиковая пропускная способность внутренней памяти 192 GB/с.
  • Пиковая пропускная способность доступа к внешней памяти 4 GB/с на ядро.
  • Подключается к ПК через PCI-Express разъем материнской платы.
  • Максимальная потребляемая мощность: 47 Вт.

Ускоритель e710 поддерживает операционные системы семейств Linux и Windows. Для работы с ускорителем необходимо установить специальный драйвер.

Главное (хост) приложение, использующее возможности e710, состоит из двух частей:

  • программа, выполняющаяся на главном процессоре;
  • программа, которая выполняется на ускорителе.

ClearSpeed™ Advance™ e710 обычно используется в качестве сопроцессора для ускорения внутренних циклов программы, достигающегося за счет использования стандартных математических библиотек, разработанных ClearSpeed. Если в приложении происходит вызов функции, поддерживаемой математическими библиотеками ClearSpeed, то библиотека сама анализирует возможность ее ускорения. В зависимости от выполненного анализа функция начинает выполняться либо на главном процессоре, либо перехватывается ускорителем. Этот механизм широко используется в ряде математических приложений, например в MATLAB.

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

GPU-ускорители NVIDIA® TESLA K20X

В 2007 г. компания NVIDIA представила продукты семейства Tesla™ для построения высокопроизводительных вычислительных систем. Последнее поколение ускорителей построено на базе архитектуры Kepler.

Ускоритель Tesla K20X содержит один процессор GK110, произведённый по технологии 28 нм. Ускоритель подключается к материнской плате по шине PCI Express 3.0.

Технические характеристики TESLA K20X:

  • 2688 вычислительных ядер.
  • Пиковая производительность на числах с плавающей запятой одинарной точности – 3,95 терафлопс.
  • Пиковая производительность на числах с плавающей запятой двоной точности – 1,31 терафлопс.
  • Память 6 GB GDDR5 384-bit.
  • Пиковая пропускная способность памяти 250 GB/с.

Tesla K20X поддерживает операционные системы семейств Windows и Linux. В комплект поставки входят следующие компоненты: CUDA Driver, CUDA Toolkit, CUDA SDK.

CUDA (Compute Unified Device Architecture) – программно аппаратное решение, позволяющее использовать видеопроцессоры для вычислений общего назначения. Возможность программирования видеопроцессоров компании NVIDIA на CUDA существует, начиная с семейства видеокарт 8ххх. Разработка программ для выполнения на Tesla K20X происходит таким же способом.

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

CUDA позволяет создавать специальные функции (ядра, kernels), которые выполняются параллельно различными блоками и потоками, в отличие от обычных C-функций. При запуске ядра блоки распределяются по доступным мультипроцессорам. Мультипроцессор занимается распределением, параллельным выполнением потоков внутри блока и их синхронизацией. Каждый поток независимо исполняется на одном скалярном процессоре с собственным стеком инструкций и памятью.

CUDA предоставляет программисту доступ к нескольким уровням памяти:

  • каждый поток обладает локальной памятью;
  • все потоки внутри блока имеют доступ к быстрой общей памяти блока, время жизни которой совпадает со временем жизни блока; память блока разбита на страницы, доступ к данным на разных страницах осуществляется параллельно;
  • все потоки во всех блоках имеют доступ к общей памяти устройства.

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

В ноябре 2012 г. в списке Top500 две системы были построены с использованием ускорителей Tesla K20X, среди них лидер этого списка – Titan.

Сопроцессор Intel® Xeon Phi™ 5110P

В конце 2012 года Intel представила первый процессор с архитектурой Intel MIC (Intel® Many Integrated Core Architecture). Основой архитектуры MIC является использование большого количества вычислительных ядер архитектуры x86 в одном процессоре. В результате для разработки параллельных программ могут быть использованы стандартные технологии8Заметим, что использование указанных технологий невозможно без использования ком-пилятора Intel C++ Compiler или Intel Fortran Compiler. : pthreads, OpenMP, Intel TBB, Intel Cilk Plus, MPI. Кроме того, под архитектуру x86 разработано огромное количество инструментов и библиотек. Это является огромным преимуществом перед другими ускорителями вычислений, для которых используются специальные (обычно более сложные) технологии разработки параллельных программ: CUDA, OpenCL.

Intel® Xeon Phi™ 5110P подключается к разъему PCIe x16 на материнской плате. В двухпроцессорной системе можно установить до 8 карт Intel® Xeon Phi™ 5110P.

Архитектура Intel® Xeon Phi™ 5110P

увеличить изображение
Рис. 1.9. Архитектура Intel® Xeon Phi™ 5110P

Технические характеристики Intel Xeon Phi 5110P:

  • 60 вычислительных ядер.
  • 240 потоков (по 4 потока на ядро).
  • Частота ядер – 1,053 ГГц.
  • Пиковая производительность на числах с плавающей запятой двоной точности – 1.0108 терафлопс.
  • Кэш второго уровня: 30 МБ (по 512 КБ на каждое ядро).
  • Память 8 GB GDDR5.
  • Пиковая пропускная способность памяти 320 GB/с.
  • Максимальная потребляемая мощность: 225 Вт.

Каждое ядро может обрабатывать одновременно 4 потока и поддерживает векторные инструкции с размером операндов 512 бит (инструкции MMX, SSE, AVX не поддерживаются). Все ядра подключены к двунаправленной кольцевой шине.

Intel® Xeon Phi™ 5110P поддерживает операционные системы семейства Linux и прямую ip-адресацию, что упрощает интеграцию сопроцессора в кластер.

Лекция 1: 1234567 || Лекция 2 >
Svetlana Svetlana
Svetlana Svetlana

Здравствуйие! Я хочу пройти курс Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi), в презентации самостоятельной работы №1 указаны логин и пароль для доступ на кластер и выполнения самостоятельных работ, но войти по такой паре логин-пароль не получается. Как предполагается выполнение самосоятельных работ в этом курсе?