Kevin: Multi-Turn RL for Generating CUDA Kernels
About
Writing GPU kernels is a challenging task and critical for AI systems' efficiency. It is also highly iterative: domain experts write code and improve performance through execution feedback. Moreover, it presents verifiable rewards like correctness and speedup, making it a natural environment to apply Reinforcement Learning (RL). To explicitly incorporate the iterative nature of this process into training, we develop a flexible multi-turn RL recipe that addresses unique challenges encountered in real-world settings, such as learning from long trajectories and effective reward attribution across turns. We present Kevin - K(ernel D)evin, the first model trained with multi-turn RL for CUDA kernel generation and optimization. In our evaluation setup, Kevin shows significant gains over its base model (QwQ-32B), improving correctness of generated kernels (in pure CUDA) from 56% to 82% and mean speedup from 0.53x to 1.10x of baseline (PyTorch Eager), and surpassing frontier models like o4-mini (0.78x). Finally, we study its behavior across test-time scaling axes: we found scaling serial refinement more beneficial than parallel sampling. In particular, when given more refinement turns, Kevin shows a higher rate of improvement.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| GPU kernel code generation and optimization | KernelBench Level 3 (test) | Correctness Score40 | 18 | |
| GPU kernel code generation and optimization | KernelBench Level 2 (test) | Correctness11 | 18 | |
| GPU kernel code generation and optimization | KernelBench Level 1 (test) | Correctness9 | 18 | |
| Kernel Generation | KernelBench | -- | 14 | |
| GPU Kernel Optimization | KernelBench Level 1 | Fast1 Performance Score0.16 | 7 | |
| GPU Kernel Optimization | KernelBench Level 2 | Performance Score 10.61 | 7 | |
| GPU Kernel Optimization | KernelBench Level 3 | Fast12 | 7 | |
| GPU Kernel Optimization | KernelBench H200 hardware | Correctness best@1656 | 3 |