Coherent Accelerator Processor Interface ( CAPI ), es un estándar de bus de expansión de procesador de alta velocidad para su uso en computadoras de grandes centros de datos , inicialmente diseñado para colocarse sobre PCI Express , para conectar directamente unidades centrales de procesamiento (CPU) a aceleradores externos como unidades de procesamiento gráfico (GPU), ASIC , FPGA o almacenamiento rápido. [1] [2] Ofrece conectividad de acceso directo a memoria de alta velocidad y baja latencia entre dispositivos de diferentes arquitecturas de conjuntos de instrucciones .
El escalamiento del rendimiento tradicionalmente asociado con la Ley de Moore (que data de 1965) comenzó a disminuir alrededor de 2004, cuando tanto la arquitectura Prescott de Intel como el procesador Cell de IBM avanzaron hacia una frecuencia operativa de 4 GHz. En este caso, ambos proyectos se toparon con un muro de escalamiento térmico, por lo que los problemas de extracción de calor asociados con mayores aumentos en la frecuencia operativa superaron ampliamente las ganancias derivadas de tiempos de ciclo más cortos.
Durante la década siguiente, pocos productos de CPU comerciales superaron los 4 GHz, y la mayoría de las mejoras de rendimiento provenían ahora de microarquitecturas mejoradas de manera incremental, una mejor integración de sistemas y una mayor densidad de cómputo, esto en gran medida en la forma de agrupar una mayor cantidad de núcleos independientes en la misma matriz, a menudo a expensas de la frecuencia operativa máxima (el Xeon E7-8890 de 24 núcleos de Intel de junio de 2016 tiene una frecuencia operativa base de solo 2,2 GHz, para operar dentro de las limitaciones de un presupuesto de consumo de energía y enfriamiento de 165 W de un solo socket).
En los casos en que se han logrado grandes mejoras de rendimiento, a menudo se asociaron con unidades de cómputo cada vez más especializadas, como unidades GPU agregadas al chip del procesador o aceleradores externos basados en GPU o FPGA. En muchas aplicaciones, los aceleradores tienen problemas con las limitaciones del rendimiento de la interconexión (ancho de banda y latencia) o con limitaciones debidas a la arquitectura de la interconexión (como la falta de coherencia de la memoria). Especialmente en el centro de datos, mejorar la interconexión se volvió primordial para avanzar hacia una arquitectura heterogénea en la que el hardware se adapta cada vez más a cargas de trabajo de cómputo específicas.
CAPI fue desarrollado para permitir que las computadoras adjunten aceleradores especializados de manera más fácil y eficiente. Los trabajos que requieren un uso intensivo de la memoria y de los cálculos, como las multiplicaciones de matrices para redes neuronales profundas, se pueden descargar en plataformas compatibles con CAPI. [3] Fue diseñado por IBM para su uso en sus sistemas basados en POWER8 que llegaron al mercado en 2014. Al mismo tiempo, IBM y varias otras empresas fundaron la OpenPOWER Foundation para construir un ecosistema en torno a las tecnologías basadas en Power , incluida CAPI. En octubre de 2016, varios socios de OpenPOWER formaron el Consorcio OpenCAPI junto con el diseñador de GPU y CPU AMD y los diseñadores de sistemas Dell EMC y Hewlett Packard Enterprise para difundir la tecnología más allá del alcance de OpenPOWER e IBM. [4]
El 1 de agosto de 2022, las especificaciones y los activos de OpenCAPI se transfirieron al Consorcio Compute Express Link (CXL). [5]
CAPI se implementa como una unidad funcional dentro de la CPU, llamada Coherent Accelerator Processor Proxy (CAPP) con una unidad correspondiente en el acelerador llamada Power Service Layer (PSL). Las unidades CAPP y PSL actúan como un directorio de caché para que el dispositivo conectado y la CPU puedan compartir el mismo espacio de memoria coherente, y el acelerador se convierte en una Accelerator Function Unit (AFU), un par de otras unidades funcionales integradas en la CPU. [6] [7]
Dado que la CPU y la AFU comparten el mismo espacio de memoria, se pueden lograr bajas latencias y altas velocidades, ya que la CPU no tiene que realizar traducciones de memoria ni cambios de memoria entre la memoria principal de la CPU y los espacios de memoria del acelerador. Una aplicación puede hacer uso del acelerador sin controladores de dispositivos específicos, ya que todo está habilitado por una extensión de kernel CAPI general en el sistema operativo host. La CPU y la PSL pueden leer y escribir directamente en las memorias y registros de cada una, según lo demande la aplicación.
CAPI se superpone a PCIe Gen 3 , utilizando 16 líneas PCIe, y es una funcionalidad adicional para las ranuras PCIe en sistemas habilitados para CAPI. Por lo general, hay ranuras PCIe habilitadas para CAPI designadas en dichas máquinas. Dado que solo hay un CAPP por procesador POWER8, la cantidad de unidades CAPI posibles está determinada por la cantidad de procesadores POWER8, independientemente de la cantidad de ranuras PCIe que haya. En ciertos sistemas POWER8, IBM utiliza módulos de chip dual, duplicando así la capacidad CAPI por zócalo de procesador.
Las transacciones tradicionales entre un dispositivo PCIe y una CPU pueden requerir alrededor de 20.000 operaciones, mientras que un dispositivo conectado a CAPI solo utilizará alrededor de 500, lo que reduce significativamente la latencia y aumenta efectivamente el ancho de banda debido a la disminución de la sobrecarga de operaciones. [7]
El ancho de banda total de un puerto CAPI está determinado por la tecnología PCIe 3.0 x16 subyacente, con un máximo de aproximadamente 16 GB/s, bidireccional. [8]
CAPI-2 es una evolución incremental de la tecnología introducida con el procesador IBM POWER9. [8] Se ejecuta sobre PCIe Gen 4, que duplica efectivamente el rendimiento a 32 GB/s. También presenta algunas características nuevas como soporte para DMA y Atomics desde el acelerador.
La tecnología detrás de OpenCAPI está gobernada por el Consorcio OpenCAPI , fundado en octubre de 2016 por AMD , Google , IBM , Mellanox y Micron junto con los socios Nvidia , Hewlett Packard Enterprise , Dell EMC y Xilinx . [9]
OpenCAPI, anteriormente New CAPI o CAPI 3.0 , no está superpuesto a PCIe y, por lo tanto, no utilizará ranuras PCIe. En la CPU POWER9 de IBM, utilizará la función de E/S Bluelink 25G que comparte con NVLink 2.0 , con un pico de 50 GB/s. [10] OpenCAPI no necesita la unidad PSL (necesaria para CAPI 1 y 2) en el acelerador, ya que no está superpuesto a PCIe, sino que utiliza su propio protocolo de transacción. [11]
Planeado para un chip futuro después de la disponibilidad general de POWER9. [12]
La interfaz de memoria OpenCAPI (OMI) es una tecnología de memoria RAM conectada en serie basada en OpenCAPI que proporciona una conexión de baja latencia y alto ancho de banda para la memoria principal. OMI utiliza un chip controlador en los módulos de memoria que permite un enfoque independiente de la tecnología en lo que respecta a lo que se utiliza en los módulos, ya sea DDR4 , DDR5 , HBM o RAM no volátil de clase de almacenamiento . Por lo tanto, una CPU basada en OMI puede cambiar el tipo de RAM cambiando los módulos de memoria.
Una conexión en serie utiliza menos espacio para la interfaz en la matriz de la CPU, lo que potencialmente permite más de ellos en comparación con el uso de la memoria DDR común.
La OMI se implementa en la CPU Power10 de IBM , que tiene 8 controladores de memoria OMI en el chip, lo que permite 4 TB de RAM y 410 GB/s de ancho de banda de memoria por procesador. Estos módulos DDIMM (módulo de memoria dinámica diferencial) incluyen un controlador OMI y un búfer de memoria, y pueden direccionar chips de memoria individuales para fines de tolerancia a fallas y redundancia.
Microchip Technology fabrica el controlador OMI en las memorias DDIMM. Su memoria SMC 1000 OpenCAPI se describe como "el siguiente paso en el mercado en la adopción de la memoria conectada en serie". [13]
Legado
Contemporáneo
{{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace )