Intel возрождает арифметические сопроцессоры?

04 Дек 2016

Intel возрождает арифметические сопроцессоры?

Так сложилось, что понятие гетерогенные вычисления ча­ще ассо­ци­и­ру­ет­ся с применением интегрированных и ди­с­к­рет­ных гра­фи­че­ских ак­се­ле­ра­то­ров компании AMD. Пря­мой кон­ку­рент, разумно рас­по­ря­жаясь ин­тел­лек­ту­аль­ной соб­ст­вен­но­стью ве­ду­ще­го раз­ра­бот­чика про­грам­ми­ру­е­мых ло­ги­че­ских матриц под­го­то­вил весьма до­стой­ный асим­мет­рич­ный ответ. Давайте по­ближе познакомимся с архитектурой ге­те­ро­ген­ной муль­ти­про­цес­сорной системы на основе Intel Xeon и FPGA.

 

Классическая симметричная мультипроцессорная архитектура

SMP на протяжении последних десятилетий является основной технологией масштабирования вычислительных ресурсов, существуя на трех иерархических уровнях:

  1. Hyper-Threading, как выполнение одним вычислительным ядром нескольких (чаще всего двух) программных потоков.
  2. Multi-Core процессоры содержат в одном корпусе несколько вычислительных ядер, реализованных на одном или нескольких кристаллах. При этом, ядра в составе одного кристалла могут группироваться в кластеры.
  3. Multi-Socket платформы поддерживают несколько физических процессоров (процессорных гнезд).

Интеграция контроллера памяти в кристалл CPU превращает систему с несколькими физическими процессорами в платформу с неоднородным доступом к памяти (NUMA), поскольку каждый физический процессор оснащен сво­им контроллером памяти. В силу топологических причин время доступа к «своему» контроллеру памяти меньше, чем к «чужому», поскольку во втором случае маршрут передачи информации будет пролегать по шине меж­про­цес­сор­ной связи.

Несмотря на это обстоятельство, которое часто является причиной противопоставления понятий SMP и NUMA, с точки зрения программной модели и адресации системных ресурсов NUMA-платформа соответствует спе­ци­фи­ка­ции SMP, поскольку диапазоны памяти, соответствующие физически раздельным DRAM-контроллерам, сведены в единое адресное пространство, доступное для всех процессоров. Поэтому программный код, игнорирующий то­по­ло­гию NUMA, будет работоспособен, хотя и не достигнет оптимального быстродействия.

Новая асимметричная мультипроцессорная архитектура

SMP-модель, описанная в предыдущем разделе, упрощает разработку операционных систем, ведь если все вы­чис­ли­тель­ные ресурсы одинаковы, алгоритм планирования нагрузки может «поручить» любую задачу любому про­цес­со­ру с опциональной поправкой на NUMA-оптимизацию. Очевидно, чтобы нарушить сложившуюся за деся­ти­ле­тия гармонию, реализовав асимметричную мультипроцессорную архитектуру, необходимы веские причины, и состоят они в ограничениях, присущих универсальным процессорам.

Неплохой иллюстрацией является задача генерации криптовалюты, для выполнения которой на первых порах ис­пользовались вычислительные ресурсы графических процессоров High-End видеоадаптеров, но затем ее реали­за­ция была делегирована специализированным устройствам. Диаграмма Рис 1. иллюстрирует пример построения гетерогенной асимметричной мультипроцессорной топологии на основе существующей Multi-Socket инфра­струк­ту­ры.

Гетерогенная мультипроцессорная система на основе FPGA
Рис 1. Гетерогенная мультипроцессорная система на основе FPGA

Система построена на основе процессора Intel Xeon E5-2600 v2, располагающего четырьмя каналами оперативной памяти DDR3, несколькими шинами ввода-вывода PCI Express, и шиной связи с системной логикой DMI (Direct Media Interface).

Шина QPI (Quick Path Interconnect), традиционно задействованная для связи нескольких одинаковых процессоров, яв­ля­ет­ся каналом связи между CPU и специализированным вычислителем (сопроцессором), построенным на ос­но­ве FPGA. Функциональность сопроцессора ограничена узким кругом задач, он не является универсальный про­цес­со­ром. Вместе с тем, «свои» задачи он способен выполнять значительно быстрее, чем CPU.

В этом примере (на сегодня уже несколько устаревшем) сопроцессор поддерживает два канала DDR3 и одну шину ввода-вывода PCI Express. Эти характеристики не являются константами, определяясь функциональным наз­на­че­ни­ем сопроцессора и ограничиваясь стоимостью платформы. Наличие собственного контроллера памяти у со­про­цес­сора позволяет классифицировать платформу как NUMA. Когерентность содержимого кэш-памяти про­цес­со­ров и сопроцессоров поддерживается на аппаратном уровне, как и для одинаковых процессоров в рамках SMP-подключения.

Архитектура программной поддержки для систем, содержащих сопроцессоры, показанная на Рис 2 основывается на открытом языке программирования Open Computing Language.

Архитектура программной поддержки гетерогенной мультипроцессорной системы на основе FPGA
Рис 2. Архитектура программной поддержки гетерогенной мультипроцессорной системы на основе FPGA

Сопроцессор, также как центральный процессор, располагает собственным механизмом виртуальной адресации, поэтому приложение (OpenCL Application) способно использовать ресурсы центральных и специализированных процессоров с максимально возможной степенью унификации.

Стек протоколов, абстрагированный от физической реализации платформы, подразумевает взаимодействие вы­чис­ли­тель­ных модулей посредством общей памяти. Определение «общая память» здесь справедливо с точки зрения программной модели, в то время как обмен информацией между двумя NUMA-узлами через память не­из­беж­но означает периодические обращения к DRAM-каналам другого узла. Количество таких транзакций разумно минимизировать для оптимизации производительности.

Вместо послесловия

На первый взгляд топология, рассмотренная на Рис 1, напоминает связку центрального процессора i8088 и ариф­ме­ти­ческого сопроцессора i8087, реализованную несколько десятилетий назад в персональных компьютерах IBM PC/XT.

Вместе с тем, сопроцессор Intel 8087 не поддерживал собственного командного потока, детектируя свои ин­струк­ции в командном потоке центрального процессора Intel 8088/8086 и эксплуатируя его механизмы адресации па­мя­ти. Аналогия же с сопроцессором ввода-вывода Intel 8089, обладающим высокой степенью автономности, выглядит логичнее.

Вычислительный модуль на основе FPGA, несмотря на функциональную ограниченность, адресует инструкции и данные самостоятельно, в том числе располагая собственными подсистемами ввода-вывода и доступа к опе­ра­тив­ной памяти. Такой узел имеет шансы повторить судьбу арифметических сопроцессоров 80x87, став впоследствии частью кристалла CPU.

Теги: