El problema fundamental que aborda Strix Halo es la reconciliación de las demandas de memoria inherentemente opuestas de las unidades de procesamiento central (CPU) y las unidades de procesamiento gráfico (GPU) dentro de un único System-on-Chip (SoC) para dispositivos móviles. Las CPU típicamente requieren baja latencia para accesos a memoria, ya que sus cargas de trabajo son a menudo sensibles a la latencia y tienen requisitos de ancho de banda moderados. Por el contrario, las GPU son conocidas por sus cargas de trabajo altamente paralelizadas y con gran consumo de ancho de banda, siendo más tolerantes a la latencia.
La integración de ambas en un SoC móvil añade capas de complejidad: la necesidad de alta capacidad de memoria para multitarea, un bajo consumo de energía para la autonomía del dispositivo y un costo de fabricación competitivo. La solución de AMD, con su Infinity Cache y el subsistema de memoria LPDDR5X, representa un compromiso de diseño que prioriza el rendimiento gráfico, un factor clave en el segmento de mercado al que apunta Strix Halo. Este enfoque refleja una tendencia creciente en la arquitectura de SoCs donde la GPU se convierte en un ciudadano de primera clase, dictando gran parte del diseño del subsistema de memoria.
Arquitectura del Sistema
La arquitectura de memoria de Strix Halo se centra en un subsistema LPDDR5X de alto ancho de banda y una Infinity Cache (MALL) de 32 MB que actúa como la caché de último nivel de la GPU. La GPU se divide en dos Shader Arrays, cada uno con 256 KB de caché L1 y un L2 de 2 MB compartido por toda la GPU. La Infinity Cache, aunque con una latencia ligeramente superior a la de las tarjetas discretas de AMD, proporciona un aumento significativo de capacidad de caché para la iGPU. Los tests de ancho de banda Vulkan sugieren un camino de 512B/ciclo a la interconexión, con cada uno de los ocho endpoints de Infinity Fabric de la GPU manejando 64B/ciclo.
La CPU de Strix Halo incorpora 16 núcleos Zen 5 distribuidos en dos Core Complex Dies (CCDs), interconectados al die de I/O mediante TSMC InFO_oS, una tecnología de empaquetado avanzado que elimina la necesidad de SerDes y sus latencias asociadas. Cada CCD tiene un ancho de banda de 32B/ciclo en ambas direcciones hacia el sistema. La coherencia de caché entre CCX se gestiona en Coherent Stations (CS) ubicadas antes de los controladores de memoria, con tráfico de memoria entrelazado a través de canales de memoria e instancias de CS basadas en la dirección física. Las latencias cross-CCX en Strix Halo son más altas (100-120 ns) que en sistemas de escritorio (80-90 ns), lo que sugiere que cualquier beneficio de latencia del empaquetado avanzado se ve enmascarado por la latencia general del LPDDR5X y la priorización de la GPU. El sistema soporta APIs de Shared Virtual Memory (SVM) de OpenCL, permitiendo un comportamiento de zero-copy entre CPU y GPU, aunque con algunas peculiaridades en el uso de Infinity Cache para memoria asignada por el host.
Flujo de Acceso a Memoria de la GPU
- 1 GPU Shader Array Solicitud de datos desde la GPU.
- 2 L1 Cache (256KB) Primer nivel de caché por Shader Array.
- 3 L2 Cache (2MB) Caché de segundo nivel para toda la GPU.
- 4 Infinity Cache (32MB MALL) Caché de último nivel de la GPU, gestiona accesos a direcciones físicas.
- 5 Infinity Fabric Interconexión de alta velocidad.
- 6 LPDDR5X DRAM Memoria principal del sistema.
Flujo de Acceso a Memoria de la CPU (Cross-CCX)
- 1 CPU Core (Zen 5) Solicitud de datos desde un núcleo.
- 2 L1/L2/L3 Cache Jerarquía de caché local del CCX.
- 3 InFO_oS Interconnect Conexión entre CCD y IO die.
- 4 Coherent Station (CS) Mantiene coherencia de caché y enruta solicitudes.
- 5 Memory Controller Gestiona el acceso a la DRAM.
- 6 LPDDR5X DRAM Memoria principal del sistema.
| Capa | Tecnología | Justificación |
|---|---|---|
| storage | Infinity Cache (MALL) | Caché de último nivel para la GPU, optimizada para ancho de banda. Su comportamiento es configurable por software. vs mayor L2 en GPU, caché unificada CPU/GPU 32 MB de capacidad, latencia ligeramente superior a implementaciones discretas. |
| storage | LPDDR5X DRAM | Memoria principal del sistema, seleccionada por su alto ancho de banda y eficiencia energética, crucial para cargas de trabajo de GPU. vs DDR5, HBM Configuración de alto ancho de banda, pero con latencia base elevada. |
| compute | AMD Zen 5 Cores | Núcleos de CPU de alto rendimiento, organizados en CCDs, que requieren baja latencia de memoria. 16 núcleos distribuidos en dos CCDs. |
| compute | AMD RDNA3.5 iGPU | Unidad de procesamiento gráfico integrada, diseñada para alto throughput y consumo intensivo de ancho de banda. Dos Shader Arrays, L1/L2 caches, utiliza Infinity Cache como L3. |
| networking | Infinity Fabric | Interconexión de alta velocidad entre los componentes del SoC (CPU, GPU, I/O, memoria). Endpoints de 64B/ciclo para la GPU, 32B/ciclo para los CCDs. |
| orchestration | TSMC InFO_oS Packaging | Tecnología de empaquetado avanzado para la interconexión de CCDs al die de I/O, buscando reducir latencia y consumo de energía. vs SerDes sobre PCB (GMI-Narrow) |
Trade-offs
Ganancias
- ▲ Ancho de banda de GPU
- ▲ Capacidad de caché de GPU
- ▲ Comportamiento zero-copy CPU-GPU
- ▲ Rendimiento general en cargas de trabajo de gaming móvil
Costes
- ▲ Latencia de CPU bajo carga de GPU
- ▲ Latencia cross-CCX de CPU
- △ Uso de Infinity Cache para accesos de CPU
Fundamentos Teóricos
El desafío de balancear las demandas de memoria de CPU y GPU en un sistema unificado se remonta a los principios de diseño de arquitecturas heterogéneas. Conceptos como la coherencia de caché en sistemas multiprocesador, explorados en trabajos seminales como 'Cache Coherence in Shared-Memory Multiprocessors' (Goodman, 1983) o 'The Stanford DASH Multiprocessor' (Lenoski et al., 1992), son directamente aplicables a la gestión de accesos de CPU y GPU a la memoria compartida. La priorización de ancho de banda sobre latencia para la GPU es una aplicación práctica de los principios de diseño de memoria para cargas de trabajo de computación paralela masiva, donde el throughput es el métrico dominante, como se discute en 'GPU Computing Gems' (Hwu, 2011).
La implementación de una caché de último nivel (Infinity Cache) dedicada principalmente a la GPU, pero con capacidad de interactuar con el resto del sistema, refleja los desafíos de diseño de cachés multinivel y jerarquías de memoria en sistemas heterogéneos. La gestión de la política de caché mediante software (drivers) para optimizar el uso de la Infinity Cache según el contexto (primer plano/segundo plano) es un ejemplo de cómo los principios de gestión de recursos de sistemas operativos se extienden al hardware para optimizar el rendimiento y la eficiencia energética, un área de investigación activa en la optimización de sistemas heterogéneos.