TileLang explicado: kernels de IA escritos por mosaicos
Lectura del código TileLang: de GEMM a llamada compilada
Una ruta verificable desde el ejemplo público hasta la entrada JIT
Qué aprenderás
- Empieza por el ejemplo
- Lee las entradas Python
- Conecta depuración y fuente
Antes de empezar
- Un operador y dispositivo objetivo
- Una referencia correcta del framework
- Compilador y runtime compatibles
Pasa del ejemplo correcto a evidencia sobre un cuello de botella real
Conclusiones clave
- Los bloques de compilación afectan la especialización.
- El decorador realiza trabajo de compilación.
- No es una auditoría integral del compilador.
Empieza por el ejemplo
La guía GEMM explica elecciones de mosaico y variantes. Compara cargas `T.Pipelined`, acumulación `T.gemm` y epílogo ReLU del inicio antes de abrir ejemplos más complejos.
Separa tensores de ejecución y tamaños de bloque fijados al compilar. Cambiar estos últimos puede generar otra especialización y debe aparecer en las notas de rendimiento.
Lee las entradas Python
`tilelang/__init__.py` expone la API pública y el módulo JIT maneja envoltorios de compilación. Revísalos antes de llamar al decorador simple azúcar sintáctico.
Tras elegir destino el compilador sigue otras rutas, pero solo capturamos entradas seleccionadas. No presentamos esto como auditoría completa de pases TVM o del código del dispositivo.
Conecta depuración y fuente
La guía de depuración describe IR intermedio y diagnósticos. Si falla un kernel, conserva fuente, formas, destino y salida relevante antes de alterar varios parámetros a la vez.
Esta lectura fija ayuda a navegar el código; no ejecutamos una traza del compilador ni demostramos que el kernel sea óptimo.
Cómo elegir
| Criterio | Opción A | Opción B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Pasos de implementación
- 1
Lee el GEMM pequeño antes de variantes mayores.
- 2
Sigue importación, envoltorio JIT y destino.
- 3
Guarda fuente, formas e IR al fallar.
Ejemplo para copiar
README matmul_relu -> API pública -> envoltorio JIT
forma + bloque + destino -> especialización compiladaPreguntas frecuentes
¿Por dónde empiezo el código?
Por el ejemplo del README y luego los dos `__init__.py` públicos y JIT.
¿Inspeccionaste ensamblador generado?
No. Esta lectura se limita a fuentes Python y documentación fijadas.
Fuentes
- TileLang / README.mdFuente verificada 2026-10-04
- TileLang / examples/gemm/README.mdFuente verificada 2026-10-04
- TileLang / tilelang/jit/__init__.pyFuente verificada 2026-10-04
- TileLang / tilelang/__init__.pyFuente verificada 2026-10-04
- TileLang / docs/tutorials/debug_tools_for_tilelang.mdFuente verificada 2026-10-04