# Rúbrica · Análisis de Perfilado de GPU — Módulo 4 (EC4)

**Instrumento del programa:** Análisis de perfilado de GPU (rúbrica) (§18.2)  
**Evidencia:** Informe de ocupancia y uso de memoria en GPU (§16)  
**Elemento de competencia:** EC4 · **Módulo:** M4 · **Semanas:** 12–13 · **Ponderación:** 30 % de EC4 (6.6 % de la asignatura)  

---

## 1. Qué se entrega

Informe técnico en formato **PDF** (máximo 6 páginas) que documente la sesión de perfilado realizada con herramientas oficiales de NVIDIA (**Nsight Systems / Nsight Compute** o la herramienta de perfilado de la GPU disponible), analizando la ocupancia teórica y alcanzada de los multiprocesadores (SM), el uso de registros y los cuellos de botella de memoria.

---

## 2. Criterios de evaluación (100 puntos)

| # | Criterio | Descripción del desempeño esperado | Puntaje |
|---|---|---|---|
| 1 | Análisis de ocupancia de la GPU | Cálculo y comparación entre ocupancia teórica y ocupancia alcanzada (*Achieved Occupancy*). | 25 |
| 2 | Diagnóstico de recursos de hardware | Identificación precisa del factor limitante de la ocupancia (presión de registros o límite de memoria compartida por bloque). | 25 |
| 3 | Eficiencia de memoria y Coalescing | Análisis de transacciones de memoria global, porcentaje de coalescing alcanzado y sugerencias de mejora. | 25 |
| 4 | Divergencia de warps e instrucciones | Evaluación de la inactividad de hilos debida a bifurcaciones condicionales dentro de los warps. | 15 |
| 5 | Rigor en la presentación y gráficas | Inclusión de reportes gráficos exportados del perfilador, tablas de métricas y conclusiones fundamentadas. | 10 |
| | **Total** | | **100** |

---

## 3. Rúbrica analítica por niveles

| Criterio | Destacado (4) | Competente (3) | En proceso (2) | No logrado (1) |
|---|---|---|---|---|
| **1. Ocupancia** | Análisis profundo de ocupancia con la calculadora de ocupancia de NVIDIA y propuesta de ajuste de hilos | Cálculo correcto de ocupancia teórica y alcanzada | Menciona la ocupancia sin contrastar teórica vs lograda | Omite el análisis de ocupancia |
| **2. Recursos** | Identifica exactamente el cuello de botella (registros vs shared memory) y propone directiva `__launch_bounds__` | Identifica el recurso limitante principal | Confusión entre límites de bloque y límites de SM | Desconoce los factores limitantes de hardware |
| **3. Coalescing** | Demuestra matemáticamente el impacto del alineamiento y acceso contiguo en el ancho de banda | Explica el coalescing y su beneficio en el kernel evaluado | Mención teórica sin respaldo de métricas de perfilado | Patrones de acceso dispersos sin justificación |
| **4. Divergencia** | Mide y cuantifica la divergencia en branches con sugerencias para homogeneizar el flujo | Detecta divergencia y la minimiza en el código | Señala la divergencia pero sin cuantificar su coste | Código con alta divergencia no detectada |
| **5. Presentación** | Capturas nítidas del perfilador, tablas comparativas y conclusiones de alto nivel ingenieril | Reporte completo y ordenado con gráficas claras | Reporte incompleto con capturas ilegibles | Sin capturas ni datos del perfilador |
