¿Qué es TileKernels?
TileKernels es la biblioteca de kernels de GPU de DeepSeek escrita en TileLang, un lenguaje basado en Python para código de GPU de alto rendimiento. Cubre las operaciones de las que dependen los modelos recientes de DeepSeek: selección y puntuación top-k de expertos para el enrutado mixture-of-experts, conversión FP8 y FP4 por token, por bloque y por canal con SwiGLU y cuantización fusionados, kernels de compuerta para Engram (el módulo de memoria de DeepSeek) con pasadas hacia delante y hacia atrás, y kernels de manifold hyper-connection (mHC) que incluyen la normalización de Sinkhorn, además de kernels de RoPE y de números aleatorios. El README dice que la mayoría de los kernels rinden cerca del límite de cómputo o de ancho de banda de memoria del hardware y que todos se usan en el entrenamiento y la inferencia internos de DeepSeek.
Se instala desde PyPI como tile-kernels y necesita Python 3.12, PyTorch 2.13 y TileLang 0.1.15 o posterior. En Nvidia solo admite GPU SM90 y SM100 (las generaciones H100 y B200) con CUDA 13.1 o posterior. La versión 2.0.0, de septiembre de 2026, añadió un backend de Huawei Ascend para la NPU Ascend 950 con CANN 9.2.0, que se selecciona automáticamente en tiempo de ejecución tras la misma API de Python. El código tiene licencia MIT.
¿Merece la pena TileKernels?
TileKernels importa menos como dependencia que como prueba. Engram y las manifold hyper-connections son ideas de arquitectura propias de DeepSeek, y Redeep describe este repositorio como la primera implementación pública de ambas a nivel de kernel; el artículo de DeepSeek-V4 dice que el equipo adoptó TileLang para sus kernels fusionados porque combina desarrollo rápido con optimización profunda en una sola base de código. Un análisis de Redeep de junio de 2026 contó 44 operadores en cinco módulos (14 para enrutado MoE, 15 para cuantización, 10 para mHC, 5 para Engram y 1 de transposición); desde entonces se han añadido kernels de RoPE y de números aleatorios.
El listón de hardware es alto. En Nvidia solo valen las piezas SM90 y SM100, así que una RTX 4090 (SM89) queda fuera, y una incidencia abierta informa de que los kernels de Sinkhorn de Engram superan los 100 KB de memoria compartida en Blackwell de consumo (SM120). El backend de Ascend de la versión 2.0.0 es soporte real y no una promesa de TileLang, lo que lo convierte en uno de los pocos conjuntos de kernels abiertos que ejecutan las mismas llamadas de Python en hardware de Nvidia y de Huawei. El README no publica tablas de rendimiento; la afirmación de un rendimiento cercano al límite descansa en los benchmarks de pytest incluidos, que ejecutas tú con --run-benchmark.
El modelo de mantenimiento es la principal contrapartida. La rama principal tiene siete commits: la publicación inicial del 23 de abril de 2026 y luego dos volcados de versión, la 2.0.0 el 30 de septiembre y la 2.1.0 el 14 de octubre. Las contribuciones externas esperan: hay 16 pull requests abiertas, entre ellas adaptaciones a AMD ROCm y Moore Threads MUSA, mientras que las únicas pull requests fusionadas son una corrección de comentarios del día del lanzamiento y los dos volcados de versión. Con unas 2.100 estrellas, es una fracción de las aproximadamente 9.000 de TileLang.
Para un equipo que entrena un modelo mixture-of-experts al estilo de DeepSeek con FP8 en clústeres H100 o B200, son kernels probados y usados en producción que ahorran semanas de escribir los tuyos. Para todo lo demás, como un modelo denso estándar, GPU más antiguas o una pila de servicio como vLLM que ya trae sus propios kernels, TileKernels es sobre todo código de referencia para leer.
Dónde se gana su sitio
Un ingeniero de infraestructura en un laboratorio que preentrena un modelo MoE de 200 expertos en nodos H100
Sustituir el gating top-k y la conversión FP8 lentos de PyTorch por kernels fusionados
pip install tile-kernels, cambia las llamadas de gating y de conversión FP8 por bloque por las versiones de la biblioteca y compara cada una con las implementaciones de referencia de PyTorch en tile_kernels/torch usando los tests incluidos. Gratis con licencia MIT; el ahorro son semanas de ingeniería, no licencias.
Un ingeniero de investigación que reproduce la arquitectura de DeepSeek-V4
Leer cómo se implementan de verdad la compuerta de Engram y las manifold hyper-connections
Estudia los módulos engram y mhc junto a su código de referencia de PyTorch y luego usa el wrapper torch.autograd.Function de la compuerta de Engram en un entrenamiento pequeño. Los kernels necesitan una GPU SM90 o SM100, así que alquilar una H100 es la forma más barata de ejecutarlos.
Un equipo de plataforma de un proveedor de nube chino que usa aceleradores de Nvidia y de Huawei
Mantener una sola ruta de código de kernels en flotas H100 y Ascend 950
Desde la versión 2.0.0, la biblioteca elige el backend CUDA o Ascend en tiempo de ejecución tras las mismas llamadas de Python, así que una sola base de código del modelo funciona en ambos. Ascend necesita CANN 9.2.0 o posterior.
Antes de decidirte
- Puesta en marcha
- pip install tile-kernels, o pip install -e ".[dev]" desde un clon. Requiere Python 3.12+, PyTorch 2.13+, TileLang 0.1.15+ y una GPU SM90/SM100 con CUDA 13.1+ o una NPU Ascend 950 con CANN 9.2.0+. TK_TEST_LEVEL=0 python -m pytest -n 4 ejecuta los tests básicos.
- Integraciones
- Tensores de PyTorch de entrada y salida, con implementaciones de referencia en PyTorch para cada kernel y un wrapper de autograd para la compuerta de Engram. Construido sobre TileLang; se publica junto a DeepGEMM y FlashMLA de DeepSeek, sin sustituirlos.
- Datos y privacidad
- Una biblioteca local sin llamadas de red ni telemetría descritas en el README. La licencia MIT permite el uso comercial. No hay avisos de seguridad publicados.
- Coste a escala
- El software es gratuito. El coste real es el listón de hardware: solo lo ejecutan GPU de centro de datos Hopper y Blackwell o NPU Ascend 950.
- Límites
- GPU de consumo sin soporte, con una incidencia abierta sobre los límites de memoria compartida de SM120; sin soporte fusionado para AMD ni MUSA; las actualizaciones llegan en volcados de versión poco frecuentes; la documentación es un README breve.
Lo bueno
- Kernels de producción que DeepSeek usa internamente
- Primeros kernels públicos de Engram y mHC
- La misma API de Python en Nvidia SM90/SM100 y Ascend 950
- Licencia MIT; instalable con pip y con benchmarks de pytest
Lo malo
- Sin soporte para GPU de consumo ni anteriores a Hopper
- El código llega en volcados de versión; las adaptaciones comunitarias esperan sin fusionar
- Sin tablas de rendimiento publicadas
- Solo útil para arquitecturas parecidas a las de DeepSeek
Ideal para
Ingenieros de infraestructura de ML que entrenan o sirven modelos MoE al estilo de DeepSeek con FP8 en hardware H100, B200 o Ascend 950.
Alternativas a TileKernels
TileKernels: preguntas frecuentes
- ¿Merece la pena TileKernels?
- TileKernels es la visión más clara hasta ahora de los kernels que hay detrás de los modelos de DeepSeek, y código de producción para quien construya la misma arquitectura, pero es un volcado de código de DeepSeek, no una biblioteca comunitaria. Le damos un 3.8 sobre 5.
- ¿Cuánto cuesta TileKernels?
- Gratuito y de código abierto con licencia MIT.
- ¿Qué inconvenientes tiene TileKernels?
- Sin soporte para GPU de consumo ni anteriores a Hopper; el código llega en volcados de versión; las adaptaciones comunitarias esperan sin fusionar; sin tablas de rendimiento publicadas; solo útil para arquitecturas parecidas a las de DeepSeek.
- ¿Para quién es TileKernels?
- Ingenieros de infraestructura de ML que entrenan o sirven modelos MoE al estilo de DeepSeek con FP8 en hardware H100, B200 o Ascend 950.
- ¿Cuánto cuesta TileKernels para un equipo o en producción?
- El software es gratuito. El coste real es el listón de hardware: solo lo ejecutan GPU de centro de datos Hopper y Blackwell o NPU Ascend 950.
- ¿Es TileKernels seguro para los datos de la empresa?
- Una biblioteca local sin llamadas de red ni telemetría descritas en el README. La licencia MIT permite el uso comercial. No hay avisos de seguridad publicados.
- ¿Cuáles son las mejores alternativas a TileKernels?
- Las alternativas más cercanas que hemos analizado son SGLang, vLLM y TensorRT-LLM.
Respuestas comprobadas el 13 nov 2026.