Cuaderno personal de estudio e ingeniería con kernels CUDA escritos a mano, ejemplos de CUTLASS/CuTe y Triton, y notas sobre optimización de LLM.
RightNow-AI/autokernel
Pipeline de agentes autónomos que perfila modelos de PyTorch y optimiza sus kernels GPU más lentos con Triton o CUDA C++.
- Estrellas
- 1,618
- Forks
- 164
- Issues abiertos
- 16
- Último commit
- hace 21 horas
¿Qué es?
AutoKernel recibe cualquier modelo de PyTorch, lo perfila con torch.profiler para ordenar los kernels según el tiempo de ejecución en GPU y extrae los principales cuellos de botella en kernels independientes de Triton o CUDA C++. Luego, un agente de programación modifica un archivo de kernel a la vez, ejecuta un benchmark fijo con cinco etapas de comprobaciones de corrección y análisis roofline, y conserva o revierte cada cambio. Un orquestador aplica la ley de Amdahl para decidir cuándo pasar al siguiente kernel.
El proyecto está dirigido a GPU NVIDIA e incluye kernels iniciales para matmul, softmax, layernorm, rmsnorm, flash attention, MLP fusionado, cross entropy, rotary embeddings y reduce. También incluye definiciones independientes de los modelos GPT-2, LLaMA y BERT, además de una integración con el benchmark KernelBench para optimizar sus problemas de forma iterativa. Los resultados se registran en un archivo TSV y los kernels optimizados se pueden exportar a HuggingFace Hub.
Funciones clave
- 01Perfila cualquier modelo de PyTorch y ordena sus kernels según el tiempo de ejecución en GPU, clasificándolos como limitados por cómputo o por memoria.
- 02Extrae los kernels que son cuellos de botella en archivos de Triton o CUDA C++ mediante la opción --backend.
- 03Ejecuta un benchmark fijo con comprobaciones de corrección en varias etapas antes de medir el rendimiento.
- 04Programa la optimización de kernels según su impacto estimado de extremo a extremo, aplicando la ley de Amdahl.
- 05Verifica los kernels optimizados dentro del modelo completo e informa de la aceleración total.
- 06Se integra con KernelBench y exporta kernels a HuggingFace Hub.
Casos de uso
- Acelerar la inferencia o el entrenamiento de un modelo de PyTorch personalizado al optimizar durante la noche sus operaciones GPU más lentas.
- Experimentar con agentes de programación autónomos en una tarea de rendimiento GPU bien definida.
- Comparar kernels generados por IA con referencias de PyTorch mediante problemas de KernelBench.
- Generar y compartir kernels de Triton o CUDA optimizados manualmente como paquetes de kernels de HuggingFace.
Inicio rápido
- 1
Instala uv (o sigue las instrucciones oficiales de instalación de uv del README)
- 2
Clona el repositorio
git clone https://github.com/RightNow-AI/autokernel.git - 3
Instala las dependencias desde la carpeta clonada
uv sync - 4
Configura una sola vez los datos de prueba y las referencias; después, verifica el benchmark
uv run prepare.py
Antes de usarlo
- Se requiere una GPU NVIDIA; el README indica que solo se ha probado en H100, A100 y RTX 4090.
- Se necesitan Python 3.10 o posterior y uv.
- Para ejecutar el agente de optimización se necesita otro agente de programación, como Claude o Codex.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es autokernel?
- Pipeline de agentes autónomos que perfila modelos de PyTorch y optimiza sus kernels GPU más lentos con Triton o CUDA C++. AutoKernel recibe cualquier modelo de PyTorch, lo perfila con torch.profiler para ordenar los kernels según el tiempo de ejecución en GPU y extrae los principales cuellos de botella en kernels independientes de Triton o CUDA C++. Luego, un agente de programación modifica un archivo de kernel a la vez, ejecuta un benchmark fijo con cinco etapas de comprobaciones de corrección y análisis roofline, y conserva o revierte cada cambio. Un orquestador aplica la ley de Amdahl para decidir cuándo pasar al siguiente kernel.
- ¿autokernel es gratuito? ¿Qué licencia tiene?
- autokernel es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿autokernel sigue mantenido?
- Mantenimiento activo. El último commit de autokernel fue el 5 nov 2026.
- ¿Para qué puedo usar autokernel?
- Acelerar la inferencia o el entrenamiento de un modelo de PyTorch personalizado al optimizar durante la noche sus operaciones GPU más lentas. Experimentar con agentes de programación autónomos en una tarea de rendimiento GPU bien definida. Comparar kernels generados por IA con referencias de PyTorch mediante problemas de KernelBench. Generar y compartir kernels de Triton o CUDA optimizados manualmente como paquetes de kernels de HuggingFace.
- ¿Cómo se instala autokernel?
- Instala uv (o sigue las instrucciones oficiales de instalación de uv del README) Clona el repositorio: git clone https://github.com/RightNow-AI/autokernel.git Instala las dependencias desde la carpeta clonada: uv sync Configura una sola vez los datos de prueba y las referencias; después, verifica el benchmark: uv run prepare.py
- ¿Dónde consigo autokernel?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/RightNow-AI/autokernel
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un agente de kernels de GPU que evoluciona por sí mismo y optimiza kernels de CUDA y CuTe DSL al convertir cada kernel aceptado en la siguiente referencia.
Implementación oficial de FlashAttention, un kernel de atención exacta y eficiente en memoria para entrenar e inferir con modelos Transformer en GPU.
Extensiones de NVIDIA para PyTorch con utilidades de precisión mixta y entrenamiento distribuido, además de kernels CUDA y C++ fusionados opcionales.
Framework de Python que compila redes neuronales profundas en código C++ CUDA/HIP fp16 para inferencias rápidas en GPU de NVIDIA y AMD.
Una skill para Claude Code, OpenCode y Codex que ejecuta ciclos de modificar, verificar y conservar o descartar cambios según objetivos, inspirada en autoresearch de Karpathy.