English · Español
Fase 23 — Fundamentos de la Arquitectura GPU¶
Requiere: 01 — Hardware y sustrato de cómputo · 22 — KV cache: de las matemáticas a la memoria Enseña:
gpu-architecture·sm·warps·occupancy·hbm·coalescingSalta a cualquier capítulo desde el índice de referencia de fases.
Mapa del capítulo¶
Pre-escrita según A12. La teoría y los enunciados de los problemas de laboratorio son borradores estables; la elección de la plataforma cloud es la única pregunta abierta crítica (ver
PHASE_23_PLAN.md§7.a).Esta es la fase donde se cruza la frontera: del portátil sin CUDA a una GPU rentada en la nube. No escribimos kernels todavía — eso es Fase 24. Aquí construimos el modelo mental (SM, warp, jerarquía HBM/L2/SMEM/registros, coalescing, ocupación) y medimos, igual que en Fase 1 medimos el roofline del i5-8250U.
Objetivo¶
Una comprensión mecánica de la GPU que Borja va a alquilar — suficiente como para que "este kernel es HBM-bound" o "esta divergencia de rama nos costó un factor 32×" sean afirmaciones que Borja pueda demostrar con medidas sobre su hardware cloud-rentado real, no una frase de una diapositiva de marketing de NVIDIA.
La Fase 23 es la primera fase que requiere GPU en la nube. De la Fase 1 a la 22 todo corrió sobre el i5-8250U de Borja. De la Fase 23 en adelante se asume una GPU de clase Ampere o superior rentada de un proveedor cloud (decisión en PHASE_23_PLAN.md §7.a).
Orden de lectura¶
theory/00-motivation.md— por qué una fase separada para el modelo mental de la GPU; qué intuiciones de CPU se transfieren y cuáles se rompen.theory/01-gpu-vs-cpu-mental-model.md— diferencias del modelo de ejecución: SIMT vs out-of-order, warps vs cores, ocupación vs cambio de contexto.theory/02-gpu-memory-hierarchy.md— HBM → L2 → SMEM → registros; anchos de banda y latencias; reglas de coalescing.theory/03-warps-and-occupancy.md— el warp de 32 hilos; coste de divergencia; ocupación como compromiso entre registros, SMEM e hilos.theory/04-gpu-roofline.md— el roofline de la Fase 1 re-derivado para GPU; múltiples ceilings por dtype; matices de los Tensor Cores; dónde aterriza el operador de decode de la Fase 22 sobre este nuevo plot.lab/00-provision-cloud-gpu.md— primera sesión de GPU en la nube, de extremo a extremo. Elige la plataforma (según §7.a) y ejecutanvidia-smi. De una sola vez.lab/01-device-query.md— inspección programática del dispositivo; rellenardevice_query.jsoncon cada campo relevante.lab/02-bandwidth-test.md— medidas de ancho de banda decudaMemcpyH2D, D2H, D2D; comparar con los picos teóricos.lab/03-gpu-roofline.md— dibujar el roofline; superponer la decode-attention de la Fase 22; identificar el régimen.
solutions/ está vacío durante la pre-escritura — se rellena al abrir la fase, una vez elegida la plataforma cloud (porque la salida de device-query y los números de ancho de banda dependen de la GPU concreta alquilada).
Definition of Done¶
Ver PHASE_23_PLAN.md §6. Brevemente:
- Sesión cloud-GPU completa de extremo a extremo: aprovisionar → benchmark → terminar, todo registrado.
device_query.json,bandwidth_test.json,peak_flops.jsoncommiteados.- Plot del roofline de GPU commiteado con el operador de decode-attention de la Fase 22 colocado sobre él.
- Borja puede recitar de memoria: jerarquía de memoria, pico TFLOPS fp16/bf16, tamaño de warp, regla de coalescing, cuellos de botella de ocupación.
Lo que esta fase intencionadamente NO cubre¶
- Escribir kernels. Fase 24. La Fase 23 usa kernels pre-construidos (GEMM de cuBLAS,
cudaMemcpy) y los mide. La disciplina refleja la Fase 1: medir la máquina antes de escribir código que corra sobre ella. - PyTorch. Se importa por primera vez en la Fase 24, deliberadamente. La Fase 23 usa
cupy(NumPy-en-GPU) para la única tarea de port que necesita arrays en GPU. VerPHASE_23_PLAN.md§7.g para el razonamiento. - Multi-GPU. Fase 35 (entrenamiento distribuido).
- Cadenas de herramientas CUDA personalizadas. La Fase 24 introduce
nvcc. La Fase 23 usa lo que viene preinstalado en la imagen cloud. - Herramientas de profiling de GPU (nsight, ncu). Se tocan en la Fase 24; la Fase 23 usa solo
nvidia-smi+ timers de Python. - TPU / aceleradores no-NVIDIA. Fuera del alcance del currículo completo.
- Comprar / configurar una GPU local. El presupuesto mensual de Borja es para alquiler cloud; no hay planeada ninguna compra de GPU local. Si eso cambia, esta fase necesita revisión.
El alcance de la Fase 23 es: aprovisionar una GPU en la nube, medir sus picos, colocar el operador de la Fase 22 sobre el roofline. Nada más.
Vista previa de la siguiente fase: docs/phase-24-cuda-triton/ — primera vez escribiendo kernels de GPU; primera vez importando torch.
Lecturas recomendadas¶
Opcional — enriquece pero no es necesario para aprobar la fase.
- 📘 CUDA C++ Programming Guide — NVIDIA · 2024. la verdad de base sobre la jerarquía de memoria que mides.
- 📕 Programming Massively Parallel Processors — Kirk & Hwu · 2022. el libro de texto de programación en GPU.