@realSharonZhou: 我们需要针对RSI的前沿模型强化学习能力提供更好的GPU性能基准测试,我有一些想法。…

X AI KOLs Timeline 新闻

摘要

Sharon Zhou提出了一个与厂商无关的内核级GPU性能基准测试,旨在帮助AI代理优化前沿模型的计算效率,并以AMD的AgentKernelArena为起点。

我们需要针对RSI的前沿模型强化学习能力提供更好的GPU性能基准测试,我有一些想法。 目标包括: 1) 帮助模型提高自身的计算效率(本质上是在新模型代际和新计算代际之间创建带有重要内核的“动态”强化学习环境) 2) 用更少的计算量提升性能(在计算资源紧张时很有用,也能在固定计算预算内实现更多迭代,并且更容易在现有的强化学习架构中实现) 3) 邀请更多人参与这一领域(通过降低计算门槛,包括计算类型不限于GPU/TPU甚至CPU;同时也吸引除了机器学习系统(MLSys)人员之外的人工智能领域人士)。 我们的想法是,我们需要一个生产级的内核级性能基准测试,且与厂商无关。它应该测量对顶尖开放权重大语言模型最实用的内核,比如GEMM、注意力机制、混合专家模型,也包括分布式机器学习组件如集合通信,例如all-gather、dispatch/combine等。通过纳入在硬件厂商之间有显著差异的内核来增加趣味性。 我们已经有越来越好的端到端模型级基准测试(例如InferenceX @SemiAnalysis_ 和 Endpoints @MLPerf),但运行诸如在线强化学习等有用的任务需要大量计算,甚至要频繁复现所有配置(精度、并行类型等)。内核级性能(而非完整模型性能)的另一个好处是,我们可以在CPU上相当快地模拟内核——这样就能扩展至不同、更廉价的计算平台。 内核级排行榜可以实时更新,比模型性能排行榜快得多。 这里有个起点:AMD的AgentKernelArena。我发现其他AI研究者也倾向于这种通用设置。https://github.com/AMD-AGI/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 Agentxxxxxxxx
Claude Codexxxxxxxx
OpenAI Codexxxxxxxxx

架构

核心组件

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 转换任务

执行流程

  1. 配置加载:加载包含智能体、任务和 LLM 设置的 config.yaml
  2. 智能体注册:根据 AgentType 枚举动态加载智能体启动器、提示词构建器和后处理处理器
  3. 任务发现:扫描 tasks/ 目录,查找符合指定类别的任务配置
  4. 工作区设置:为每个任务创建带时间戳的隔离工作区
  5. 提示词构建:根据配置、源代码和指令/速查表构建任务特定的提示词
  6. 智能体执行:在工作区中使用构建的提示词启动智能体
  7. 结果收集:保存智能体输出、日志和修改后的代码
  8. 后处理:运行编译、正确性测试、性能剖析和评分
  9. 报告生成:生成包含各项指标的全面评估报告

对于多 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 了解辅助工作流。

用法

基本用法

  1. 配置 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
  1. 运行评估:
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 分。

注意:这不是唯一的评分方式。用户始终可以定义自己的评分方式。

开发

添加新智能体

  1. 创建智能体目录:agents/your_agent/
  2. 实现启动函数:
# 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
  1. 在 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
  1. 添加提示词构建器支持(如果需要):
# 在 load_prompt_builder 中
if agent_type in [..., AgentType.YOUR_AGENT]:
    return prompt_builder
  1. 添加后处理支持(如果需要):
# 在 load_post_processing_handler 中
if agent_type in [..., AgentType.YOUR_AGENT]:
    return general_post_processing

添加新任务

  1. 创建任务目录:tasks/<category>/<task_name>/
  2. 添加源文件和脚本,结构如下:
tasks/<category>/<task_name>/
├── config.yaml        # 任务配置(必需)
├── scripts/
│   └── task_runner.py # 编译/正确性/性能运行器(推荐)
└── src/
    └── <.cu, .hip, .py 等>
  1. 创建 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
  1. 添加基线性能(可选):创建包含预期性能指标的 baseline.txt
  2. 运行任务验证器智能体(必需):所有新任务在合并前必须通过任务验证器智能体的检查。验证器运行 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 个以上任务
  • 按任务类型和难度级别重组任务目录

相似文章

@TheAhmadOsman: 本地AI现在很好了

X AI KOLs Following

Ahmad宣布了一个本地AI硬件竞技场,使用ODS在RTX PRO 6000、DGX Spark、Strix Halo、M5 MacBook Pro和ChatGPT等硬件上对LLM进行基准测试,并邀请社区为未来的比较提供意见。