From 46c939acc0af31860f2eff1f83c151cf802523bb Mon Sep 17 00:00:00 2001 From: "Xinyi Wu (i26343) - Application Ecology" Date: Wed, 8 Jul 2026 17:32:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20fused=5Fmoe=20=E6=95=99?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Benchmark 验证到 XPU-OJ 接口提交.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/Fused MoE 算子入门:从 Benchmark 验证到 XPU-OJ 接口提交.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/Fused MoE 算子入门:从 Benchmark 验证到 XPU-OJ 接口提交.md index 734d18b..2c6d82c 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/Fused MoE 算子入门:从 Benchmark 验证到 XPU-OJ 接口提交.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/Fused MoE 算子入门:从 Benchmark 验证到 XPU-OJ 接口提交.md @@ -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*"`查找绝对路径
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*"` 查找绝对路径
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 平台并进入题目页面