// NOTA TÉCNICA · COMPORTAMIENTO TÉRMICO GB10

Por qué el GB10 del DGX Spark se calienta bajo carga sostenida

El NVIDIA DGX Spark utiliza el superchip GB10 — arquitectura Blackwell, capacidad de cómputo sm_121 (o sm_90 en algunas cadenas de herramientas CUDA anteriores). Bajo cargas sostenidas de inferencia o entrenamiento, el GB10 se estabiliza en los 80 °C bajos indefinidamente. La razón no es un defecto de hardware; es una decisión de diseño. Las palancas de refrigeración que expone una GPU NVIDIA típica están ausentes en este silicio.

Lo que falta

Tanto el límite de potencia como el control del ventilador devuelven [N/A] desde nvidia-smi:

$ nvidia-smi --query-gpu=power.limit,power.max_limit,power.min_limit,fan.speed --format=csv,noheader
[N/A], [N/A], [N/A], [N/A]

Estas interfaces no están "ocultas" ni protegidas por sudo; no están implementadas en la interfaz del driver del GB10. El firmware gestiona ambas dimensiones internamente según el estado térmico y de carga. Ninguna configuración de espacio de usuario las cambia.

Lo que sí funciona: --lock-gpu-clocks

La única palanca que sí responde es el techo de reloj gráfico. Aunque nvidia-smi --query-supported-clocks=graphics devuelve [N/A] en GB10, el driver aún acepta valores enteros arbitrarios de MHz dentro del rango operativo del silicio a través de --lock-gpu-clocks:

$ sudo nvidia-smi -lgc 1500,2000 -i 0
GPU clocks set to "(gpuClkMin 1500, gpuClkMax 2000)" for GPU 0000000F:01:00.0
All done.

El techo de referencia en nuestro hardware de producción es ~3003 MHz. El mínimo aceptado ronda los 900 MHz. Los pasos intermedios se respetan. -rgc restablece a valores de fábrica. Ambos comandos surten efecto de inmediato.

Consecuencia: el calor sostenido es el régimen de operación por defecto

Como solo el firmware decide cuándo bajar la frecuencia, y lo hace de manera conservadora (evita el SW-slowdown, no persigue un objetivo térmico arbitrario), un DGX Spark sirviendo Ollama a 90+% de utilización se estabilizará en los 80 °C bajos y permanecerá ahí indefinidamente. El usuario no puede pedirle al firmware que sea más agresivo. El único actuador restante es el techo del reloj gráfico.

Nuestra solución

Construimos un pequeño daemon que muestrea la temperatura de la GPU cada 30 segundos y ajusta el techo de reloj en pasos de 150 MHz con histéresis de tres bandas: bajar al entrar en la banda de advertencia, mantener en la banda objetivo, subir tras tres muestras frías consecutivas. En nuestro GB10 de producción (spark-23), la temperatura sostenida cayó 11 °C con la misma utilización del 94%. El mecanismo completo y los términos de licencia están en la página del producto: thermal.zctechnologies.org. Telemetría en vivo: /live-telemetry.html. Referencia del comportamiento real de -lgc en GB10: /nvidia-smi-lgc-on-gb10.html.


Publicado por C.R. Burrell LLC. Escrito para ingenieros que operan DGX Sparks en producción. Correcciones bienvenidas: [email protected].