From b1a44c34881291f6893217cd3630791d809096ac Mon Sep 17 00:00:00 2001 From: MaseChen <93691652+MaseChen@users.noreply.github.com> Date: Tue, 7 Jul 2026 19:54:57 -0700 Subject: [PATCH 1/7] =?UTF-8?q?Update=20=E6=B5=8B=E8=AF=95=E5=8F=8A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=AC=E5=9C=B0=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...:从性能基线到XPU-OJ冒烟提交.md | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md index 730ee7f..f153ab0 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md @@ -75,7 +75,15 @@ 使用兑换码兑换 GPU 租用余额: -访问 [*模力方舟官网*](https://ai.gitee.com/),在左侧边栏进入 “费用中心”,点击右上角 “兑换” 使用兑换码兑换代金券; +访问 [*模力方舟官网*](https://ai.gitee.com/),首次登录需要使用手机号或者 Gitee 账号进行注册。登录后显示页面: + +![mainpage](https://origin.picgo.net/2026/07/08/Screenshot-2026-07-07-at-7.03.00PM4301a879ed958b6b.png) + +点击页面左上角 “giteeAI - 模力方舟” 图标,进入用户控制台: + +![dashboard](https://origin.picgo.net/2026/07/08/Screenshot-2026-07-07-at-7.08.25PMbdb17cde254ddf29.png) + +在左侧边栏选择 “费用中心”,点击右上角 “兑换” 使用兑换码兑换代金券: ![quote](https://origin.picgo.net/2026/06/23/-2026-06-23-1515027374ed9083ad0aea.png) @@ -171,7 +179,7 @@ which mxcc && mxcc --version || echo "mxcc 未找到,请确认 MACA 工具链 - 已确认 Agent 可以正常调用模型。 -配置过程可参考 [*模力方舟Agent部署准备教程*](模力方舟Agent部署准备教程.md)。 +配置过程可参考 [*模力方舟Agent部署准备教程*](./模力方舟Agent部署准备教程.md)。 **以配置 OpenCode 为例** @@ -204,6 +212,8 @@ XPU-OJ 账号由组委会统一发放,参赛者无需自行注册。 ### 4.5 评分规则概要 +评分规则详情参考 [*基于AI Agent开发范式的国产GPU大模型推理算子库优化比赛方案*](https://gitlink.org.cn/metax-maca/op_optimization/tree/master/%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E7%AE%97%E5%AD%90%E5%BA%93%E4%BC%98%E5%8C%96%2F%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E7%AE%97%E5%AD%90%E6%8E%A8%E7%90%86%E5%BA%93%E4%BC%98%E5%8C%96%E6%96%B9%E6%A1%88.md) + 提交作品的最终评价采用 **100 分制**,由客观评测和专家评审共同组成: | 类别 | 评审维度 | 权重 | 说明 | @@ -497,7 +507,7 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc > 完成 benchmark 后,需要注意 benchmark 脚本主要用于建立性能基线,并不需要最终提交 > 最终评测以 XPU-OJ 为准,评测程序会调用选手提交代码中的 `run_kernel`,并将输出结果与 OJ 后台参考实现结果进行比较 -下面以题目 **20001 FlashInfer Ragged Prefill** 为例,从本地题目文档 [*Agent 推理算子库优化 - FlashInfer Ragged Prefill*](./operator_task_package/flashinfer_task_package/xpuoj_problem/problem_20001/Agent%20推理算子库优化%20-%20FlashInfer%20Ragged%20Prefill.md) 中逐节解读关键信息。 +下面以题目 **20001 FlashInfer Ragged Prefill** 为例,从本地题目文档 [*Agent 推理算子库优化 - FlashInfer Ragged Prefill*](operator_task_package%2Fflashinfer_task_package%2Fxpuoj_problem%2Fproblem_20001%2FAgent%20推理算子库优化%20-%20FlashInfer%20Ragged%20Prefill.md) 中逐节解读关键信息。 1. `## 1. 题目描述` — 我要实现什么? @@ -648,7 +658,7 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc - [*点击查看参考 Prompt*](#参考%20prompt) - - [*点击查看参考冒烟代码*](#20001%20flashinfer%20ragged%20prefill%20参考冒烟代码) + - [*点击查看参考冒烟代码*](#参考冒烟代码) 更多 OpenCode 使用教程和 Agent 使用技巧可见 @@ -858,7 +868,7 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc - 各题分数为 OJ 内部评分(OJ baseline = 50 分),排名按 Total(各题 OJ 得分之和)降序。**比赛最终只取单一最高分任务**,而非多任务累加 - - 每列下方的括号数值(如 `(48)`)表示该题提交次数 + - 每列下方的括号数值(如 `(24)`)表示该题提交次数 - `pass = false` 的提交不参与排名(对应 0 分) @@ -1244,7 +1254,7 @@ Before output, confirm ALL items. Any failure = 0 points. [*回退到 Step 8*](#step%208提交%20oj%20冒烟代码) -### 20001 FlashInfer Ragged Prefill 参考冒烟代码 +### 参考冒烟代码 [*回退到 Step 8*](#step%208提交%20oj%20冒烟代码) -- 2.34.1 From f2429f16855b39b3ffb7e6961e06383e291b5d26 Mon Sep 17 00:00:00 2001 From: MaseChen <93691652+MaseChen@users.noreply.github.com> Date: Tue, 7 Jul 2026 19:58:12 -0700 Subject: [PATCH 2/7] =?UTF-8?q?Update=20=E6=B5=8B=E8=AF=95=E5=8F=8A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=AC=E5=9C=B0=E9=93=BE=E6=8E=A5-2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...er Benchmark实战:从性能基线到XPU-OJ冒烟提交.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md index f153ab0..5034882 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md @@ -212,7 +212,7 @@ XPU-OJ 账号由组委会统一发放,参赛者无需自行注册。 ### 4.5 评分规则概要 -评分规则详情参考 [*基于AI Agent开发范式的国产GPU大模型推理算子库优化比赛方案*](https://gitlink.org.cn/metax-maca/op_optimization/tree/master/%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E7%AE%97%E5%AD%90%E5%BA%93%E4%BC%98%E5%8C%96%2F%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E7%AE%97%E5%AD%90%E6%8E%A8%E7%90%86%E5%BA%93%E4%BC%98%E5%8C%96%E6%96%B9%E6%A1%88.md) +评分规则详情参考 [*基于AI Agent开发范式的国产GPU大模型推理算子库优化比赛方案*](https://gitlink.org.cn/metax-maca/op_optimization/tree/master/%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E7%AE%97%E5%AD%90%E5%BA%93%E4%BC%98%E5%8C%96%2F%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E7%AE%97%E5%AD%90%E6%8E%A8%E7%90%86%E5%BA%93%E4%BC%98%E5%8C%96%E6%96%B9%E6%A1%88.md)。 提交作品的最终评价采用 **100 分制**,由客观评测和专家评审共同组成: -- 2.34.1 From 007b6a5a61c098e6154888177ffb1b09d72c1001 Mon Sep 17 00:00:00 2001 From: MaseChen <93691652+MaseChen@users.noreply.github.com> Date: Tue, 7 Jul 2026 22:56:55 -0700 Subject: [PATCH 3/7] =?UTF-8?q?Update=20=E6=B5=8B=E8=AF=95=E5=8F=8A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=AC=E5=9C=B0=E9=93=BE=E6=8E=A5-3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Benchmark实战:从性能基线到XPU-OJ冒烟提交.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md index 5034882..bfdf527 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md @@ -179,7 +179,7 @@ which mxcc && mxcc --version || echo "mxcc 未找到,请确认 MACA 工具链 - 已确认 Agent 可以正常调用模型。 -配置过程可参考 [*模力方舟Agent部署准备教程*](./模力方舟Agent部署准备教程.md)。 +配置过程可参考 [*模力方舟Agent部署准备教程*](模力方舟Agent部署准备教程.md)。 **以配置 OpenCode 为例** @@ -507,7 +507,7 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc > 完成 benchmark 后,需要注意 benchmark 脚本主要用于建立性能基线,并不需要最终提交 > 最终评测以 XPU-OJ 为准,评测程序会调用选手提交代码中的 `run_kernel`,并将输出结果与 OJ 后台参考实现结果进行比较 -下面以题目 **20001 FlashInfer Ragged Prefill** 为例,从本地题目文档 [*Agent 推理算子库优化 - FlashInfer Ragged Prefill*](operator_task_package%2Fflashinfer_task_package%2Fxpuoj_problem%2Fproblem_20001%2FAgent%20推理算子库优化%20-%20FlashInfer%20Ragged%20Prefill.md) 中逐节解读关键信息。 +下面以题目 **20001 FlashInfer Ragged Prefill** 为例,从本地题目文档 [*Agent 推理算子库优化 - FlashInfer Ragged Prefill*](operator_task_package/flashinfer_task_package/xpuoj_problem/problem_20001/Agent%20推理算子库优化%20-%20FlashInfer%20Ragged%20Prefill.md) 中逐节解读关键信息。 1. `## 1. 题目描述` — 我要实现什么? -- 2.34.1 From 19737990e234b881a6d8bc054d65169f2465e9e9 Mon Sep 17 00:00:00 2001 From: MaseChen <93691652+MaseChen@users.noreply.github.com> Date: Tue, 7 Jul 2026 23:10:53 -0700 Subject: [PATCH 4/7] =?UTF-8?q?Update=20=E6=B5=8B=E8=AF=95=E5=8F=8A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=AC=E5=9C=B0=E9=93=BE=E6=8E=A5-4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...chmark实战:从性能基线到XPU-OJ冒烟提交.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md index bfdf527..dedd72b 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md @@ -134,7 +134,7 @@ ![tools](https://origin.picgo.net/2026/06/23/-2026-06-23-1554030c167f9883fb1d79.png) - 此部分内容可参考教程:[*模力方舟快速使用SOP*](../模力方舟快速使用SOP.md) + 此部分内容可参考教程:[*模力方舟快速使用SOP*](https://gitlink.org.cn/metax-maca/op_optimization/tree/master/%E6%A8%A1%E5%8A%9B%E6%96%B9%E8%88%9F%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8SOP.md) #### 4.1.4 深度学习环境配置 @@ -169,7 +169,7 @@ which mxcc && mxcc --version || echo "mxcc 未找到,请确认 MACA 工具链 | 问题 | 解决方法 | | --- | --- | -| `mxcc: command not found` | MACA 工具链未安装或 `PATH` 未配置,检查镜像是否预装或参考 [*模力方舟快速使用SOP*](../模力方舟快速使用SOP.md) | +| `mxcc: command not found` | MACA 工具链未安装或 `PATH` 未配置,检查镜像是否预装或参考 [*模力方舟快速使用SOP*](https://gitlink.org.cn/metax-maca/op_optimization/tree/master/%E6%A8%A1%E5%8A%9B%E6%96%B9%E8%88%9F%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8SOP.md) | ### 4.2 工具准备 @@ -179,7 +179,7 @@ which mxcc && mxcc --version || echo "mxcc 未找到,请确认 MACA 工具链 - 已确认 Agent 可以正常调用模型。 -配置过程可参考 [*模力方舟Agent部署准备教程*](模力方舟Agent部署准备教程.md)。 +配置过程可参考 [*模力方舟Agent部署准备教程*](https://gitlink.org.cn/metax-maca/op_optimization/tree/master/%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E7%AE%97%E5%AD%90%E5%BA%93%E4%BC%98%E5%8C%96%2F%E6%A8%A1%E5%8A%9B%E6%96%B9%E8%88%9FAgent%E9%83%A8%E7%BD%B2%E5%87%86%E5%A4%87%E6%95%99%E7%A8%8B.md)。 **以配置 OpenCode 为例** @@ -507,7 +507,7 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc > 完成 benchmark 后,需要注意 benchmark 脚本主要用于建立性能基线,并不需要最终提交 > 最终评测以 XPU-OJ 为准,评测程序会调用选手提交代码中的 `run_kernel`,并将输出结果与 OJ 后台参考实现结果进行比较 -下面以题目 **20001 FlashInfer Ragged Prefill** 为例,从本地题目文档 [*Agent 推理算子库优化 - FlashInfer Ragged Prefill*](operator_task_package/flashinfer_task_package/xpuoj_problem/problem_20001/Agent%20推理算子库优化%20-%20FlashInfer%20Ragged%20Prefill.md) 中逐节解读关键信息。 +下面以题目 **20001 FlashInfer Ragged Prefill** 为例,从本地题目文档 [*Agent 推理算子库优化 - FlashInfer Ragged Prefill*](https://gitlink.org.cn/metax-maca/op_optimization/tree/master/%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E7%AE%97%E5%AD%90%E5%BA%93%E4%BC%98%E5%8C%96%2Foperator_task_package%2Fflashinfer_task_package%2Fxpuoj_problem%2Fproblem_20001%2FAgent%20%E6%8E%A8%E7%90%86%E7%AE%97%E5%AD%90%E5%BA%93%E4%BC%98%E5%8C%96%20-%20FlashInfer%20Ragged%20Prefill.md) 中逐节解读关键信息。 1. `## 1. 题目描述` — 我要实现什么? -- 2.34.1 From da9181fe1850cea2996a98559973839a5601b382 Mon Sep 17 00:00:00 2001 From: MaseChen <93691652+MaseChen@users.noreply.github.com> Date: Tue, 7 Jul 2026 23:26:25 -0700 Subject: [PATCH 5/7] =?UTF-8?q?Update=20=E4=BF=AE=E5=A4=8D=E5=85=AC?= =?UTF-8?q?=E5=BC=8F=E6=B8=B2=E6=9F=93=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...er Benchmark实战:从性能基线到XPU-OJ冒烟提交.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md index dedd72b..20728e4 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md @@ -832,7 +832,7 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc **单测试点评分公式**(参考 Sol-ExecBench): - $$S(T_k) = \frac{100}{1 + \left(\frac{1}{0.5} - 1\right) \cdot \frac{T_k - T_h}{T_b - T_h}}$$ + $S(T_k) = \frac{100}{1 + \left(\frac{1}{0.5} - 1\right) \cdot \frac{T_k - T_h}{T_b - T_h}}$ 其中: - $T_k$:你的 kernel 平均时间 -- 2.34.1 From cfa6613a6dba80ba06786929adb828476aee67f0 Mon Sep 17 00:00:00 2001 From: MaseChen <93691652+MaseChen@users.noreply.github.com> Date: Tue, 7 Jul 2026 23:47:17 -0700 Subject: [PATCH 6/7] =?UTF-8?q?Update=20=E6=96=87=E4=BB=B6=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E7=9B=B8=E5=85=B3=E5=9B=BE=E7=89=87=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...er Benchmark实战:从性能基线到XPU-OJ冒烟提交.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md index 20728e4..1099d7c 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md @@ -354,7 +354,7 @@ pip install pandas **预期结果:** - ![ls -l](https://origin.picgo.net/2026/06/24/-2026-06-24-1651399191c4b66abe6916.png) + ![ls -l](https://origin.picgo.net/2026/07/08/-2026-07-08-1444052f3264a5597c95d5.png) #### Step 3:验证项目脚本 -- 2.34.1 From b207cc5501a3b57d7747de0a9543f04a7d507c11 Mon Sep 17 00:00:00 2001 From: MaseChen <93691652+MaseChen@users.noreply.github.com> Date: Wed, 8 Jul 2026 00:46:33 -0700 Subject: [PATCH 7/7] =?UTF-8?q?Update=20=E6=9B=B4=E6=96=B0=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=82=B9=E6=95=B0=E6=8D=AE=E5=88=86=E6=9E=90=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...:从性能基线到XPU-OJ冒烟提交.md | 116 ++++++++++-------- 1 file changed, 62 insertions(+), 54 deletions(-) diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md index 1099d7c..4e86652 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/FlashInfer Benchmark实战:从性能基线到XPU-OJ冒烟提交.md @@ -700,45 +700,46 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc 5. 查看结果 - 1. 单测试点分析 — 以 OJ 返回的一次评测为例 + 1. 单测试点分析 — 以 OJ 返回的一次评测结果为例 - 提交后,OJ 平台对每个测试用例独立评测并返回结果。以下是一份优化后的真实评测输出(来自 20001 FlashInfer Ragged Prefill 第 1 个测试点): + 提交后,OJ 平台对每个测试用例独立评测并返回结果。以下是一份冒烟提交的典型评测输出(来自 20001 FlashInfer Ragged Prefill 第 1 个测试点): - ![OJ-7](https://origin.picgo.net/2026/06/24/Screenshot-2026-06-24-at-5.57.34PMbe24088f85c638ca.png) + ![OJ-7](https://origin.picgo.net/2026/07/08/-2026-07-08-1451020acc658c43662f1a.png) ```plaintext - Testcase #1 + 测试点 #1 Accepted - 112 pts - 125 ms + 1 pts + 119 ms 22.0 G + 输入文件 1 - Your output + 你的输出 - OJCHAL v1 1bHB14u2jFxvzumsIYHDPA== - OJRESULT v1 f84db85c... eyJ0aW1lX21zIjoxMjQuNjY1LCJzcGVlZHVwIjoyLjgwMjY1NSwidGtfdGltZV9tcyI6MTI0LjY2NSwidGJfdGltZV9tcyI6MzQ5LjM5MywidGhfdGltZV9tcyI6MTQ2LjYwMTU1LCJzY29yZV9yYXRpbyI6MS4xMjEyOTQsInBhc3MiOnRydWV9 + OJCHAL v1 dQ0CZtDCX0JLxT1SF4h/Pw== + OJRESULT v1 c6583f61291371b771de67188893f7d47a745beb2929edce17a67f44a0d80def eyJzY2hlbWFfdmVyc2lvbiI6MiwidGltZV9tcyI6MTE5LjI0Mywic3BlZWR1cCI6MC4wMTM0NTIsInRrX3RpbWVfbXMiOjExOS4yNDMsInRiX3RpbWVfbXMiOjEuNjA0LCJ0aF90aW1lX21zIjowLjM3MzMzNCwic2NvcmVfcmF0aW8iOjAuMDEwMjQ3LCJwYXNzIjp0cnVlfQ== + 你的标准错误输出 - Checker message + {"schema_version":2,"time_ms":119.243,"speedup":0.013452,"tk_time_ms":119.243,"tb_time_ms":1.604,"th_time_ms":0.373334,"score_ratio":0.010247,"pass":true} + 检查器信息 === SPJ Report - FlashInfer Batch Prefill === ---------------------------------------------------------------- Testcase #1 - Config: batch=16, seq_len=16384, q_heads=32, kv_heads=4, - head_dim_qk=128, head_dim_vo=128, causal=1 + Config: sol016_trace_synthetic_b33_total16294: batch=33, total_q=16294, total_kv=16294, max_q=987, max_kv=987, q_heads=32, kv_heads=4, head_dim_qk=128, head_dim_vo=128, causal=1, source=sol-execbench 016 axes - Baseline: 349.393000 ms - User kernel: 124.665000 ms - Hardware bound: 146.601550 ms - Speedup vs base: 2.803 x + Baseline: 1.604000 ms + User kernel: 119.243000 ms + Speedup vs base: 0.013 x - Score ratio: 1.121294 (112.13%) - Display score: 112 / 100 + Score ratio: 0.010247 (1.02%) + Display score: 1 / 100 Pass: OK ---------------------------------------------------------------- ``` - > 以上是**优化后**的结果(得分 112 分,加速比 2.8x),非冒烟测试预期。冒烟测试通常 `speedup < 1`,这是正常的起始点。另外 `OJCHAL` 和 `OJRESULT` 为平台元信息,参赛者无需关注,SPJ Report 中已包含所有评测指标的可读版本 + > 以上是一份冒烟提交的评测输出示例:`speedup = 0.013x`(远慢于 baseline),`Display score = 1`。 `OJCHAL` 和 `OJRESULT` 为平台元信息,参赛者无需关注,SPJ Report 中已包含所有评测指标的可读版本。 **OJ 输出中各项指标的含义:** @@ -747,16 +748,16 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc ```plaintext Testcase #1 Accepted ← 状态 - 112 pts ← 显示得分 - 125 ms ← kernel 耗时 + 1 pts ← 显示得分 + 119 ms ← kernel 耗时 22.0 G ← 内存占用 ``` | 项目 | 含义 | 说明 | |------|------|------| - | `Accepted` | 评测状态 | 通过正确性校验;若为 `Wrong Answer` 则未通过,不参与排名 | - | `112 pts` | 显示得分 | 基于评分公式 + 对数压缩后的分数(满分参考值 100) | - | `125 ms` | kernel 耗时 | 该测试点 OJ 测速阶段你的 kernel 平均执行时间 | + | `Accepted` | 评测状态 | 通过正确性校验;若为 `Wrong Answer`、`Time Limit Exceeded` 则未通过,不参与排名 | + | `1 pts` | 显示得分 | 基于评分公式 + 对数压缩后的分数。冒烟阶段通常极低,正常现象 | + | `119 ms` | kernel 耗时 | 该测试点 OJ 测速阶段你的 kernel 平均执行时间 | | `22.0 G` | 内存占用 | CPU 侧 RSS,仅供平台监控进程占用、防止 OOM | 其次,`Checker message` 中的 SPJ Report 给出了详细的性能对比: @@ -765,16 +766,15 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc === SPJ Report - FlashInfer Batch Prefill === ---------------------------------------------------------------- Testcase #1 - Config: batch=16, seq_len=16384, q_heads=32, kv_heads=4, - head_dim_qk=128, head_dim_vo=128, causal=1 + Config: sol016_trace_synthetic_b33_total16294: batch=33, total_q=16294, total_kv=16294, max_q=987, max_kv=987, + q_heads=32, kv_heads=4, head_dim_qk=128, head_dim_vo=128, causal=1 - Baseline: 349.393000 ms - User kernel: 124.665000 ms - Hardware bound: 146.601550 ms - Speedup vs base: 2.803 x + Baseline: 1.604000 ms + User kernel: 119.243000 ms + Speedup vs base: 0.013 x - Score ratio: 1.121294 (112.13%) - Display score: 112 / 100 + Score ratio: 0.010247 (1.02%) + Display score: 1 / 100 Pass: OK ---------------------------------------------------------------- ``` @@ -783,44 +783,41 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc | 字段 | 含义 | 本例值 | 解读 | |------|------|--------|------| - | `Pass` | 正确性校验 | `OK` | 通过了 `allclose(rtol=1e-2, atol=1e-2)`,可参与排名 | - | `User kernel` | 你的 kernel 耗时 (ms) | `124.67 ms` | **核心性能指标** | - | `Baseline` | OJ 参考实现耗时 (ms) | `349.39 ms` | 你的基准对比对象 | - | `Hardware bound` | 硬件理论下限 (ms) | `146.60 ms` | 基于 FLOPs / 带宽估算的理论最快时间 | - | `Speedup vs base` | 加速比 | `2.80x` | `Baseline / User kernel`,`> 1` 表示优于 OJ 参考实现 | - | `Score ratio` | 归一化得分(原始值) | `1.121` | 综合评分原始值 | - | `Display score` | 显示得分 | `112` | 经过对数压缩后的得分,超过 100 表示超越硬件理论估算 | - | `Config` | 测试配置 | — | 该测试点的 `batch`、`seq_len`、`q_heads`、`kv_heads` 等参数 | + | `Config` | 测试配置 | — | 该测试点的 `batch`、`total_q`、`max_q`、`q_heads`、`kv_heads` 等参数 | + | `Baseline` | OJ 参考实现耗时 (ms) | `1.60 ms` | 你的基准对比对象 | + | `User kernel` | 你的 kernel 耗时 (ms) | `119.24 ms` | **核心性能指标** | + | `Speedup vs base` | 加速比 | `0.013x` | `Baseline / User kernel`。`< 1` 表示比 baseline 慢 | + | `Score ratio` | 归一化得分(原始值) | `0.0102` | 综合评分原始值 | + | `Display score` | 显示得分 | `1` | OJ 内部评分,冒烟阶段通常极低 | + | `Pass` | 正确性校验 | `OK` | 通过了正确性校验,可参与排名 | **从 SPJ Report 分析优化方向:** - 以上述结果为例: - - `Speedup vs base = 2.80x`,已超越 OJ 参考实现 2.8 倍 + 以上述冒烟结果为例: + - `Speedup vs base = 0.013x`:**冒烟代码远慢于 OJ baseline**,这是正常的起始点——冒烟阶段的目的是验证接口和提交链路,不追求性能; - - `User kernel = 124.67ms` 对比 `Hardware bound = 146.60ms`:**你的 kernel 已超越硬件理论下限**,说明该测试点的实现已非常接近硬件极限,继续优化的收益空间有限 - - - `Score ratio = 1.121` 对应 `Display score = 112`,已超过 100 分的满分线 + - `Baseline = 1.60ms` 对比 `User kernel = 119.24ms`:两者之间有约 75 倍的性能差距,说明**优化空间巨大**。后续可以通过引入 tiling、shared memory、向量化访存等优化手段逐步缩小差距。 **优化优先级判断法:** | 情况 | 优化空间 | 建议方向 | |------|----------|----------| - | `User kernel ≈ Baseline` | 大 | 先保证正确性,再分析 compute / memory 瓶颈 | - | `User kernel` 在 `Baseline` 和 `Hardware bound` 之间 | 中 | 使用 profiler 分析,优化瓶颈阶段 | - | `User kernel ≈ Hardware bound` | 小 | 该测试点已接近最优,转而优化其他测试点 | + | `User kernel ≫ Baseline`(speedup < 1) | 巨大 | 冒烟阶段正常状态。优先保证正确性,再引入 tiling / shared memory 等基础优化 | + | `User kernel ≈ Baseline` | 大 | 已追平 baseline,进一步分析 compute / memory 瓶颈 | + | `User kernel ≪ Baseline`(speedup > 1) | 中 | 已优于 baseline,使用 profiler 精调瓶颈阶段 | **查看所有测试用例结果:** OJ 平台每次提交会评测所有测试用例,每个测试用例返回一组独立的 SPJ Report。建议将各组结果整理成表格,方便跟踪优化进展: - | 测试点 | batch_size | seq_len | Baseline | User kernel | Speedup | Score | Pass | + | 测试点 | batch | total_q | Baseline | User kernel | Speedup | Score | Pass | |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| - | 1 | 1 | 1024 | — | — | — | — | — | - | 2 | 1 | 4096 | — | — | — | — | — | + | 1 | 33 | 16294 | 1.60 | 119.24 | 0.013 | 1 | ✓ | + | 2 | 1 | 1024 | — | — | — | — | — | | ... | ... | ... | ... | ... | ... | ... | ... | - | 12 | 16 | 16384 | 349.39 | 124.67 | 2.80 | 112.13 | ✓ | + | 15 | 2 | 98 | — | — | — | — | — | - 2. XPU-OJ 平台评分机制(仅供参考) + 2. XPU-OJ 平台评分机制(**仅供参考**) 以下为 XPU-OJ 平台的内部评分算法,用于生成榜单中每个题目的单题分数。请注意: @@ -940,7 +937,18 @@ FlashInfer 方向包含 **4 个可选算子题目**,每个对应独立的 benc - online softmax 的 m/l 更新逻辑是否正确 ``` -### 7.7 问题排查 +### 7.7 调试 TLE 超时 +``` plaintext +我的 run_kernel 提交到 OJ 后显示 Time Limit Exceeded,请帮我排查: +1. 这是我的 submit 代码:[粘贴你的 run_kernel 实现] +请帮我检查: +- run_kernel 中是否调用了 cudaDeviceSynchronize()(应删除) +- kernel 中 for 循环的终止条件是否有死循环风险 +- __syncthreads() 是否在条件分支内(应移到分支外) +- grid/block 配置是否过大 +``` + +### 7.8 问题排查 ``` plaintext 运行 bench_batch_prefill_ragged.py 时报错 out of memory,请帮我分析原因并给出解决方案。 -- 2.34.1