Intel detalla CXL: así funciona el rival de NVLink para sus gráficas
Aunque ya hablamos de CXL (Compute Express Link) hace algunos meses, en el Intel Interconnect Day 2019 celebrado ayer noche, los de Santa Clara explicaron más en profundidad este protocolo, donde ahora podemos entender de una mejor manera cómo piensan interconectar CPUs, pero sobre todo sus nuevas GPU. Además, ofrecieron una imagen general de hacia dónde se mueve el sector de alta computación y cómo afectará su guerra con Gen-Z.
¿Qué es Intel CXL y para que será usado?
No viene mal refrescar algo la memoria para poner todo en contexto y así comprender mejor de lo que hablaremos a continuación. CLX es un protocolo que engloba tres aspectos fundamentales: E/S, memoria e interfaz de coherencia.
Estos tres puntos vistos como protocolos permiten una interconexión eficiente y de alta velocidad para mejorar (en cuanto a latencia) a la plataforma en la que se encuentre y la CPU, donde también mejora a la GPU, FPGA y otros aceleradores específicos.
La tecnología (de momento) se basa en la infraestructura PCI Express, aprovechando la interfaz física y eléctrica PCIe 5.0 (especificación CXL 1.0) para los tres aspectos fundamentales arriba comentados.
Con esto en mente, podemos entender el diagrama general (captura superior) que Intel ha presentado para intentar hacer comprender donde ingresaría dicho protocolo CXL dentro de las infraestructuras actuales.
PCIe Gen5 como base principal, PCIe Gen6 como el futuro
Aunque como hemos dicho CXL se basa en PCIe 5.0 para la interconexión de aceleradores (GPUs, por ejemplo), Intel asegura que la computación futura necesitará de una comunicación de baja latencia con grupos de memoria coherentes en lugar de aislados por PCIe, y ahí es donde entraría CXL.
En su inicio usará PCIe Gen5 de 32 Gbps, pero este ancho de banda se quedará corto en apenas unos pocos años, por lo que las miras ya están puestas en la próxima generación PCIe Gen6 por su mayor ancho de banda, donde compartirá con la generación anterior tres sub-protocolos principales:
- CXL.io -> permitirá la entrada y salida de datos de PCIe
- CLX.caché -> permite a los aceleradores (GPU u otros sistemas) acceder de forma directa a la caché de la CPU mediante líneas de caché de 64 bytes.
- CXL.memory -> permite a la CPU acceder al dispositivo y acceder a la memoria del dispositivo.
Dependiendo del protocolo que se use la CPU y el dispositivo interconectado variarán entre preguntar y responder a las solicitudes, siendo este proceso totalmente transparente.
Esto es importante, ya que desde el punto de vista que nos interesa (interconexión CPU-GPU) significa un acceso directo entre caché y HBM, por ejemplo, pero, sobre todo, con una baja latencia.
CXL es asimétrico y permite un ecosistema abierto
A diferencia de los enlaces y rings actuales, donde el acceso a la caché y su almacenamiento mediante QPI o UPI son simétricos, CXL rompe con la tendencia de Intel actual y ello conllevará cambios futuros en sus CPUs a nivel interno que deben ser abordados en las próximas arquitecturas (si no lo están ya).
Por ello, CXL será un protocolo asimétrico y abierto, permitiendo que múltiples dispositivos se crucen en una sola plataforma.
Un ejemplo escalable sería desde el punto de vista de los servidores, donde con CPUs Intel no se tendría que usar UPI, mientras que mantendrían CCIX y se adopta CXL, permitiendo que cualquier dispositivo, por ejemplo, acceda a la memoria de manera coherente sin pasar por la CPU, reduciendo la latencia que ello conlleva.
Esto le da una ventaja muy clara de cara a su primera y segunda GPU Xe, ya que permite que la memoria que incluya (HBM, GDDR6 o XPoint) acceda directamente a la información a su máxima velocidad y sin las limitaciones de CPU actuales, eliminando un posible cuello de botella.
Esto supone todo un nuevo sistema de interconexión, un ecosistema global que podría aceptar hardware de diversa índole sin penalizaciones de rendimiento. Desde GPUs, hasta FPGA, chiplets, NIC, sistemas de aprendizaje profundo etc …
De momento se espera que CXL haga acto de presencia como pronto en 2021, dejando madurar a su GPU Xe en el mercado y preparando el camino para la escalabilidad de esta en PCIe Gen4, el cual ni siquiera ha debutado.