update structure

This commit is contained in:
何沐川 2026-06-23 17:39:51 +08:00
parent 0d8217a1c1
commit d3338b5a26
1 changed files with 18 additions and 77 deletions

View File

@ -155,14 +155,11 @@ EOF
**命令示例:**
```apl
cd /root/Project/fused_moe # 这里需要替换成自己的项目路径
#克隆代码仓库
git clone https://gitlink.org.cn/metax-maca/op_optimization.git
#切换到fused moe目录下benchmark项目
cd op_optimization/基于AI\ Agent开发范式的国产GPU大模型推理算子库优化/operator_task_package/fused_moe_task_package/benchmark
```
**预期结果:**
终端提示符路径显示为 fused\_moe 项目路径
* (base) root@0a5a9d0c0f06:~/Project/fused\_moe#
### 步骤 3pybind 编译
@ -326,79 +323,23 @@ bash scripts/run_fused_moe_i8_tn_benchmark.sh --backend all --warmup 5 --iters 2
| 终端长时间无输出 | Kernel 死锁或 MACA 驱动异常 | 减小测试 shape重启容器或设备 |
| avg\_ms 异常抖动±50% | 其他进程占用 GPU | 关闭其他占用显存的进程,单机单任务运行 |
## 六、XPU-OJ 冒烟提交 Benchmark 验证到评测结果
## 六、XPU-OJ 冒烟提交
### 6.1 教程定位
### 6.1 目标
前面的Benchmark 验证教程主要帮助你完成三件事
在完成前文的本地验证后本节将带你把实现提交到 XPU-OJ并确认评测环境能够正确调用 `run_kernel(...)`
1. 看懂 Fused MoE 算子的输入、输出和计算逻辑
2. 在模力方舟环境里跑通本地编译、测试和 benchmark 脚本
3. 得到一组本地性能基线,方便后续判断优化是否真的有效。
完成本节后你应能够完成一次最小 OJ 提交查看评测结果并据此进入正确性修复或后续性能优化。
需要特别说明:
本节的冒烟提交只用于验证函数接口、索引逻辑和提交流程;性能优化请在正确性通过后再进行。
* Benchmark 不是最终提交物。
* XPU-OJ 才是最终评测入口。
* XPU-OJ 不会直接运行前面的 benchmark 脚本而是会调用你提交代码里的 `run_kernel(...)` 函数。
### 6.2 前置准备
简单理解:
| 内容 | 作用 |
| --- | --- |
| Benchmark | 帮你理解算子和建立性能基线 |
| Agent | 帮你读代码、写初版、定位错误、迭代优化 |
| XPU-OJ | 按统一测试数据评测你的 `run_kernel(...)` |
| Candidate | 每一版可提交、可复现的代码结果 |
完成本节后你应该能完成一次最小 OJ 提交确认自己的提交链路是通的。
### 6.2 学习目标
完成本模块后,你将能够:
1. 理解 benchmark  XPU-OJ 提交之间的区别
2. 找到 Fused MoE GEMM 题目的接口约定
3. 准备一个可以提交到 OJ  `run_kernel(...)` 文件;
4. 在 XPU-OJ 页面提交代码并查看结果
5. 根据 OJ 返回的 `Wrong Answer`、`Runtime Error`、`Accepted` 等状态判断下一步动作。
### 6.3 适用对象
本模块适合已经完成以下准备的参赛者:
* 已经进入模力方舟赛事镜像;
* 已经上传或准备好 Fused MoE 源码
* 已经可以在终端里运行基础命令;
* 已经配置好 Agent 工具例如 OpenCode
* 已经拿到组委会发放的 XPU-OJ 账号。
如果你还没有做过 GPU kernel 优化也可以先照着本节完成一次冒烟提交。这里的目标不是马上拿高分而是先确认“我能提交、OJ 能调用我的函数、反馈能回来”。
### 6.4 前置准备
#### 6.4.1 代码准备
#### 6.2.1 代码准备
建议在工作目录下保留一个候选版本目录,例如:
```bash
cd /data/fusedmoe_v2.1
mkdir -p oj/problem_1_fused_moe
```
@ -410,7 +351,7 @@ oj/problem_1_fused_moe/solution001.py
真正提交时只需要把这个文件里的内容复制到 XPU-OJ 提交框。
#### 6.4.2 账号准备
#### 6.2.2 账号准备
XPU-OJ 账号由组委会统一发放。登录入口
@ -420,9 +361,9 @@ https://xpuoj.com/
如果登录后看不到比赛或题目,请联系助教或赛事运营确认账号是否已经加入对应比赛或用户组。
### 6.5 知识预备
### 6.3 知识预备
#### 6.5.1 什么是 OJ
#### 6.3.1 什么是 OJ
OJ 可以理解为“自动评测机”。
@ -443,7 +384,7 @@ OJ 可以理解为“自动评测机”。
所以OJ 不是让你提交 benchmark 日志也不是让你提交本地运行截图而是让你提交一份符合接口约定的代码。
#### 6.5.2 什么是 Candidate
#### 6.3.2 什么是 Candidate
Candidate 就是一次可复现的候选方案。
@ -459,7 +400,7 @@ Candidate 就是一次可复现的候选方案。
这样后续多次打榜时,不会忘记哪一版代码对应哪一次提交结果。
### 6.6 项目实践Fused MoE GEMM OJ 冒烟提交
### 6.4 项目实践Fused MoE GEMM OJ 冒烟提交
本节以当前 XPU-OJ 题目 **1. Fused MoE GEMM** 为例。
@ -707,7 +648,7 @@ cp oj/problem_1_fused_moe/solution001.py oj/problem_1_fused_moe/solution002.py
然后让 Agent 基于 `solution002.py` 继续改。
### 6.7 Agent 使用说明
### 6.5 Agent 使用说明
本模块中Agent 主要用来做三件事
@ -1149,4 +1090,4 @@ Benchmark 验证代码用来学习OJ 用来评分Candidate 用来管理每
* 提交任务前确认目标硬件支持的算子类型;
* 优化失败时,可尝试更换适配硬件,或调整算子实现逻辑。