MaxKernel:面向 TPU 的 Agentic Kernel 生成系统
- 关联论文:2609.04523
- 作者:Tom
- 更新:2026-09-07
一句话结论
MaxKernel 是一个多 Agent 系统,让 LLM 自己生成和优化 TPU 自定义内核:三种范式(人机协作 / 全自动 / 图搜索)均能在 JaxBench 50 个 TPU 内核任务上匹配专家手调基线,并在真实大模型工作负载上带来显著性能提升。
解决什么真问题
为 TPU 等 AI 加速器写高性能自定义内核(custom kernel)是一个超高门槛的任务:需要深度的硬件专业知识(tensor layout、memory bandwidth、compute unit utilization)以及数月的手工优化。
传统做法: - 专家手工写 → 质量高但人力成本极高,无法规模化 - 编译器自动生成 → 质量稳定但远低于手工优化,上限低
LLM 能否理解硬件约束、自动生成和迭代优化内核?现有研究停留在单轮生成或简单反馈循环,缺乏系统性的多轮优化能力。
核心问题:能否构建一个 LLM-based Agent 系统,自主完成从高层需求到可编译、可验证、硬件性能达标的自定义 TPU 内核的完整流程?
核心方法
系统架构:Multi-Agent 分工
MaxKernel 由一个共享子 Agent 池构成,所有子 Agent 通过中央协调器调用,处理以下专门职责:
| 子 Agent | 职责 |
|---|---|
| Planner | 接收需求,拆解成实现步骤 |
| Implementer | 写具体 JAX kernel 代码 |
| Self-Debugger | 捕获编译错误和运行时异常,生成修复策略 |
| Tester | 验证功能正确性(数值精度、对齐等) |
| Hardware Profiler | 测量实际硬件性能(throughput、memory bandwidth) |
三种开发范式
范式 1:HITL(Human-in-the-Loop)Agent - Agent 每步生成后暂停,等人类确认 - 适合需要专家把关的关键设计决策 - 人类保有否决权和方向调整权
范式 2:Auto Agent(全自动) - Agent 执行全自动 metric/trace 驱动优化循环 - 流程:生成 → 编译 → 测试 → profile → 根据性能反馈修改 → 循环直到收敛 - 无人工干预,适合批量生产
范式 3:Graph-Based Autonomous Search(图搜索) - 在 Auto Agent 基础上,加入设计空间全局探索 - 将内核优化问题建模为图搜索:节点=实现变体,边=优化转换(loop unrolling、memory tiling 等) - 避免陷入局部最优,在更大的设计空间采样
关键支撑:实时编译器反馈
MaxKernel 的核心工程决策:不是让 LLM 记住 TPU 硬件细节,而是让 LLM 在循环中实时接收 JAX/XLA 编译器报错和硬件 profile 数据,把硬件知识转化为可操作的反馈信号。
这相当于把 TPU 专业知识"外化"到工具输出中,LLM 无需背默硬件手册,只需要学会解读反馈并修改代码。
评估:Benchmarks
JaxBench:50 个多样化的 TPU 内核任务,覆盖: - 矩阵乘法变体 - 卷积配置 - 归约操作 - 非规则 tensor 操作 - 混合精度任务
真实工作负载:来自 SOTA 开源模型的复杂内核需求(非公开名字,⚠️ 原文未明确)
关键实验与数据
- 三种范式横向对比:HITL / Auto / Graph-Auto 在 JaxBench 50 任务上的端到端成功率
- 与专家手调基线对比:MaxKernel 生成的内核与专家手调版本的性能差值(原文未给具体数字,⚠️ "matching expert hand-tuned baselines" 为定性描述,建议 fetch PDF 核验)
- 真实工作负载提升:在 SOTA 开源模型上的具体性能提升幅度(⚠️ 原文未在 abstract 给出数字)
- 图搜索 vs Auto:消融图搜索组件对全局最优解覆盖率的影响
- 开源:GitHub
AI-Hypercomputer/accelerator-agents/tree/main/MaxKernel(⚠️ 链接已给出,建议 web_fetch 核实开源质量和代码结构)
亮点与局限
亮点: - 多范式覆盖:HITL / Auto / Graph-Auto 三种范式覆盖了从"人机协作"到"全自动"的需求光谱,设计空间考虑周全 - 分工 Agent 架构:Planner/Implementer/Debugger/Tester/Profiler 的分离让每个子 Agent 职责单一,降低了单 Agent 处理多任务的困惑 - 硬件反馈环工程化:实时编译器反馈是把专家知识外化的正确方向,LLM 作为"代码修改引擎"比作为"硬件知识存储器"更可靠 - 开源可用:提供了 GitHub 链接,工程团队可以直接尝试
局限: - 结果量化不足:abstract 只说"matching expert hand-tuned baselines"和"significant performance",没有具体数字(Speedup ×? FLOPS 提升 %?),难以与其他工作横向比较 - Benchmark 透明度:JaxBench 50 个任务的难度分布、评估标准、基线设置均未在 abstract 说明,⚠️ 建议 fetch PDF §4 核实 - 真实工作负载匿名:来自"SOTA 开源模型"的工作负载未披露名称,无法独立核实结果 - TPU 专属性:方法针对 TPU JAX 生态设计,NVIDIA CUDA / AMD ROCm 生态的适用性未知 - 规模化未验证:50 个任务覆盖了主要类别,但大规模生产部署(上千个不同内核需求)的稳定性和成本效率未测
对工程落地的启发
- AI-Hypercomputer 路线可借鉴:MaxKernel 把内核生成变成一个可配置的多 Agent 循环,这套框架原则上可以迁移到 CUDA kernel 生成(NVIDIA 的 ptxjit、MLIR-Based kernel fusion),只要替换掉 JAX/XLA 反馈层
- Compiler Feedback as First-Class Signal:MaxKernel 最重要的工程洞察是把编译器报错变成 Agent 的输入信号——类似思路可以迁移到任何"LLM 写复杂配置/代码"的场景:数据库 query optimizer、FPGA bitstream generator、SQL query planner
- 三层范式按需选:团队有硬件专家 → 用 HITL;批量生成 → 用 Auto;追求 SOTA 性能 → 用 Graph-Auto;同一套系统覆盖三个场景,工程和维护成本低
- 图搜索扩展设计空间:Graph-Based Autonomous Search 避免局部最优的思想对其他组合优化问题(芯片 placement、内存分配策略)也有借鉴价值
- 落地前提:需要可靠的编译器反馈 + 可量化的性能 profile + 可执行的测试——这三个基础设施缺一不可,单纯 LLM 代码生成能力本身不是瓶颈
与同方向工作的关系
- 与 AlphaCode、Codex 等代码生成系统:AlphaCode/Codex 生成通用 Python/C++ 代码,MaxKernel 生成硬件kernel——后者对硬件正确性(数值精度、对齐)和性能(硬件利用率)有双重约束,难度更高
- 与 TIMELY、Karpathy's microkernel 工作:都是让 LLM 生成高性能数值代码,但 MaxKernel 强调多轮优化循环而非单轮生成,且用真实硬件 profile 驱动
- 与 Jina AI、LongVQUBench 等多模态 RAG 工作:MaxKernel 属于 LLM + 硬件 infra 的垂直整合,RAG 的 chunk/retrieval 方法在此不直接适用
- 与 vLLM / TGI 的 kernel 优化:vLLM 等推理引擎在 kernel 级别做了大量手调优化;MaxKernel 的 vision 是把这些手工优化自动化——两者的最终目标接近,路径不同
适合谁读
- AI Infra 工程师:负责大模型推理优化、硬件加速器软件栈,MaxKernel 直接关乎 TPU 上 kernel 生成的前沿
- Compiler 工程师:关注 MLIR / XLA / JAX 生态,MaxKernel 展示了 LLM 如何与编译器反馈系统集成
- LLM 应用研究者:关注 Agent 系统的 tool-use / self-debugging / multi-agent collaboration 能力,MaxKernel 是目前最复杂的硬件 domain multi-agent 实例之一
- AI 系统架构师:考虑把 LLM 引入芯片设计流程(不只是 kernel 生成,还可能是 RTL synthesis、floorplanning)的技术决策者
⚠️ 说明:abstract 层面结果描述偏定性("matching baselines"、"significant performance"),具体数字建议 fetch PDF §4/§5 实验部分核验。开源链接已给出,建议 web_fetch 核实仓库活跃度和代码质量。TPU JAX 生态专属,NVIDIA 及其他加速器用户需评估方法迁移成本。