lohiaj/autokernels-genesis
GitHub: lohiaj/autokernels-genesis
基于LLM的GPU kernel自动优化循环工具,通过「提案-测试-保留或回滚」的迭代模式持续提升核函数吞吐性能。
Stars: 0 | Forks: 0
# autokernels
自动化的 GPU-kernel 优化循环。一个 LLM agent 提出修改,
运行你的基准测试,如果分数提升超过了噪声
阈值,则保留更改,否则回滚。重复此过程,直到被告知停止。改编自
Karpathy 的 autoresearch 模式;唯一特定于领域的细节是,评估
指标是 "kernel/e2e throughput"(核函数/端到端吞吐量)而不是 "training loss"(训练损失)。
三个文件:
| 文件 | 用途 |
|---|---|
| `bench.py` | 裁决工具。运行 N 次你的基准测试,检查正确性,与基线进行比较,输出 KEEP/REVERT JSON。 |
| `prompt.md` | agent 提示词。描述了该循环。将其交给你使用的 LLM agent。 |
| `README.md` | 本文件。 |
这就是全部内容。没有编排,没有沙箱,没有守护进程,也没有
假设类别的清单。
## 使用
```
# 1. 告诉 bench.py 如何运行你的 bench (必须向 stdout 打印 "score: ")
export AUTOKERNEL_BENCH_CMD="python my_bench.py --some-flags"
export AUTOKERNEL_TEST_CMD="pytest tests/" # optional; "" to skip
export AUTOKERNEL_TRIALS=3 # default; raise if your bench is noisy
# 2. 建立基线 (首次调用会在不进行比较的情况下写入 baseline.json)
python bench.py
# 3. 使用 prompt 启动你的 agent
# (无论你的 agent CLI 是什么 — Claude Code, Cursor, Aider, 等等。)
your-agent < prompt.md
```
agent 将读取 `prompt.md`,运行循环,并将每次接受的
更改写入为一个 git commit。`SESSION_LOG.md` 是它在不同尝试间的记忆。
## 配置
所有标志都是可选的;合理的默认值已内置在 `bench.py` 中:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
| `AUTOKERNEL_BENCH_CMD` | (必填) | shell 命令,必须打印输出 `score: ` |
| `AUTOKERNEL_TEST_CMD` | `""` | 正确性检查命令;退出码为 0 = 通过;为空则跳过 |
| `AUTOKERNEL_TRIALS` | `3` | 基准测试取平均值的运行次数 |
| `AUTOKERNEL_TIMEOUT_S` | `600` | 每次测试的超时时间 |
| `AUTOKERNEL_SIGMA_K` | `2.0` | 提升幅度必须超过 K * combined_sigma |
## 为什么这么简短
这个 repo 的早期版本有大约 1600 行的 harness、沙箱、watchdog、
分类器、多 GPU 编排器和五元裁决分类法。这些
都不是核心价值所在。核心价值在于这个循环:*提出、测量、
保留或回滚,重复。* Karpathy 在 LLM 训练中发现了这一点;我们
正将其应用于 GPU kernel。其他所有内容都是为了
应对特定事件而增加的范围蔓延——而且大多数事件最好直接呈现给
人类,而不是用更多的代码来掩盖。
如果你需要 8 GPU 多活动编排,只需在 8 个终端中运行此程序的 8 个
实例即可。“全局损失日志”就是跨
分支的 `git log --all --oneline`。
## 许可证
见 `LICENSE`。
标签:AI智能体, AMD MI300X, Autoresearch, Cutter, DLL 劫持, Genesis物理模拟器, Git, GPU优化, GPU集群, LLM代理, Python, 内核优化, 吞吐量优化, 多GPU, 多智能体协同, 大语言模型, 循环优化, 性能调优, 损失日志, 无后门, 网络安全研究, 自动化代码生成, 自动化研究, 自动调优, 逆向工具