Agentic CUDA Optimizer
用 AI Agent 自动优化 CUDA 内核
项目简介
Agentic CUDA Optimizer 是一个基于 LangGraph 的开源工作流项目,通过 AI Agent 自动化流程将 GPU 工作负载描述转化为经过验证的高性能 CUDA 内核实现。该工具全自动完成代码生成、正确性检查、性能基准测试和迭代优化,无需人工干预即可探索最优内核实现和 launch 配置组合。
核心功能
LangGraph 工作流驱动 Agent 通过循环迭代的方式优化内核:生成候选实现 → 编译验证 → 与参考输出对比正确性 → 性能基准测试 → 根据结果决定下一步策略。工作流全程自动化,模型可以同时修改内核代码和 launch 参数。
C++ CUDA 运行时引擎 独立编写的 C++ 工具链负责内核编译(通过 NVRTC)和 GPU 执行(通过 CUDA Driver API),输出结果由 Python 侧负责比对和候选筛选。编译时间和性能分析时间均不计入排名。
GPU 属性查询与 NVIDIA 文档研究 Agent 在优化过程中可查询目标 GPU 的硬件属性,并可主动查阅 NVIDIA 官方文档获取优化指导,结合 Nsight Compute 性能计数器分析结果来制定下一轮优化策略。
正确性优先的验证机制 所有候选内核必须通过正确性验证(与 NumPy 参考输出对比),通不过验证的候选在迭代预算内进行修复,无法通过则淘汰。排名使用所有性能 case 延迟的几何平均值。
技术实现
工作流程在每个迭代步骤中:
首先接收工作负载描述,可以是用户提供或由 AI 生成,包括函数签名、输入用例、参考内核和初始内核实现。随后在目标 GPU 上运行参考实现建立基准。
接着 Agent 提出代码修改建议,编译后在 GPU 上执行,与 NumPy 参考输出对比正确性,并用 CUDA Events 测量延迟(默认 10 次预热 + 100 次测量)。结果反馈给 Agent 用于指导下一轮优化方向。
最终将最快通过验证的候选内核保存,同时保留完整的执行历史、请求响应记录和延迟热力图。性能提升依赖于具体工作负载特性。
开发环境为 Windows + RTX 3060 Laptop GPU(其他 GPU 理论上兼容),依赖 Python 3.12+、CUDA Toolkit、CMake 3.24+、C++17 编译器和 OpenAI API Key。
快速上手
第一步:环境准备 确保机器配备 NVIDIA GPU 且已安装 CUDA Toolkit/driver,以及 Python 3.12+、CMake 3.24+ 和支持 C++17 的编译器。
第二步:创建虚拟环境并安装依赖
python -m venv .venv
.venvScriptspython -m pip install -r optimizer_agent/requirements.txt
第三步:编译 C++ 工具链
cmake -S cuda_test_harness -B cuda_test_harness/build -DCMAKE_BUILD_TYPE=Release
cmake --build cuda_test_harness/build --parallel
第四步:配置 API Key 在仓库根目录创建 .env 文件:
OPENAI_API_KEY=your-key-here
第五步:运行优化任务
.venvScriptspython optimizer_agent/optimizer_agent.py --description "Single-precision GEMM with rectangular matrices." --max-iterations 7
默认使用 gpt-5-mini 模型,中等推理强度。支持可选参数 --use-nsight 开启 Nsight Compute 性能分析,以及 --nvidia-research 启用 NVIDIA 官方文档研究功能。
适用人群
- 对 CUDA 性能优化有需求的高级开发者
- 需要自动化内核调优的 GPU 计算研究人员
- 希望将 AI Agent 能力应用于底层系统优化的工程师
评论与建议
登录 后参与评论或提建议