El lanzamiento de la CPU de servidor NVIDIA Vera, con su núcleo Olympus basado en Arm v9.2, representa un hito significativo en la estrategia de NVIDIA para expandir su dominio más allá de las GPUs. Este artículo técnico examina la arquitectura de Vera, destacando sus innovaciones como la predicción de valores y el prefetcher de grafos, y las contrasta con las afirmaciones de su whitepaper. El problema fundamental que Vera busca resolver es el de ofrecer una alternativa de CPU de alto rendimiento para cargas de trabajo de servidor, particularmente aquellas con requisitos intensivos de ancho de banda de memoria y baja latencia entre núcleos, que tradicionalmente han sido dominadas por arquitecturas x86.
La relevancia actual de este desarrollo radica en la creciente demanda de CPUs especializadas para cargas de trabajo de IA y computación de alto rendimiento, donde la eficiencia energética y el rendimiento por vatio son críticos. NVIDIA, con su experiencia en aceleradores, busca aplicar principios de diseño de sistemas distribuidos y optimización de hardware a nivel de CPU para crear una plataforma coherente. La aparición de arquitecturas Arm en el espacio de servidores desafía el status quo, impulsando la innovación en el diseño de microarquitecturas y subsistemas de memoria.
Arquitectura del Sistema
La CPU Vera de NVIDIA se basa en el núcleo Olympus, un diseño Arm v9.2 con una microarquitectura out-of-order de 10-wide. Incorpora características avanzadas como un front-end capaz de decodificar diez instrucciones por ciclo y manejar hasta dos branches tomados por ciclo, un predictor de ramas neuronal, predicción de valores (value prediction), y un prefetcher de grafos. Cada núcleo dispone de 2 MB de caché L2 privada, y el SoC integra una caché de último nivel (LLC) compartida de 164 MB, todo interconectado por un tejido de coherencia (coherency fabric) de 3.4 TB/s.
El subsistema de memoria es un componente clave, con ocho interfaces LPDDR5X que proporcionan hasta 1.2 TB/s de ancho de banda. Esta configuración está diseñada para satisfacer las demandas de cargas de trabajo intensivas en memoria. A nivel de SoC, Vera presenta una topología NUMA de un dominio por socket, simplificando la gestión de memoria y el scheduling del sistema operativo, en contraste con las configuraciones multi-NUMA más granulares que pueden encontrarse en sistemas x86 basados en chiplets. La implementación de Spatial Multithreading (SMT) en Olympus busca mejorar el determinismo, el aislamiento y la calidad de servicio (QoS) mediante el particionamiento de recursos, a diferencia del SMT tradicional que comparte recursos de forma más oportunista. Sin embargo, el whitepaper no detalla la estrategia de particionamiento de recursos out-of-order como el reorder buffer o los archivos de registro, ni el impacto en el rendimiento SMT.
| Capa | Tecnología | Justificación |
|---|---|---|
| compute | NVIDIA Olympus (Arm v9.2) | Núcleo de procesamiento principal para cargas de trabajo de servidor, diseñado para alto rendimiento y eficiencia en tareas intensivas en CPU y memoria. vs x86 (Intel Xeon, AMD EPYC), Arm (Ampere Altra, AWS Graviton) 10-wide out-of-order microarchitecture, value prediction, graph prefetcher, neural branch predictor, 2MB private L2 cache per core, 164MB shared LLC. |
| storage | LPDDR5X | Subsistema de memoria principal, proporcionando un alto ancho de banda (hasta 1.2 TB/s) y eficiencia energética para alimentar los núcleos Olympus. vs DDR5 (utilizado en x86), HBM (para aceleradores) Ocho interfaces LPDDR5X-9600, hasta 1.5 TB de capacidad. |
| networking | Scalable Coherent Fabric | Interconexión interna de alta velocidad y baja latencia para la coherencia de caché y comunicación entre los 88 núcleos en el die monolítico. vs Mesh NoC (Intel Xeon), Infinity Fabric (AMD EPYC) 3.4 TB/s de ancho de banda para coherencia. |
Fundamentos Teóricos
La predicción de valores (value prediction) es un concepto que ha sido objeto de investigación en la arquitectura de computadoras desde la década de 1990. Trabajos seminales como los de Lipasti, Shen y Patt (1996) exploraron cómo predecir los valores de los operandos para reducir las dependencias de datos y mejorar el paralelismo a nivel de instrucción (ILP). La implementación de NVIDIA en Olympus, similar a la de Apple, sugiere un enfoque más amplio que las implementaciones limitadas vistas en otras arquitecturas, lo que podría tener un impacto significativo en el rendimiento de cargas de trabajo con dependencias de datos complejas.
El prefetcher de grafos (graph prefetcher) se relaciona con la optimización del acceso a memoria para estructuras de datos irregulares, un desafío bien conocido en la computación. Aunque no es una idea nueva, con mecanismos similares como el Data-Dependent Prefetcher de Intel, la implementación de NVIDIA busca abordar cadenas de dependencias más complejas. Los predictores de ramas neuronales (neural branch predictors) también tienen raíces académicas, con el predictor basado en perceptrones de Jiménez y Lin (2001) siendo un ejemplo temprano de cómo las técnicas de aprendizaje automático pueden mejorar la precisión de la predicción de ramas, un componente crítico para el rendimiento de CPUs out-of-order.