@realSharonZhou: 我们需要针对RSI的前沿模型强化学习能力提供更好的GPU性能基准测试,我有一些想法。…
摘要
Sharon Zhou提出了一个与厂商无关的内核级GPU性能基准测试,旨在帮助AI代理优化前沿模型的计算效率,并以AMD的AgentKernelArena为起点。
查看缓存全文
缓存时间: 2026/07/05 22:39
我们需要更好的 GPU 性能基准测试,用于将强化学习能力引入前沿模型以实现递归自我改进(RSI),我有一些想法。目标包括:1) 帮助模型提高自身计算效率(基本上是“活”的强化学习环境,其中的内核对新模型代际和新计算代际都至关重要)2) 用更少的计算量推动性能提升(在计算资源紧张时有用,也能在固定计算预算下实现更多次迭代;在现有强化学习设置中也更容易实现)3) 邀请更多人贡献于这一领域(通过降低计算门槛,包括计算类型——不仅限于 GPU/TPU,甚至 CPU;同时吸引不同背景的人,除 MLSys 人员外也包括 AI 从业者)。核心想法是:我们需要一个生产级、供应商无关的内核级性能基准。它应该衡量对顶级开源大语言模型最有用的内核,比如 GEMMs、注意力机制、MoE,以及分布式机器学习中的收集操作(如 all-gather、dispatch/combine 等)。通过纳入硬件供应商之间差异显著的内核,使其更具趣味性。目前我们在端到端模型层面已有越来越出色的基准(如 @SemiAnalysis_ 的 InferenceX 和 @MLPerf 的 Endpoints),但要运行有用的任务(如在线强化学习),甚至频繁复现所有配置(精度、并行类型等),所需计算量巨大。内核级性能(而非完整模型性能)的另一个好处是,我们可以在 CPU 上相当快地模拟内核——从而扩展到不同、更便宜的计算平台。内核级排行榜可以实时更新,比模型性能类榜单快得多。这里有一个起点:AMD 的 AgentKernelArena。我发现其他 AI 研究人员也倾向于这种通用设置。https://github.com/AMD-AGI/AgentKernelArena… 一个供应商无关的版本将会非常出色,是对社区极有价值的资产。它也将真正降低计算门槛,让更多人参与贡献。总体而言,我认为这可以极大地加速该领域的发展。—
AMD-AGI/AgentKernelArena
来源:https://github.com/AMD-AGI/AgentKernelArena
AgentKernelArena:GPU 内核优化智能体的竞技场
随着 AI 编码智能体(如 Claude Code 和 OpenAI Codex)的快速进步,我们需要的不仅仅是精心挑选的演示,尤其是在 GPU 编程这样的专业领域。AgentKernelArena 是由 AMD 构建的标准化评估竞技场,用于衡量 AI 编码智能体在真实 GPU 内核优化任务上的表现。
演示
一个用于说明的在线演示位于:http://165.245.130.75/ 此演示仅用于展示结果,不应视为最终基准排行榜。
概述与特性
AgentKernelArena 提供了一个端到端、隔离的基准测试环境,让基于 LLM 的智能体(Cursor Agent、Claude Code、Codex 以及自定义智能体)在同一组内核任务上使用客观、可复现的指标进行并列评估。
AgentKernelArena 通过结合以下要素,实现了对 AI 智能体在 GPU 内核优化任务上的系统评估:
- 多智能体竞技场:Cursor、Claude Code、Codex 以及自定义智能体
- 多模型支持:OpenAI(GPT-5)、Anthropic Claude(Opus 和 Sonnet 系列)以及通过 OpenRouter 或 vLLM 接入的其他模型
- 任务类别:HIP(ROCm 示例、rocPRIM、客户 HIP)、Triton(vLLM 风格的本地测试环境和 ROCmBench)以及 Torch2HIP 转换
- 真实指标:自动评估编译成功、正确性以及真实的 GPU 性能加速比
- 专为公平比较设计:标准化任务、环境、提示词和评分,支持排行榜式评估
- 智能体工具的 A/B 测试:通过在有/无新 MCP 服务器、技能、提示词或智能体端工具的情况下运行同一任务集,并比较标准化评分,来评估其是否真正改进效果
- 工作区隔离:每个任务在带时间戳的重复工作区中运行,确保可复现性
- 多 GPU 并行运行:在多 GPU 服务器上,为每个 GPU 启动一个隔离的 Docker 工作单元,空闲 GPU 立即从共享队列中获取下一个任务
- 全面日志记录:详细日志包含时间戳、提示词、输出和每次任务执行的结果
- 灵活配置:基于 YAML 的配置,用于任务、智能体和 LLM 参数
A/B 测试与消融研究
除了比较不同的智能体和模型,AgentKernelArena 还可用于评估新的智能体端能力是否真正有效。例如,当引入新的 MCP 服务器、技能、提示词策略或工具集成时,你可以对同一任务集运行两次——一次启用该能力,一次不启用——并在相同的评估条件下比较编译、正确性、性能和总体得分。这使得 AgentKernelArena 不仅可以用作排行榜式基准,还可以作为受控的 A/B 测试框架,用于衡量智能体改进的实际影响。
排行榜即将发布,敬请期待!
AgentKernelArena 正在积极开发中。即将发布的版本将公布详细的评估结果,比较各智能体在多个任务类别上的表现,并使用标准化的正确性和性能评分。
| 模型 | 编译 | 正确性 | 性能 | 总分 |
|---|---|---|---|---|
| Cursor Agent | xx | xx | xx | xx |
| Claude Code | xx | xx | xx | xx |
| OpenAI Codex | xx | xx | xx | xx |
架构
核心组件
AgentKernelArena/
├── main.py # 主编排入口
├── config.yaml # 全局配置
├── src/
│ ├── module_registration.py # 动态智能体/提示词/后处理加载
│ ├── preprocessing.py # 工作区设置与环境检查
│ ├── prompt_builder.py # 任务提示词构建
│ ├── postprocessing.py # 结果分析与报告生成
│ ├── score.py # 评估指标评分逻辑
│ ├── tasks.py # 任务发现与注册
│ └── utils/
│ └── report_generation.py # 聚合报告分析工具
├── agents/
│ ├── cursor/ # Cursor 智能体集成
│ ├── claude_code/ # Claude Code 智能体集成
│ ├── codex/ # Codex CLI 智能体集成
│ ├── task_validator/ # 任务质量验证器
│ └── __init__.py # 智能体注册表
└── tasks/ # 任务定义
├── rocm-examples/ # ROCm 示例内核
├── rocprim/ # rocPRIM 内核
├── customer_hip/ # 自定义 HIP 内核
├── triton/ # Triton 基准内核
└── torch2hip/ # Torch2HIP 转换任务
执行流程
- 配置加载:加载包含智能体、任务和 LLM 设置的
config.yaml - 智能体注册:根据 AgentType 枚举动态加载智能体启动器、提示词构建器和后处理处理器
- 任务发现:扫描
tasks/目录,查找符合指定类别的任务配置 - 工作区设置:为每个任务创建带时间戳的隔离工作区
- 提示词构建:根据配置、源代码和指令/速查表构建任务特定的提示词
- 智能体执行:在工作区中使用构建的提示词启动智能体
- 结果收集:保存智能体输出、日志和修改后的代码
- 后处理:运行编译、正确性测试、性能剖析和评分
- 报告生成:生成包含各项指标的全面评估报告
对于多 GPU 运行,宿主端的 Docker 运行器会在运行目录下创建一个共享的 .parallel/ 队列,并为每个 GPU 启动一个长期运行的 worker 容器。每个 worker 通过原子描述符移动获取任务,每次只运行一个任务且仅可见一个 GPU,然后获取下一个任务。所有 worker 完成后执行最终的后处理。
安装
先决条件
- Docker
- 适合您 GPU 架构的 SGLang Docker 镜像(
gfx942使用lmsysorg/sglang:v0.5.12-rocm720-mi30x;gfx950使用lmsysorg/sglang:v0.5.12-rocm720-mi35x) - Git
- 对于您计划评估的智能体,安装宿主端智能体 CLI
设置
# 克隆仓库
git clone <repo-url>
cd AgentKernelArena
# 安装智能体 CLI(示例)
# 对于 Claude Code:npm install -g @anthropic-ai/claude-code
# 对于 Codex CLI:按照官方 Codex CLI 说明安装,然后确保 `codex` 在 PATH 中可用。
# 验证 Docker 可识别 GPU/运行时并重用智能体登录状态
make docker-smoke
make docker-check-agents
性能计时辅助工具存放在 src/tools/perf/ 中;提交的任务源保留存根,这些存根会在运行工作区中具体化。请参阅 src/tools/perf/README.md 了解辅助工作流。
用法
基本用法
- 配置
config.yaml:
# 选择智能体类型
agent:
template: claude_code # 选项:cursor, claude_code, codex, task_validator
max_iterations: 5
# 指定要运行的任务
tasks:
- rocm-examples/bitonic_sort
- customer_hip/silu
# - all # 运行所有任务
target_gpu_model: MI300
log_directory: logs
workspace_directory_prefix: workspace
- 运行评估:
make docker-run CONFIG=config.yaml
在多个 GPU 上并行运行同一任务集:
# 使用显式 GPU ID
make docker-parallel-run CONFIG=config.yaml GPU_IDS=0,1,2,3,4,5,6,7
# 或者省略 GPU_IDS,让系统通过 rocm-smi --showid 自动发现 GPU
make docker-parallel-run CONFIG=config.yaml
# 为运行目录添加标签
make docker-parallel-run CONFIG=config.yaml GPU_IDS=0,1 RUN_ARGS="--run-suffix parallel_smoke"
docker-parallel-run 为每个 GPU 启动一个 Docker worker。每个 worker 有独立的智能体状态和缓存目录,且在容器内只看到一个逻辑 GPU(0)。它支持常规优化智能体和 task_validator。恢复并行运行的方式与串行运行相同:
make docker-parallel-run CONFIG=config.yaml GPU_IDS=0,1,2,3 RUN_ARGS="--resume-latest"
make docker-parallel-run CONFIG=config.yaml GPU_IDS=0,1,2,3 RUN_ARGS="--resume-run run_20260702_041903_parallel8"
高级用法
运行特定任务类别
tasks:
- rocm-examples/* # 所有 ROCm 示例
- rocprim/* # 所有 rocPRIM 任务
- customer_hip/mmcv/* # 所有 MMCV HIP 内核
- triton2triton/vllm/* # vLLM 风格的 Triton 内核任务
- triton2triton/rocmbench/* # ROCmBench Triton 任务
- instruction2triton/rocmbench/* # 指令到 Triton 的 ROCmBench 任务
- torch2hip/* # 所有 Torch2HIP 转换任务
任务配置
每个任务由其目录下的 config.yaml 定义:
# tasks/rocm-examples/bitonic_sort/config.yaml
source_file_path:
- main.hip
target_kernel_functions:
- bitonic_sort_kernel
compile_command:
- make
correctness_command:
- ./applications_bitonic_sort -l 15
performance_command:
- rocprof-compute profile -n kernelgen --path rocprof_compute_profile --no-roof --join-type kernel -b SQ -b TCP -b TCC -- ./applications_bitonic_sort -l 15
- rocprof-compute analyze --path rocprof_compute_profile -b 2
task_type: hip2hip
prompt:
source_code: null # 可选:覆盖默认的源代码包含
instructions: null # 可选:自定义指令
cheatsheet: null # 可选:提供速查表/参考
评分系统
AgentKernelArena 使用累积评分系统:
| 指标 | 分数 | 描述 |
|---|---|---|
| 编译 | 20 | 代码成功编译,无错误 |
| 正确性 | 100 | 代码产生正确输出(通过测试) |
| 加速比 | 比例 × 100 | 相对于基线的性能提升 |
示例:一个编译通过(20)、正确性通过(100)且达到 1.5 倍加速比(150)的提交将获得 270 分。
注意:这不是唯一的评分方式。用户始终可以定义自己的评分方式。
开发
添加新智能体
- 创建智能体目录:
agents/your_agent/ - 实现启动函数:
# agents/your_agent/launch_agent.py
from agents import register_agent
@register_agent("your_agent")
def launch_agent(prompt: str, log_directory: str, workspace: str) -> str:
"""
启动您的智能体。
返回:
str: 智能体输出
"""
# 您的智能体实现
return result
- 在 module_registration.py 中注册:
# 在 AgentType 枚举中添加
class AgentType(Enum):
YOUR_AGENT = "your_agent"
# 在 load_agent_launcher 中添加导入
if agent_type == AgentType.YOUR_AGENT:
from agents.your_agent import launch_agent
- 添加提示词构建器支持(如果需要):
# 在 load_prompt_builder 中
if agent_type in [..., AgentType.YOUR_AGENT]:
return prompt_builder
- 添加后处理支持(如果需要):
# 在 load_post_processing_handler 中
if agent_type in [..., AgentType.YOUR_AGENT]:
return general_post_processing
添加新任务
- 创建任务目录:
tasks/<category>/<task_name>/ - 添加源文件和脚本,结构如下:
tasks/<category>/<task_name>/
├── config.yaml # 任务配置(必需)
├── scripts/
│ └── task_runner.py # 编译/正确性/性能运行器(推荐)
└── src/
└── <.cu, .hip, .py 等>
- 创建
config.yaml,所有必需字段使用列表(而不是标量字符串):
source_file_path:
- src/my_kernel.hip
target_kernel_functions:
- my_kernel_function
compile_command:
- python3 scripts/task_runner.py --mode compile
correctness_command:
- python3 scripts/task_runner.py --mode correctness
performance_command:
- python3 scripts/task_runner.py --mode performance
task_type: hip2hip # 可选值:hip2hip, cuda2hip, triton2triton, torch2hip, instruction2triton, repository, flydsl2flydsl
prompt:
source_code: null
instructions: null
cheatsheet: null
- 添加基线性能(可选):创建包含预期性能指标的
baseline.txt - 运行任务验证器智能体(必需):所有新任务在合并前必须通过任务验证器智能体的检查。验证器运行 10 项自动检查,涵盖配置模式、源文件存在性、内核符号解析、编译、正确性、性能、自包含性、GPU 挂起检测、正确性实现审查以及结果模板兼容性。
# 配置验证器以针对新任务
# 在仓库根目录的 config.yaml 中:
agent:
template: task_validator
tasks:
- <category>/<task_name>
# 运行验证
make docker-run CONFIG=config.yaml
查看工作区目录中生成的 validation_report.yaml。任务必须达到通过整体状态(所有检查通过)。如果只有警告而无失败,则警告状态可接受,但需提供理由。失败状态意味着任务必须在合并前修复。
有关验证检查和要求的完整列表,请参阅 agents/task_validator/README.md。
后续步骤
- 通过更好的交互性和用户体验增强 A/B 测试
- 为技术报告评估最新智能体
- 通过全面的形状覆盖率标准化留出测试
- 通过独立智能体添加留出测试评估
- 新功能:支持多智能体在多 GPU 服务器上运行
- 新功能:从之前的实验恢复评估
- 智能体可能在任务执行期间挂起,阻塞测试完成
- 将 PyTorch2HIP 任务集扩展到 100 个以上任务
- 将 CUDA2HIP 任务集扩展到 100 个以上任务
- 将 Triton2Triton 任务集扩展到 100 个以上任务
- 将 HIP2HIP 任务集扩展到 100 个以上任务
- 按任务类型和难度级别重组任务目录
相似文章
AgentKernelArena:兼顾泛化能力的GPU内核优化代理基准测试
AgentKernelArena是一个开源基准测试,用于评估AI编码代理在GPU内核优化方面的表现,涵盖完整的代理工作流程以及跨196个任务对未见配置的泛化能力。
AA-AgentPerf-Local:在笔记本和工作站上对本地 AI 智能体进行基准测试
Artificial Analysis 开源了 AA-AgentPerf-Local,这是一款推理基准测试工具,通过重放真实智能体轨迹来测量智能体式 AI 在笔记本和工作站上的运行速度,并给出了 NVIDIA DGX Spark、RTX 5090、AMD Ryzen AI Halo 和 MacBook Pro M5 Pro 的初步测试结果。
@rohanpaul_ai: NVIDIA 刚刚发布了首个代理型 AI 基准测试结果,其中 GB300 NVL72 每兆瓦可运行多达 20 倍以上的编码代理…
NVIDIA 发布了首个代理型 AI 基准测试结果,显示 GB300 NVL72 每兆瓦可运行的编码代理数量比 H200 多出 20 倍,该测试基于 Artificial Analysis 的 AgentPerf 基准。
(吐槽;)) 让你的基准测试更贴近现实
社区吐槽:呼吁AI模型基准测试应更贴近现实,考虑上下文大小、多模态特性、具体硬件配置和并行处理,而不仅仅是原始速度。
@TheAhmadOsman: 本地AI现在很好了
Ahmad宣布了一个本地AI硬件竞技场,使用ODS在RTX PRO 6000、DGX Spark、Strix Halo、M5 MacBook Pro和ChatGPT等硬件上对LLM进行基准测试,并邀请社区为未来的比较提供意见。