Grace Hopper Unified Memory ofrece 900 GB/s de ancho de banda coherente CPU–GPU
Por qué las plataformas NVLink/NVSwitch cambian las reglas de la memoria, la localidad y la escalabilidad en comparación con los sistemas tradicionales de GPU conectados por PCIe
El límite entre la CPU y la GPU solía ser un abismo. Los datos vivían en la DRAM del host, los modelos y las activaciones en la HBM de la GPU, y todo lo que cruzaba la brecha pagaba el peaje de un enlace PCIe: decenas de gigabytes por segundo y latencias de microsegundos que castigaban el acceso irregular y el intercambio fino. Con Grace Hopper y el ecosistema más amplio de NVLink/NVSwitch, ese límite se comprime en un puente coherente de alta capacidad de ancho de banda. Hasta aproximadamente 900 GB/s de ancho de banda coherente CPU–GPU fluyen a través de NVLink-C2C dentro de un superchip Grace Hopper, más de un orden de magnitud más allá de un enlace PCIe 5.0 x16 por dirección, reformulando cómo los desarrolladores piensan sobre la ubicación de la memoria, NUMA y la escalabilidad.
Esto no es “una memoria para dominarlos a todos.” Es una evolución práctica: espacios de direcciones unificadas, carga/almacenamiento coherente CPU–GPU dentro de un paquete, y acceso a nivel de tejido entre GPUs que es lo suficientemente rápido como para hacer que las lecturas remotas sean una opción de primera clase. La física aún recompensa la localidad, pero las penalizaciones por no ser locales son menores y más predecibles, especialmente cuando entiendes la mecánica de CUDA Unified Memory.
Dos arquitecturas, un objetivo: mantener los datos cerca del cálculo
El modelo discreto clásico es simple de describir y notoriamente tedioso de optimizar: las CPUs se conectan a DDR o LPDDR, las GPUs integran HBM en paquete, y un interconector PCIe conecta los dos lados. Las GPUs de clase Hopper proporcionan aproximadamente 3 TB/s de ancho de banda HBM3 por dispositivo, con 80–96 GB de capacidad. La memoria del host ofrece una capacidad mucho mayor pero un menor ancho de banda; por ejemplo, la LPDDR5X de clase Grace sostiene más de 500 GB/s de agregado. No hay coherencia de caché de hardware entre CPU y GPU en este modelo: cada lado mantiene sus propios cachés y los datos se mueven mediante DMA explícito (cudaMemcpy) o migraciones en el nivel de página al usar Unified Memory.
Las plataformas de memoria unificada reconfiguran el panorama. En un superchip Grace Hopper, NVLink-C2C une el complejo CPU y la GPU con un protocolo coherente y un ancho de banda muy alto: hasta aproximadamente 900 GB/s para el tráfico CPU–GPU, con latencia mucho más baja que PCIe. Eso permite un intercambio de carga/almacenamiento granular entre CPU y GPU sin copias explícitas. A escala de nodo, NVLink y NVSwitch interconectan GPUs para que cada dispositivo pueda acceder a la HBM del par a alta velocidad de ancho de banda y latencia relativamente uniforme, con soporte para cargas/almacenamientos remotos y atómicos. La memoria sigue estando físicamente conectada a cada GPU, pero el software puede tratarla como un espacio de direcciones global con características NUMA en lugar de un límite duro.
En ambos mundos, el objetivo general no cambia: mantén los datos críticos cerca de los motores de cálculo que más los utilizan. La diferencia es cuán castigador es cuando no puedes.
Memoria y coherencia: de límites duros a niveles NUMA
Los sistemas conectados por PCIe clásico trazan una línea dura entre la RAM de la CPU y la HBM de cada GPU. No existe coherencia de caché hardware CPU–GPU, los controladores y tiempos de ejecución deben vaciar, copiar o migrar datos explícitamente, y las líneas de caché obsoletas son problema del desarrollador si obtienen un orden incorrecto. Los efectos NUMA se acumulan rápidamente: los hosts de múltiples sockets imponen sus propios niveles, y las topologías PCIe añaden asimetrías a través de interruptores y complejos raíz.
Grace Hopper suaviza la línea dentro del paquete. La CPU Grace y la GPU Hopper comparten acceso coherente a través de NVLink-C2C. Las tablas de páginas están coordinadas para que cuando la CPU toca datos residentes en la GPU, o la GPU toca datos residentes en la CPU, el acceso tenga semánticas coherentes de carga/almacenamiento. Eso abre la puerta a estructuras ricas en punteros compartidas a través de fases CPU/GPU sin coreografía de copias.
A través de GPUs, la coherencia se detiene en el límite L2. NVLink y NVSwitch no hacen que el caché de cada GPU sea coherente con cada otro. En su lugar, el tejido ofrece acceso remoto de alta capacidad y atómicos, mientras que CUDA’s Unified Memory (y bibliotecas como NVSHMEM) orquestan la migración y el mapeo. El resultado es una jerarquía NUMA en lugar de una sola piscina uniforme:
- La GPU HBM local sigue siendo el nivel de mayor ancho de banda y menor latencia para los núcleos.
- DDR/LPDDR CPU local es el nivel natural para el código del host.
- El acceso cruzado CPU–GPU a través de NVLink-C2C es más lento que el local, pero dramáticamente más rápido y de menor latencia que PCIe.
- La GPU HBM entre pares a través de NVSwitch es alcanzable a alta capacidad de ancho de banda con latencia casi uniforme, aunque todavía más lenta que HBM local.
Tratar estos niveles explícitamente—en lugar de asumir que “unificado” significa “uniforme”—es clave para un rendimiento consistente.
Interconexiones y topología: techos PCIe vs. tejidos NVLink
PCIe establece la línea base. Un enlace PCIe Gen5 x16 sostiene aproximadamente 63 GB/s por dirección (Gen4 ~31.5 GB/s; Gen6 ~128 GB/s). Las latencias están en los microsegundos para iniciar DMA, y los saltos de interruptor añaden tanto latencia como contención. Los servidores con múltiples GPUs suelen conectar de dos a ocho GPUs por uno o más interruptores PCIe por socket; bajo carga, es fácil saturar los enlaces ascendentes a un complejo raíz, y el tráfico que cruza sockets de CPU paga penalizaciones adicionales entre sockets.
NVLink y NVSwitch superan ampliamente esos techos. NVLink de generación Hopper expone hasta ~900 GB/s de ancho de banda agregado GPU–GPU por H100, con menor latencia que PCIe. Dentro de un nodo, NVSwitch construye un tejido totalmente conectado y de alta bisección para que cualquier GPU pueda alcanzar cualquier otra con latencia casi uniforme y ancho de banda completo por GPU al interruptor. El acoplamiento CPU–GPU dentro de Grace Hopper utiliza NVLink-C2C para ofrecer hasta aproximadamente 900 GB/s de ancho de banda coherente, lo suficientemente rápido como para hacer que el intercambio fino sea práctico.
Expande estas ideas, y el Sistema de Conmutador NVLink cose muchas de las nodos Grace Hopper en un único dominio lógico. Sistemas clase DGX GH200 combinan hasta 256 superchips, exponiendo un espacio de direccionamiento masivo —del orden de 144 TB de memoria agregada— que el software puede atravesar con una colocación consciente del NUMA.
CXL añade coherencia a la capa física de PCIe y está madurando rápidamente para la expansión de memoria centrada en CPU y conexión de aceleradores. En las plataformas unificadas de memoria GPU de hoy en día, NVLink/NVSwitch y NVLink-C2C llevan el peso de la coherencia GPU de alto rendimiento y el acceso a la memoria a nivel de tejido.
Memoria unificada en práctica: migración de páginas, mapeo y control
CUDA Unified Memory (UVM) une el modelo de programación. Una sola asignación cudaMallocManaged genera un puntero que tanto la CPU como la GPU pueden desreferenciar. Bajo el capó, UVM gestiona páginas, no bytes o estructuras. Cuando un procesador accede a una página que no está residente localmente, el acceso genera un fallo de página:
- El controlador puede migrar la página al procesador que accede.
- O puede establecer un mapeo remoto para que el acceso sea atendido a través de la interconexión.
La granularidad importa. En Linux, UVM opera con páginas estándar de 4 KB. Los fallos frecuentes en páginas pequeñas pueden estancar los núcleos, especialmente en sistemas PCIe donde atender un fallo cuesta microsegundos y el enlace limita el rendimiento práctico. Ahí es donde entra la política:
- cudaMemAdviseSetPreferredLocation fija regiones accedidas frecuentemente cerca de una GPU dada.
- cudaMemAdviseSetAccessedBy prepara tablas de páginas para un dispositivo sin migrar datos.
- cudaMemAdviseSetReadMostly permite la duplicación para el acceso de lectura compartido entre procesadores.
- cudaMemPrefetchAsync convierte la paginación por demanda en movimiento proactivo antes de lanzar núcleos.
En plataformas habilitadas para NVLink, el controlador cada vez prefiere más los mapeos remotos para compartir lecturas mayormente para evitar las migraciones ping-pong, y cuando las migraciones son necesarias, NVLink ofrece un ancho de banda mucho mayor y menor latencia que PCIe. Dentro de Grace Hopper, las semánticas coherentes de carga/almacenamiento ajustan aún más las interacciones CPU–GPU: estructuras de datos pesadas en punteros y fases mixtas CPU–GPU se comportan más como un proceso unificado que como un acelerador fijado a un host.
La sobrecarga es la otra mitad de la historia. Las asignaciones gestionadas pueden exceder la capacidad HBM. Las páginas frías pasan a la memoria de la CPU y migran a demanda. En PCIe, el rendimiento práctico está entonces limitado por el enlace PCIe; las precargas en lotes y la transmisión ayudan, pero el acceso aleatorio fino sigue siendo doloroso. En NVLink y especialmente en Grace Hopper, la sobrecarga se vuelve más indulgente: el acceso remoto es notablemente más rápido, pero aún sigue a la HBM local y se beneficia de una cuidadosa prelectura, diseño de datos y agrupamiento.
La memoria host anclada y de copia cero se sienta junto a UVM. Los búferes anclados permiten a la GPU realizar DMA directamente, evitando la sobrecarga de la paginación. La copia cero permite a la GPU acceder a la memoria del host sin puesta en escena. En PCIe, la copia cero es un nicho; en NVLink/Grace Hopper, puede ser sustancialmente más rápida y viable para operadores de estilo de flujo, aunque sigue sin ser un sustituto de la HBM local.
Compromisos de rendimiento: la localidad sigue ganando, pero las penalizaciones disminuyen
La localidad sigue siendo la palanca dominante. La HBM local ofrece ancho de banda de varios terabytes por segundo y baja latencia; mantener los datos críticos allí eclipsa la mayoría de las otras optimizaciones. DDR/LPDDR del lado de la CPU ofrece menor ancho de banda pero amplia capacidad y capacidad de respuesta para fases residentes en el host.
Las interconexiones establecen el costo de no ser local. En comparación con los ~63 GB/s por dirección de PCIe Gen5, NVLink y NVLink-C2C ofrecen hasta un orden de magnitud más de ancho de banda con menor latencia. Eso reduce —pero no elimina— la penalización de acceder a memoria remota. Los resultados prácticos:
- El intercambio fino CPU–GPU se vuelve razonable en Grace Hopper, donde el acceso coherente evita la pesada coreografía de copias.
- El intercambio de lectura multigpu prospera en NVSwitch, donde el mapeo remoto puede mantener páginas calientes residentes en varias GPUs.
- Compartir escritura entre procesadores sigue siendo costoso; evita escrituras frecuentes a la misma página desde la CPU y GPU.
El comportamiento de la memoria unificada a menudo es decisivo. En sistemas PCIe, los pequeños fallos de 4 KB a mitad del núcleo pueden convertirse en tormentas de fallos que colapsan el rendimiento. Establecer ubicaciones preferidas, marcar regiones mayormente de lectura y precargar grandes trozos contiguos antes de los lanzamientos del núcleo transforma la paginación por demanda impredecible en transferencias predecibles. En sistemas NVLink, la misma disciplina reduce aún más los fallos en el núcleo, y compartir la lectura sobre mapeos remotos previene el desgaste.
Las copias de memoria explícitas todavía tienen su lugar. Cuando los conjuntos de trabajo caben cómodamente en HBM y los flujos de datos son regulares, cudaMemcpy con canalización de flujos ofrece superposición de transferencias y cálculo de forma determinista. Con UVM, los fallos de página inesperados pueden interrumpir las superposiciones planeadas a menos que precargues agresivamente. Las herramientas como Nsight Systems/Compute cierran el círculo mostrando fallos de página, migraciones y residencia para que puedas verificar que los núcleos calientes se ejecutan sin fallar.
Capacidad y agrupamiento: de límites por GPU a espacios de direcciones a escala del sistema
El modelo de memoria dividida limita la capacidad utilizable en la HBM de cada GPU. Si los modelos o conjuntos de datos exceden ese límite, debes dividir entre GPUs, mosaicar explícitamente o diseñar algoritmos fuera de núcleo para mover datos dentro y fuera de la HBM. La memoria unificada relaja la restricción. Un superchip Grace Hopper expone un único espacio de direcciones que abarca HBM y gran LPDDR; asignar más allá de HBM es directo, y el acceso coherente a través de NVLink-C2C permite que la GPU alcance páginas residentes en la CPU con más gracia que los sistemas conectados por PCIe.
A través de GPUs, NVSwitch y el software proporcionan una vista agrupada. El acceso entre pares de CUDA y UVM permite mapear y migrar páginas entre dispositivos, mientras que NVSHMEM agrega operaciones de un solo lado estilo PGAS que se alinean con códigos de análisis y simulación. A escala de plataforma, los Sistemas de Conmutación NVLink convierten muchos superchips Grace Hopper en un único dominio de memoria lógica; en configuraciones de clase GH200, el software puede dirigirse a cientos de terabytes de memoria direccionable con colocación consciente de NUMA.
El desbordamiento de almacenamiento completa la jerarquía en pilas de análisis: los marcos usan piscinas de memoria en HBM, desbordando a memoria host anclada y luego a NVMe a través de GPUDirect Storage para evitar la sobrecarga de rebote del host. La compresión ocurre en la capa de aplicación, no como una función transparente de memoria GPU.
Factores del sistema, seguridad, y realidades del despliegue
Las plataformas de memoria unificada de alto nivel llevan fiabilidad de nivel de centro de datos y aislamiento. HBM y LPDDR emplean ECC, y los dispositivos de generación Hopper añaden características RAS robustas como la desactivación de páginas y el contención de errores, con telemetría accesible a las herramientas. NVLink y NVSwitch incorporan protección de extremo a extremo para mantener los datos intactos a través del tejido.
El aislamiento y la multitenencia dependen de mecanismos establecidos:
- IOMMUs limitan el DMA del dispositivo.
- Multi-Instance GPU (MIG) divide una GPU física en instancias aisladas con memoria y elementos de cálculo dedicados.
- SR-IOV y paso mediado habilitan el compartimiento virtual de GPU.
- Hopper introduce características de computación confidencial—TEE forzados por hardware, encriptación de memoria y atestación—para que modelos y datos sensibles puedan ejecutarse en infraestructuras compartidas con garantías más fuertes.
El despliegue con contenedores es directo con cadenas de herramientas estándar; configuraciones sensibles al rendimiento suelen usar paso PCIe con MIG o dispositivos exclusivos y dependen del descubrimiento de topología para explotar NVLink/NVSwitch de manera efectiva.
Guía práctica: cuándo elegir copias explícitas vs memoria unificada
Elige copias explícitas (cudaMemcpy/streams) cuando:
- El conjunto de trabajo cabe en HBM y el flujo de datos es lo suficientemente regular como para agrupar transferencias grandes.
- Necesitas superposición determinista de transferencias H2D/D2H con cálculo.
- Los núcleos son ajustados y sensibles a la latencia, y puedes hacer cumplir el mosaico/colocación.
Apóyate en la Memoria Unificada cuando:
- Recorres estructuras de datos complejas y ricas en punteros compartidas entre fases de CPU y GPU.
- Prototipas rápidamente y quieres corrección con una mínima coreografía de copias.
- Operas en sistemas NVLink/NVSwitch donde los mapeos remotos para datos mayormente de lectura pueden evitar duplicación y desgaste.
- Necesitas corrección funcional con sobrecarga, y estás preparado para precargar/agrupamientos de acceso para mitigar paradas.
Aplica controles UVM para hacerla predecible:
- Establece ubicaciones preferidas para regiones calientes al GPU objetivo.
- Marca regiones mayormente de lectura para que puedan ser duplicadas de manera segura.
- Usa SetAccessedBy para preparar tablas de páginas para GPUs pares sin migrar.
- Prelectura antes de los lanzamientos del núcleo para eliminar fallos dentro del núcleo.
- Evita el compartimiento frecuente de escritura en las mismas páginas entre CPU y GPU.
Una comparación rápida
| Dimensión | Discreto clásico (PCIe, RAM CPU separada + HBM GPU) | Memoria unificada (Grace Hopper, NVLink/NVSwitch, CUDA UVM) |
|---|---|---|
| Memoria y ancho de banda | DDR/LPDDR CPU; HBM3 GPU a hasta ~3 TB/s localmente; sin coherencia CPU–GPU | HBM3 + gran LPDDR5X; coherente CPU–GPU vía NVLink-C2C hasta ~900 GB/s; vista agrupada entre GPUs vía NVLink/NVSwitch |
| Coherencia y NUMA | Sin coherencia de hardware CPU–GPU; fuertes límites NUMA | Coherente CPU–GPU dentro de GH; niveles NUMA en HBM, LPDDR y pares; NVSwitch produce acceso uniforme de ancho de banda alto |
| Interconexión | PCIe Gen4/5/6 x16 ≈ 31.5/63/128 GB/s por dirección; latencias de microsegundos; contención de conmutadores | NVLink GPU–GPU hasta ~900 GB/s agregado por GPU con menor latencia; NVLink-C2C ~900 GB/s coherente CPU–GPU; NVSwitch tejidos de bisección completa |
| Mecánicas UVM | Paginación por demanda a través de PCIe; fallos costosos de 4 KB; prelectura/consejos críticos; sobrecontratación limitada por PCIe | Paginación por demanda y mapeo remoto a través de NVLink; mayor ancho de banda de servicio de fallos y menor latencia; intercambio fino coherente en GH; sobrecontratación más viable pero aún más lenta que HBM local |
| Modelo de programación | cudaMemcpy explícito y canalización de streams; máxima predictibilidad | cudaMallocManaged con prelectura/consejo; código más simple; rendimiento depende de la residencia y la localidad |
Conclusión: simplifica el límite, no la física 🚀
Grace Hopper y NVLink/NVSwitch no eliminan la localidad; hacen que cruzar los límites sea menos costoso y más controlable. El ancho de banda coherente CPU–GPU hasta aproximadamente 900 GB/s dentro del superchip cambia lo que es práctico para algoritmos mixtos CPU–GPU. NVSwitch y NVLink expanden la idea a través de GPUs, transformando las lecturas remotas y los atómicos en primitivos viables de alto rendimiento en lugar de últimos recursos. CUDA Unified Memory lo une todo con un modelo de puntero único que, con el consejo y precarga adecuados, convierte la paginación demandada propensa a errores en movimiento de datos predecible.
La estrategia ganadora es clara:
- Coloca los conjuntos de trabajo más calientes en HBM local.
- Usa NVLink/NVSwitch para compartir y escalar sin caer en copias masivas.
- Aplica políticas UVM para mantener los núcleos libres de fallos de página.
- Trata la memoria como un paisaje tiered NUMA, no como un océano plano.
En resumen, simplifica el límite del software: unifica el espacio de direcciones y la coherencia donde cuenta, respetando la física del ancho de banda y la latencia. Haz eso, y el paso de los silos conectados por PCIe a los tejidos NVLink/NVSwitch se convierte menos sobre reescribir códigos y más sobre desbloquear rendimiento que antes no podías alcanzar.