KernelFoundry: Hardware-aware evolutionary GPU kernel optimization
作者: Nina Wiedemann, Quentin Leboutet, Michael Paulitsch, Diana Wofk, Benjamin Ummenhofer
分类: cs.DC, cs.LG
发布日期: 2026-03-12
💡 一句话要点
KernelFoundry:硬件感知的进化式GPU Kernel优化框架
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: GPU Kernel优化 进化算法 大型语言模型 硬件感知 SYCL CUDA 代码生成 性能优化
📋 核心要点
- 现有基于LLM的Kernel优化方法对硬件架构理解不足,依赖简单的提示和反馈,优化效果有限。
- KernelFoundry通过进化算法,协同优化Kernel代码和提示,并结合模板参数调优,实现硬件感知的Kernel优化。
- 实验表明,KernelFoundry在KernelBench上实现了平均2.3倍的SYCL Kernel加速,优于现有方法。
📝 摘要(中文)
优化GPU Kernel对大型语言模型(LLM)来说比标准代码生成任务更具挑战性,因为它需要理解硬件架构、并行优化策略和性能分析输出。现有基于LLM的Kernel生成方法主要依赖简单的提示和反馈循环,仅通过性能分析反馈间接感知硬件。我们提出了KernelFoundry,一个通过三个关键机制高效探索GPU Kernel设计空间的进化框架:(1)具有Kernel特定行为维度的MAP-Elites质量-多样性搜索,以维持跨不同优化策略的探索;(2)元提示进化,将提示与Kernel共同进化,以发现特定于任务的优化策略;(3)基于模板的参数优化,以根据输入和硬件调整Kernel。我们在KernelBench、robust-kbench和自定义任务上评估了该框架,生成SYCL Kernel作为跨平台GPU编程模型,并生成CUDA Kernel以与先前工作进行比较。我们的方法始终优于基线方法,在KernelBench上针对SYCL实现了平均2.3倍的加速。此外,KernelFoundry被实现为一个分布式框架,可以远程访问各种硬件,从而实现快速基准测试,并具有灵活的用户输入层,支持为超出基准测试范围的各种实际用例生成Kernel。
🔬 方法详解
问题定义:GPU Kernel的优化是一个复杂的问题,需要深入理解GPU硬件架构、并行计算策略以及性能分析结果。现有的基于LLM的Kernel生成方法,通常采用简单的prompting和反馈循环,对硬件的感知不足,导致优化效果不佳。这些方法难以充分利用GPU的并行计算能力,生成的Kernel性能往往达不到最优。
核心思路:KernelFoundry的核心思路是利用进化算法,在GPU Kernel的设计空间中进行高效搜索。它将Kernel代码的生成和优化过程视为一个进化过程,通过不断地迭代和选择,逐步提升Kernel的性能。同时,KernelFoundry还引入了硬件感知的机制,使得生成的Kernel能够更好地适应目标硬件的特性。
技术框架:KernelFoundry的整体框架包含三个主要模块:MAP-Elites质量-多样性搜索、元提示进化和基于模板的参数优化。MAP-Elites用于探索Kernel设计空间,保持优化策略的多样性。元提示进化用于协同优化Kernel代码和提示,发现特定任务的优化策略。基于模板的参数优化用于根据输入和硬件调整Kernel参数。整个框架以分布式方式实现,支持远程访问不同的硬件平台,方便进行快速的基准测试。
关键创新:KernelFoundry的关键创新在于其进化式的优化方法和硬件感知的机制。传统的基于LLM的Kernel生成方法通常采用单点的优化策略,容易陷入局部最优解。而KernelFoundry通过进化算法,能够探索更广阔的设计空间,找到更优的Kernel代码。此外,KernelFoundry还通过元提示进化和基于模板的参数优化,实现了对硬件特性的感知和利用,从而生成更高效的Kernel。
关键设计:KernelFoundry的MAP-Elites算法使用Kernel特定的行为维度来维持搜索的多样性。元提示进化采用遗传算法来优化prompt,prompt用于指导LLM生成Kernel代码。基于模板的参数优化使用预定义的Kernel模板,并通过优化模板参数来调整Kernel的性能。框架支持SYCL和CUDA两种GPU编程模型,方便进行跨平台比较。
🖼️ 关键图片
📊 实验亮点
KernelFoundry在KernelBench基准测试中,针对SYCL Kernel实现了平均2.3倍的加速,显著优于现有的基于LLM的Kernel生成方法。此外,KernelFoundry还支持CUDA Kernel的生成,并与先前的工作进行了比较,证明了其优越性。分布式框架的设计使得KernelFoundry能够方便地在不同的硬件平台上进行测试和部署。
🎯 应用场景
KernelFoundry可应用于各种需要高性能GPU Kernel的领域,如图像处理、科学计算、深度学习等。通过自动生成和优化GPU Kernel,可以显著提升应用程序的性能,降低开发成本。该研究的成果有助于推动GPU计算的普及和发展,加速各行各业的数字化转型。
📄 摘要(原文)
Optimizing GPU kernels presents a significantly greater challenge for large language models (LLMs) than standard code generation tasks, as it requires understanding hardware architecture, parallel optimization strategies, and performance profiling outputs. Most existing LLM-based approaches to kernel generation rely on simple prompting and feedback loops, incorporating hardware awareness only indirectly through profiling feedback. We introduce KernelFoundry, an evolutionary framework that efficiently explores the GPU kernel design space through three key mechanisms: (1) MAP-Elites quality-diversity search with kernel-specific behavioral dimensions to sustain exploration across diverse optimization strategies; (2) meta-prompt evolution, which co-evolves prompts with kernels to uncover task-specific optimization strategies, and (3) template-based parameter optimization to tune kernels to inputs and hardware. We evaluate this framework on KernelBench, robust-kbench, and custom tasks, generating SYCL kernels as a cross-platform GPU programming model and CUDA kernels for comparison to prior work. Our approach consistently outperforms the baseline methods, achieving an average speedup of 2.3x on KernelBench for SYCL. Moreover, KernelFoundry is implemented as a distributed framework with remote access to diverse hardware, enabling rapid benchmarking and featuring a flexible user input layer that supports kernel generation for a wide range of real-world use cases beyond benchmarking.