TileLang explicado: kernels de IA escritos por mosaicos
Primeros pasos con TileLang: GEMM antes de ajustar mosaicos
Prepara un dispositivo compatible y exige corrección antes de optimizar
Qué aprenderás
- Escoge instalación
- Ejecuta el ejemplo mínimo
- Interpreta un resultado correcto
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
- ROCm exige hipcc y PyTorch para ROCm.
- `@tilelang.jit` puede especializar en la primera llamada.
- Una forma correcta no cubre todos los casos.
Escoge instalación
En un entorno compatible la guía empieza con `pip install tilelang`. NVIDIA requiere herramientas CUDA utilizables; las ruedas AMD para Linux incluyen ROCm, pero necesitan `hipcc` del host y una instalación previa de PyTorch para ROCm.
No confundas el extra CUDA `tilelang[nvcc]` con la instalación ROCm. Anota Python, PyTorch, toolkit, GPU y versión de TileLang antes de comparar resultados o informar de fallos.
Ejecuta el ejemplo mínimo
El README define `matmul_relu` con `@tilelang.jit`, crea tensores PyTorch en el dispositivo, llama al kernel y compara con `torch.relu(a @ b)` usando tolerancias.
Empieza por las formas y tolerancias documentadas y cambia una dimensión por vez. La primera llamada puede especializar y compilar; las siguientes pueden reutilizar el resultado, por lo que no conviene mezclar sus tiempos.
Interpreta un resultado correcto
Pasar en una forma y dispositivo es una prueba local, no una garantía para todas las entradas, tipos o plataformas. Antes de integrar el kernel, prueba tamaños límite, error numérico y llamadas repetidas.
El fragmento siguiente sirve para leer el flujo documentado; no representa una ejecución realizada en esta revisión editorial.
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
Instala runtime y framework compatibles.
- 2
Ejecuta GEMM + ReLU con la comparación de referencia.
- 3
Amplía formas y tipos antes de medir velocidad.
Ejemplo para copiar
import torch, tilelang
# Usa primero la definición matmul_relu del README fijado.
c = matmul_relu(a, b)
torch.testing.assert_close(c, torch.relu(a @ b), rtol=1e-2, atol=1e-2)Preguntas frecuentes
¿Basta `pip install tilelang` para AMD?
No. La guía exige ROCm en el host y una compilación adecuada de PyTorch.
¿Puedo sumar la primera llamada y las posteriores?
No; informa por separado de compilación inicial y ejecución caliente.
Fuentes
- TileLang / README.mdFuente verificada 2026-10-04
- TileLang / docs/get_started/Installation.mdFuente verificada 2026-10-04
- TileLang / pyproject.tomlFuente verificada 2026-10-04
- TileLang / tilelang/jit/__init__.pyFuente verificada 2026-10-04