展示 HN:Agentic CUDA 内核优化器
CUDA 内核优化器内容 如何工作 安装 运行 示例 结果和限制 工作流程图 一个代理式 CUDA 内核优化器,通过自动化的代码生成、正确性检查、基准测试和优化循环,将工作负载描述转换为 GPU 实现。由 LangGraph 提供支持,代理探索内核实现和启动配置,查询 GPU 属性,并可以研究 NVIDIA 文档以获取优化指导,检查 Nsight Compute 计数器以告知下一个实验。每个实验都会被记录,最快的验证实现将被保留。该模型可以更改内核代码和每个案例的启动配置。一个独立的 C++ 工具使用 NVRTC 编译内核,通过 CUDA 驱动程序 API 启动它们并保存输出。Python 处理比较和候选选择。如何工作 加载或生成签名、输入案例、参考内核和初始内核。运行参考并评估初始实现。提出更改,编译它,使用 NumPy 比较输出,并测量内核延迟。将结果反馈到下一次尝试;在迭代预算内修复无效候选。保存最快的验证候选、执行历史和时间热图。每个案例必须通过验证。排名使用性能案例的延迟几何平均数;小的正确性案例不会影响分数。时间默认为 10 次预热启动和 100 次测量启动,使用 CUDA 事件。编译时间和分析器重放时间不包括在排名中。安装 在 Windows 上使用 RTX 3060 笔记本 GPU 开发。需要 Python 3.12+,NVIDIA GPU 和兼容的 CUDA Toolkit/驱动程序,CMake 3.24+,C++17 编译器和 OpenAI API 密钥。下面的构建命令使用安装了 C++ 工具的 Visual Studio 2026。从库的根目录:python - m venv .venv .venv\Scripts\python - m pip install - r optimizer_agent / requirements.txt cmake - S cuda_test_harness - B cuda_test_harness / build - DCMAKE_BUILD_TYPE = Release cmake -- build cuda_test_harness / build -- parallel 在库的根目录中创建一个 .env 文件:OPENAI_API_KEY = your-key-here 运行 .venv\Scripts\python optimizer_agent / optimizer_agent.py -- description "单精度 GEMM 与矩形矩阵。" -- max - iterations 7 默认模型是 gpt-5-mini,具有中等推理努力。API 使用费用将计入您的帐户。使用 -h 查看所有选项,或 --config optimizer_agent/example.json 查看包含的配置示例。使用 --signature,--reference,--initial-kernel 和 --input-cases 提供您自己的工作负载组件。省略的组件将被推断或生成。要从早期运行中继续,使用其保存的输入: .venv\Scripts\python optimizer_agent / optimizer_agent.py -- description "单精度 GEMM 与矩形矩阵。" -- input - cases results / run - 001 / input_cases.json -- reference results / run - 001 / reference.cu -- initial - kernel results / run - 001 / best.cu -- max - iterations 7 此示例假设早期运行生成了 reference.cu;提供的参考将被保存为 supplied-reference.cu。输入清单保留对其二进制数据的路径,因此请保持这些文件可用。可选标志: --use-nsight:在每个有效候选之后分析性能案例,并向模型公开分析工具。需要 Nsight Compute 和访问 GPU 性能计数器的权限。 --nvidia-research:在生成内核之前检索 NVIDIA 指导。示例 在 RTX 3060 笔记本 GPU 上的 Float32 GEMM,启用 NVIDIA 研究和 Nsight Compute。运行 022 运行 023 优化生成的起始内核。从运行 022 的最佳内核继续,使用相同的输入和参考。结果和限制 每个会话在 results/run-NNN/ 下获得一个目录,其中包含内核源、请求、输入/输出数据、模型/工具响应、history.json 和 summary.json。成功的运行导出 best.cu,每个案例重放请求,以及 heatmap.png / heatmap.svg。当启用分析时,将保存 Nsight 报告。这是一个用于单个内核的实验优化器。通过提供的案例并不能证明一般正确性,生成的参考也不是独立的正确性权威。改进依赖于工作负载;当前不包括与 cuBLAS 或其他厂商库的比较。在比较时间时请保持 GPU 空闲。生成的输入脚本作为 Python 子进程在本地执行,没有沙盒。生成的 CUDA 内核也在本地 GPU 上运行。工作流程图 下图是从编译的 LangGraph 工作流程渲染,启用了 Nsight 分析。虚线边缘表示条件路线。没有 --use-nsight 时,评估路线直接进入下一个尝试或最终化;除非设置了 --nvidia-research,否则跳过 NVIDIA 研究。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡