La CPU NVIDIA Vera, con su núcleo Olympus, representa un esfuerzo significativo en el diseño de procesadores de servidor Arm de alto rendimiento. Resuelve el problema fundamental de la computación de maximizar el rendimiento por núcleo y el ancho de banda de memoria para cargas de trabajo intensivas, especialmente aquellas con patrones de acceso a datos irregulares o dependencias de latencia. La relevancia actual radica en la creciente demanda de CPUs de servidor optimizadas para cargas de trabajo de IA y HPC, donde la eficiencia energética y el rendimiento de memoria son críticos.

Históricamente, la arquitectura de CPU ha evolucionado desde diseños simples in-order hasta complejos procesadores out-of-order con múltiples niveles de caché y técnicas avanzadas de predicción. Vera se inscribe en esta tradición, incorporando innovaciones como la predicción de valores y un prefetcher de grafos, que buscan mitigar las latencias inherentes a las operaciones de memoria y las dependencias de datos, un desafío constante en el rendimiento de la CPU. La competencia en el espacio de servidores, dominado por x86, impulsa la innovación en arquitecturas alternativas como Arm, buscando ventajas en eficiencia y rendimiento específico de carga de trabajo.

Arquitectura del Sistema

El núcleo Olympus de Vera es un diseño Arm v9.2 out-of-order de 10-wide, capaz de decodificar diez instrucciones por ciclo y manejar hasta dos saltos tomados por ciclo. Incorpora un predictor de saltos neural, predicción de valores, renombramiento de memoria y una gran ventana de instrucciones. Dispone de seis pipes SVE de 128 bits, cuatro pipes de carga y dos de almacenamiento. Cada núcleo tiene 96 KB de caché L1 de datos y 2 MB de caché L2 privada, con un acceso de aproximadamente 10 ciclos. Ochenta y ocho de estos núcleos están interconectados por un "coherency fabric" de 3.4 TB/s y una caché de último nivel (LLC) distribuida de 164 MB.

Una característica distintiva es la predicción de valores, que permite a las instrucciones dependientes continuar su ejecución si se predice correctamente un resultado, reduciendo el estancamiento por operaciones de alta latencia. El prefetcher de grafos implementa una idea de productor-consumidor para anticipar accesos a memoria en estructuras de datos complejas. El subsistema de memoria utiliza ocho interfaces LPDDR5X, proporcionando hasta 1.2 TB/s de ancho de banda y una capacidad de hasta 1.5 TB, con un consumo de energía reportado de 50 vatios. La arquitectura de multithreading espacial de NVIDIA busca mejorar el determinismo, el aislamiento y la calidad de servicio mediante la partición estática de recursos entre hilos lógicos, en contraste con el SMT tradicional que comparte recursos de forma más oportunista.

CapaTecnologíaJustificación
compute NVIDIA Olympus Core (Arm v9.2) Núcleo de procesamiento principal, diseñado para alto rendimiento out-of-order con características como predicción de valores y prefetcher de grafos. vs x86-64 (Intel Xeon, AMD EPYC), Otros diseños Arm (Neoverse V2) 10-wide out-of-order, 2MB L2 cache per core, 96KB L1 data cache, 88 cores per monolithic die.
storage LPDDR5X Memory Subsystem Proporciona alto ancho de banda y baja latencia a la CPU, crucial para cargas de trabajo intensivas en memoria. vs DDR5 (utilizado en x86 y otros Arm servers) 8 interfaces LPDDR5X-9600, hasta 1.2 TB/s de ancho de banda, hasta 1.5 TB de capacidad.
networking Scalable Coherent Fabric Interconexión de alta velocidad entre los núcleos y la LLC distribuida, asegurando coherencia de caché. vs Mesh NoC (Intel Xeon), Infinity Fabric (AMD EPYC) 3.4 TB/s de ancho de banda de coherencia.

Trade-offs

Ganancias
  • Ancho de banda de memoria
  • Rendimiento por core (SPEC Integer)
  • Determinismo y aislamiento (Spatial Multithreading)
Costes
  • Flexibilidad de configuración NUMA
  • Latencia de transición SMT
  • Capacidad de memoria máxima (vs DIMMs tradicionales)

Fundamentos Teóricos

La predicción de valores, una característica clave del núcleo Olympus, ha sido un área de investigación activa en la arquitectura de computadoras desde la década de 1990. Trabajos seminales como "Value Prediction" de Lipasti, Shen y Evans (1996) exploraron cómo predecir los valores de los operandos antes de que se calculen, permitiendo la ejecución especulativa de instrucciones dependientes y mitigando las burbujas del pipeline. Aunque no se ha adoptado ampliamente en CPUs comerciales debido a su complejidad y los desafíos en la precisión de la predicción, su inclusión en Olympus sugiere un avance en su viabilidad práctica.

De manera similar, los prefetchers de datos, incluyendo el prefetcher de grafos de Vera, se basan en décadas de investigación para reducir las latencias de memoria. Conceptos como el "Data-Dependent Prefetching" y los prefetchers basados en patrones han sido estudiados para mejorar el rendimiento en cargas de trabajo con accesos a memoria irregulares. La idea de un predictor de saltos neural, aunque NVIDIA lo presenta como novedoso, tiene precedentes en los predictores basados en perceptrones, como los implementados por AMD en microarquitecturas como Piledriver y Zen 1, como se describe en trabajos sobre predicción de saltos adaptativa.