修正 fused_moe 教程

This commit is contained in:
Xinyi Wu (i26343) - Application Ecology 2026-07-08 17:32:18 +08:00
parent 8628b5b38c
commit 46c939acc0
1 changed files with 16 additions and 16 deletions

View File

@ -231,15 +231,15 @@ PYTHON_BIN=/path/to/python bash scripts/build_fused_moe_i8_tn_pybind.sh
**常见问题:**
| **报错** | **原因** | **解决办法** |
| --- | --- | --- |
| `Python.h: No such file or directory` | Python 头文件路径未找到 | 确认 `PYTHON_BIN` 路径正确,脚本自动探测 `sysconfig.get_path('include')` |
| `libpython3.x.so: cannot find` | 链接时找不到 Python 库 | 1、执行 `find $CONDA_PREFIX -name "libpython3*.so*"`查找绝对路径<br>2、将该路径赋值给 `LIBPYTHON_PATH` |
| `recompile with -fPIC` | 编译未开启位置无关代码 | 确保 `mxcc`/ `g++`编译参数中有 `-fPIC` |
| `permission denied` | 无脚本执行权限 | `chmod +x scripts/*.sh` |
| `undefined reference to Py_...` | Python 版本不匹配 | 确认编译脚本中`PYTHON_BIN`路径与当前运行的 Python 环境完全一致 |
| 报错 | 原因 | 解决办法 |
| :--- | :--- | :--- |
| `Python.h: No such file or directory` | Python 头文件路径未找到 | 确认 `PYTHON_BIN` 路径正确,脚本自动探测 `sysconfig.get_path('include')` |
| `libpython3.x.so: cannot find` | 链接时找不到 Python 库 | 1、执行 `find $CONDA_PREFIX -name "libpython3*.so*"` 查找绝对路径<br>2、将该路径赋值给 `LIBPYTHON_PATH` |
| `recompile with -fPIC` | 编译未开启位置无关代码 | 确保 `mxcc` / `g++` 编译参数中有 `-fPIC` |
| `permission denied` | 无脚本执行权限 | `chmod +x scripts/*.sh` |
| `undefined reference to Py_...` | Python 版本不匹配 | 确认编译脚本中 `PYTHON_BIN` 路径与当前运行的 Python 环境完全一致 |
#### Step 4正确性验证
@ -381,7 +381,7 @@ bash scripts/run_fused_moe_i8_tn_benchmark.sh --backend all --warmup 5 --iters 2
1. 厘清 Benchmark 和 XPU-OJ 的区别:
赛事镜像中的 Benchmark 脚本用于理解目标算子的调用方式、输入输出 shape 和性能基线XPU-OJ 题包用于定义最终评测接口、数据范围、参考输出和精度要求。
赛事镜像中的 Benchmark 脚本用于理解目标算子的调用方式、输入输出 shape 和性能基线XPU-OJ 题包用于定义最终评测接口、数据范围、参考输出和精度要求。
| 维度 | Benchmark 脚本 | XPU-OJ 提交 |
| :--- | :--- | :--- |
@ -395,17 +395,17 @@ bash scripts/run_fused_moe_i8_tn_benchmark.sh --backend all --warmup 5 --iters 2
2. 理解完成 benchmark 验证并成功建立性能基线后需要完成以下转换
a. 从 benchmark 脚本中理解目标 API
* a. 从 benchmark 脚本中理解目标 API
b. 在对应 OJ 平台【题目描述】中查看 `run_kernel(...)` 接口;
* b. 在对应 OJ 平台【题目描述】中查看 `run_kernel(...)` 接口;
c. 对照 OJ 平台【题目描述】中的输入 shape、数据范围和精度要求
* c. 对照 OJ 平台【题目描述】中的输入 shape、数据范围和精度要求
d. 编写自己的 `run_kernel(...)`
* d. 编写自己的 `run_kernel(...)`
e. 在 OJ 平台提交`run_kernel(...)`,先通过正确性;
* e. 在 OJ 平台提交`run_kernel(...)`,先通过正确性;
f. 正确性通过后再对比 benchmark 耗时 / OJ 耗时继续优化。
* f. 正确性通过后再对比 benchmark 耗时 / OJ 耗时继续优化。
#### Step 7登录 XPU-OJ 平台并进入题目页面