2018/01/19 18:30:35

Intel против всех. Началась война за сетевой интерконнект между процессорами и памятью


Содержание

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

Следствием пренебрежения различий между данными и информацией становились очень странные утверждения. Например, на сайте «Академик» можно найти следующее определение: «Информационные технологии (ИТ, от англ. information technology, IT) — широкий класс дисциплин и областей деятельности, относящихся к технологиям создания, сохранения, управления и обработки данных, в том числе с применением вычислительной техники[1]. Если технологии оперируют данными, то почему они информационные?

Теперь же словосочетание «информационные технологии» получило совершенно законное право на существеннее потому, что предметом технологий становится именно информация, а не данные. Переход от данных к информации стал возможным благодаря стремительному вхождению в жизнь компьютерной аналитики во всех ее ипостасях. Подлинные информационные технологии – это то подмножество КТ, которые обеспечивают переработку данных с последующим преобразованием результатов в форму, предоставляющую человеку возможность извлечь полезную для себя новую информацию.

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

Нет ничего удивительного, что для информационных технологий требуются качественно иные компьютеры. Буквально на глазах устаревает доминировавшая долгие годы концепция универсального компьютера, восходящая к машине Тьюринга. («Все проходит… и универсализм компьютеров тоже»[2])

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

На смену «универсальным ЭВМ» (вспомним, что первый коммерческий компьютер назывался UNIAC или Universal Automatic Computer) приходят специализированные дата-центричные системы и вместе с ними наступает эпоха Data-intensive Computing (DIC). От новых компьютеров требуются разнообразные способности для работы с поступающими из внешнего мира большими объемами неструктурированных данных – тексты, изображения всех видов, видео и аудио. То же самое можно делать и на универсальных машинах, но для большей эффективности для каждого типа данных требуются специализированные устройства (appliance). В истории компьютинга такие устройства уже встречаются. Teradata в свое время строила специализированные аналитические машины, но они были слишком дороги. В итоге пришлось перейти на универсальные, но, как известно, эволюция идет по спирали. На рисунке 1 представлено концептуальное видение системы, соответствующее нуждам DIC. В нее из внешнего мира данные поступают в подсистему, способную хранить большие объемы обрабатываемых данных. Вычислительная среда, выполняющая функции работы с данными, складывается из множества специализированных вычислительных агентов или appliance.

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

Роль своего рода библиотечных модулей могут играть вычислительные агенты или appliance (Computational agent), представляющие устройства, специализированные для решения определенного типа задач. При необходимости они включаются в гетерогенную вычислительную среду (Computational).

В качестве первых примеров таких агентов можно рассматривать GPU, предназначенные для общих вычислений GPGPU (General-purpose computing for graphics processing units), программируемые массивы FPGA (Field-Programmable Gate Array) и интегральные схемы специального назначения ASIC (Application-Specific Integrated Circuit), предназначенные для решения конкретной задачи. Координирующую и организационную функцию в гетерогенной вычислительной среде играет центральный процессор CPU. В результате складывается вычислительная среда, где кроме CPU к процессу работы с данными подключаются разнообразные специализированные модули.

Рис.1 Концептуальное видение системы, соответствующее нуждам  DIC
Рис.1 Концептуальное видение системы, соответствующее нуждам DIC

И вот тут возникает центральная задача. Оказывается, всему этому "зоопарку", состоящему из CPU, GPU, FPGA, ASIC, а в будущем возможно еще чего-то, требуется обеспечить доступ к общему массиву данных, хранящихся в памяти. Массив данных один, а агентов много, но все они могут одновременно обращаться к одним и тем же данным. Как следствие, на пути к DCI становится хорошо известная проблема когерентности памяти. Она была осознана еще в семидесятые годы прошлого века, когда к общей памяти впервые подключили два процессора, сразу же возникла потребность каким-то образом согласовать их работу в памяти. С тех пор когерентностью памяти называют задачу сохранения связанности данных при обращении к ней более чем одного процессора.

Образный термин «когерентность» заимствован из физики, где им обозначают согласованное протекание в пространстве и во времени нескольких колебательных или волновых процессов, при котором разность их фаз остается постоянной. В компьютинге согласование работы с данными (когерентность памяти) обеспечивается благодаря специальным протоколам (memory coherence protocol), регламентирующим работу агентов. Как показано на рисунках 2 и 3, возможны две альтернативные схемы мониторинга – централизованная и децентрализованная. В реальном исполнении они существенно сложнее. До последнего времени с проблемой мониторинга приходилось сталкиваться в многопроцессорных системах UMA и NUMA, а также с когерентностью кэш-памяти в системах CC-NUMA, где есть необходимость согласования кэшей.

Рис. 2 Централизованная схемы мониторинга
Рис. 2 Централизованная схемы мониторинга
Рис. 3 Децентрализованная схемы мониторинга
Рис. 3 Децентрализованная схемы мониторинга

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

Проприетарный подход Intel

Одновременно со стартом платформы Purley (Xeon Skylake-SP) Intel предложила межпроцессорный интерконнект типа точка-точка Intel UltraPath Interconnect (UPI), являющийся дальнейшим развитием QuickPath Interconnect (QPI). С его помощью когерентный доступ к общей памяти могут получить от двух до восьми процессоров. В UPI для обеспечения когерентности использованы оба известных механизма – использующий каталоги (directory based) и использующий так называемые «защелки» (snoop based).

Рис.4 QuickPath Interconnect
Рис.4 QuickPath Interconnect

Независимое положение Intel видимо связано с разработкой собственной платформы для DIC, где в качестве агентов-ускорителей будут использовать не GPU, а FPGA. Не случайно ею был куплена компания Altera – один из двух основных производителей FPGA. И похоже на то, что компания отказывается от дальнейшего развития процессора Xeon Phi, который поддерживает массовый параллелизм и векторизацию.

В отличие от большинства, Intel не делает ставку на GPU, что вполне резонно. Известно, что использование GPU для счета явление вынужденное, они создавались для игровых компьютеров и несут груз происхождения. GPU являются ни чем иным, как массивами упрощенных CPU, работающих по той же самой фон-неймановской схеме. Они не могут быть столь же эффективны как специализированные FPGA на многих приложениях, где требуется высокая степень параллелизма из особой точности, в частности: аналитика, искусственный интеллект, перекодировка видео, компрессия, задачи безопасности и геномики. В планах Intel на следующий год есть собственная усовершенствованная карта PCI Express на основе чипа Arria 10-GX FPGA, разработанного Altera. Он обеспечит более высокую скорость передачи данных и меньшую задержку. Напомним, что обеспечивающие когерентность памяти технологии UPI, QPI и их конкуренты являются логическими протоколами, они работают поверх физических протоколов, в данном случае PCI Express.

Консолидированные подходы других участников рынка

Подготовкой к созданию гетерогенных систем озабочены и все остальные участники рынка, но, в отличие Intel, они стремятся к консолидации и с этой целью создали три сообщества, каждое из которых хотело бы предложить свои стандарты для когерентности памяти. Бойкий на язык сайт The Register утверждает: «Война за сетевой интерконнект между CPU и памятью объявлена» («The CPU-memory-network interconnect technology wars are on»).

На другом сайте можно найти материал под названием: «The Battle of Data center Interconnect Fabric» («Битва интерконнект ЦОДов»). Поводом для военных действий является угроза монополии Intel в этой области.

Чем-то эта война напоминает анти-наполеоновскую кампанию, где против одного выступают союзные силы, образующие три коалиции:

  • Cache Coherent Interconnect for Accelerators (CCIX)
  • Gen-Z
  • Open Coherent Accelerator Processor Interface (OpenCAPI)

Они поддерживают соответственно три стандарта, В каждой коалиции примерно по 30 членов и по списочному составу они применю на 80% совпадают. Такая странная ситуация вызвана, скорее всего тем, что в условиях неопределенности сложно поставить на одного игрока и многие компании вошли во все три.

Стандарт CCIX

Логический протокол CCIX (Cache Coherent Interconnect for Accelerators (X) предложен одноименным консорциумом (AMD, ARM, Huawei, IBM, Mellanox, Qualcomm, Xilinx и др) с целью обеспечения распределенного доступа к памяти со стороны агентов (процессоров и ускорителей) с использованием физического протокола PCIe 4.0 на транспортном уровне. В представлении некоммерческой организации PCI Special Interest Group (PCI SIG) скорость PCIe - 4.0 Гбит/сек, но CCIX допускает ускорение до 25 Гбит/сек. Усилия участников консорциума сосредоточены на создании когерентной кеш-памяти, обеспечивающей интерконнект между процессорами (разных вендоров), ускорителями и агентами-ускорителями. Отличительная особенность стандарта CCIX заключается в том, что он не привязан ни к какой определенной архитектуре, то есть распространяется на ARM, IBM Power и x86.

Рис.5 Архитектура CCIX
Рис.5 Архитектура CCIX

Стандарт Gen-Z

Область действия стандарта Gen-Z распространяется не только на системную память, но и на системы хранения, поэтому в составе учредителей те же, кто и в CCIX, а также HPE, Dell, Micron, Seagate, SK Hynix, Samsung и Western Digital. По мнению производителей СХД, Gen-Z будет востребован с появлением новых устройств класса SCM (Storage Class Memories), являющихся результатом конвергенции оперативной памяти и СХД. SCM – это новый тип хранилища, которое может стать промежуточным звеном между высокопроизводительной DRAM и дешевыми HDD. SCM-память способна обеспечить скорость считывания, близкую к скорости чтения DRAM, и скорость записи, во много раз превышающую возможности жестких дисков. Первыми SCM анонсировали Intel и Micron, представив трехмерную архитектуру 3D XPoint. Оно будет использоваться в центрах обработки данных для хранения часто запрашиваемых «горячих» данных. Интерконнект Gen-Z позволит получить доступ к ним со стороны разнообразных ускорителей. В качестве транспортного протокола используется Ethernet.

Рис.6 Архитектура Gen-Z
Рис.6 Архитектура Gen-Z

Стандарт OpenCAPI

Стандарт OpenCAPI предоставляет основу для реализации высокоскоростных коммуникаций между различными системными компонентами, включая оперативную память, хранилище данных и сеть. OpenCAPI (Coherent Accelerator Processor Interface) основан компаниями AMD, Google, IBM, Mellanox Technologies и Micron. Его членами являются также Dell EMC, HPE, NVIDIA и Xilinx. Ведущая роль принадлежит IBM, которая объявила о создании технологии CAPI еще в 2014 году. Тогда она была разработана для систем на платформе Power8 и стала доступной партнерам IBM по проекту OpenPower. Позднее корпорация решила открыть доступ к технологии CAPI для всей отрасли.

CAPI привязан к определенному процессору, поскольку реализуется функциональным модулем-посредником для когерентного ускорителя CAPP (Coherent Accelerator Processor Proxy). В ускоритель встраивается ответный модуль PSL (Power Service Layer). Совместно CAPP и PSL могут использовать одно и то же когерентное пространство памяти. В этой связке ускоритель получает специальное название AFU (Accelerator Function Unit). Не следует путать AFU с APU (Accelerated Processing Unit), устройством, предложенным AMD и сочетающем на одном чипе CPU и GPU. Появление APU вызывает в памяти объединение в процессоре 386 двух устройств – CPU 386 и FPP 287.

В перовой версии на Power8 интерфейс CAPI работал поверх PCIe Gen 3. Версия CAPI 2, на готовящемся к производству Power9, предполагается PCIe Gen 4.

В октябре 2016 после образования ассоциации OpenCAPI (AMD, Google, IBM, Mellanox, Micron, Nvidia, Hewlett Packard Enterprise, Dell EMC, Xilinx и др.) был создан совершенно новый стандарт OpenCAPI, ранее известный как CAPI или CAPI 3.0. Он отказывается от PCIe и переходит на Bluelink 25G I/O в сочетании с NVLink 2.0.

Качественная новизна CAPI в том, что он открывает возможность для создания гетерогенных систем на уровне системных плат. Именно гетерогенность является характерной чертой современных облачных ЦОД, которые комплектуются практически всеми типами компьютеров.

Рис.7 Архитектура OpenCAPI
Рис.7 Архитектура OpenCAPI

Читайте также

Дезагрегация памяти

Главные тенденции на мировом рынке дата-центров

Примечания