Coherent Accelerator Processor Interface ( CAPI ) — это высокоскоростной стандарт шины расширения процессора для использования в компьютерах крупных центров обработки данных , изначально разработанный для размещения поверх PCI Express , для прямого подключения центральных процессоров (ЦП) к внешним ускорителям, таким как графические процессоры (ГП), микросхемы ASIC , ПЛИС или быстрое хранилище. [1] [2] Он обеспечивает низкое время задержки, высокую скорость и прямой доступ к памяти между устройствами с различными архитектурами наборов инструкций .
Масштабирование производительности, традиционно связанное с законом Мура , датируемым 1965 годом, начало снижаться около 2004 года, поскольку архитектура Prescott от Intel и процессор Cell от IBM продвигались к рабочей частоте 4 ГГц. Здесь оба проекта столкнулись с температурной стеной масштабирования, в результате чего проблемы отвода тепла, связанные с дальнейшим ростом рабочей частоты, в значительной степени перевешивали выгоды от более короткого времени цикла.
За последующее десятилетие лишь немногие коммерческие процессоры превысили 4 ГГц, при этом большинство улучшений производительности теперь достигается за счет постепенного улучшения микроархитектуры, лучшей системной интеграции и более высокой плотности вычислений — в основном за счет размещения большего количества независимых ядер на одном кристалле, часто за счет пиковой рабочей частоты (24-ядерный процессор Intel Xeon E7-8890, выпущенный в июне 2016 года, имеет базовую рабочую частоту всего 2,2 ГГц, что позволяет ему работать в рамках ограничений энергопотребления и охлаждения одного сокета в 165 Вт).
Там, где достигался большой прирост производительности, он часто был связан со все более специализированными вычислительными блоками, такими как блоки GPU, добавленные к кристаллу процессора, или внешние ускорители на базе GPU или FPGA. Во многих приложениях ускорители сталкиваются с ограничениями производительности межсоединения (пропускная способность и задержка) или с ограничениями, обусловленными архитектурой межсоединения (например, отсутствием когерентности памяти). Особенно в центрах обработки данных улучшение межсоединения стало первостепенным в переходе к гетерогенной архитектуре, в которой оборудование все больше подстраивается под конкретные вычислительные нагрузки.
CAPI был разработан для того, чтобы компьютеры могли более легко и эффективно подключать специализированные ускорители. Работы, требующие больших объемов памяти и вычислений, такие как умножение матриц для глубоких нейронных сетей, могут быть выгружены на платформы, поддерживаемые CAPI. [3] Он был разработан IBM для использования в ее системах на базе POWER8 , которые появились на рынке в 2014 году. В то же время IBM и несколько других компаний основали OpenPOWER Foundation для создания экосистемы вокруг технологий на базе Power , включая CAPI. В октябре 2016 года несколько партнеров OpenPOWER сформировали консорциум OpenCAPI вместе с разработчиком графических процессоров и центральных процессоров AMD и системными разработчиками Dell EMC и Hewlett Packard Enterprise, чтобы распространить технологию за пределы OpenPOWER и IBM. [4]
1 августа 2022 года спецификации и активы OpenCAPI были переданы консорциуму Compute Express Link (CXL). [5]
CAPI реализован как функциональный блок внутри ЦП, называемый Coherent Accelerator Processor Proxy (CAPP) с соответствующим блоком на ускорителе, называемым Power Service Layer (PSL). Блоки CAPP и PSL действуют как кэш-каталог, поэтому подключенное устройство и ЦП могут совместно использовать одно и то же когерентное пространство памяти, а ускоритель становится Accelerator Function Unit (AFU), одноранговым для других функциональных блоков, интегрированных в ЦП. [6] [7]
Поскольку ЦП и AFU используют одно и то же пространство памяти, можно достичь низкой задержки и высокой скорости, поскольку ЦП не нужно выполнять трансляции памяти и перетасовку памяти между основной памятью ЦП и пространствами памяти ускорителя. Приложение может использовать ускоритель без специальных драйверов устройств, поскольку все это включено общим расширением ядра CAPI в операционной системе хоста. ЦП и PSL могут считывать и записывать данные напрямую в память и регистры друг друга, как того требует приложение.
CAPI располагается поверх PCIe Gen 3 , используя 16 линий PCIe, и является дополнительной функциональностью для слотов PCIe в системах с поддержкой CAPI. Обычно на таких машинах имеются выделенные слоты PCIe с поддержкой CAPI. Поскольку на процессор POWER8 приходится только один CAPP, количество возможных блоков CAPI определяется количеством процессоров POWER8, независимо от количества слотов PCIe. В некоторых системах POWER8 IBM использует двухчиповые модули, тем самым удваивая емкость CAPI на сокет процессора.
Традиционные транзакции между устройством PCIe и ЦП могут занимать около 20 000 операций, тогда как подключенное устройство CAPI будет использовать только около 500, что значительно сокращает задержку и эффективно увеличивает пропускную способность за счет снижения накладных расходов на операции. [7]
Общая пропускная способность порта CAPI определяется базовой технологией PCIe 3.0 x16, достигая пика около 16 ГБ/с в обоих направлениях. [8]
CAPI-2 — это постепенная эволюция технологии, представленной в процессоре IBM POWER9. [8] Он работает поверх PCIe Gen 4, что фактически удваивает производительность до 32 ГБ/с. Он также вводит некоторые новые функции, такие как поддержка DMA и Atomics от ускорителя.
Технология, лежащая в основе OpenCAPI, регулируется Консорциумом OpenCAPI , основанным в октябре 2016 года AMD , Google , IBM , Mellanox и Micron совместно с партнёрами Nvidia , Hewlett Packard Enterprise , Dell EMC и Xilinx . [9]
OpenCAPI, ранее New CAPI или CAPI 3.0 , не накладывается поверх PCIe и, следовательно, не будет использовать слоты PCIe. В CPU POWER9 от IBM он будет использовать средство ввода-вывода Bluelink 25G , которое он разделяет с NVLink 2.0 , достигая пика в 50 ГБ/с. [10] OpenCAPI не нуждается в блоке PSL (требуемом для CAPI 1 и 2) в ускорителе, поскольку он не накладывается поверх PCIe, а использует свой собственный протокол транзакций. [11]
Планируется для будущего чипа после общедоступной версии POWER9. [12]
Интерфейс памяти OpenCAPI (OMI) — это технология последовательного подключения RAM на основе OpenCAPI, обеспечивающая низкую задержку и высокую пропускную способность соединения для основной памяти. OMI использует микросхему контроллера на модулях памяти, что позволяет использовать технологически независимый подход к тому, что используется на модулях, будь то DDR4 , DDR5 , HBM или энергонезависимая RAM класса хранения . Таким образом, процессор на основе OMI может изменять тип RAM путем замены модулей памяти.
Последовательное соединение занимает меньше места на кристалле ЦП для интерфейса, поэтому потенциально позволяет разместить их больше по сравнению с использованием обычной памяти DDR.
OMI реализован в процессоре IBM Power10 , который имеет 8 контроллеров памяти OMI на чипе, что позволяет использовать 4 ТБ ОЗУ и пропускную способность памяти 410 ГБ/с на процессор. Эти модули DDIMM (дифференциальный динамический модуль памяти) включают контроллер OMI и буфер памяти и могут адресовать отдельные чипы памяти для обеспечения отказоустойчивости и избыточности.
Microchip Technology производит контроллер OMI на DDIMM. Их память SMC 1000 OpenCAPI описывается как «следующий шаг на рынке, принимающий последовательно подключенную память». [13]
Наследие
Современный
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )