From 92a34d183273b67dc6e06aa1e26b4d7ac93b35f0 Mon Sep 17 00:00:00 2001 From: valorix25 Date: Wed, 13 May 2026 11:13:09 +0000 Subject: [PATCH 1/3] [WeeklyReport] valorix25 2026.05.09~2026.05.13 Co-Authored-By: Claude Opus 4.7 --- .../[WeeklyReport]2026.05.09~2026.05.13.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md diff --git a/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md b/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md new file mode 100644 index 00000000..fff75a1d --- /dev/null +++ b/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md @@ -0,0 +1,58 @@ +### 认领者 GitHub ID +valorix25 + +### 赛题信息 +- **进阶任务序号**:#16 +- **赛题名称**:沐曦 优化 PaddleOCR-VL-1.5+Metax GPU +- **关联厂商**:沐曦(Metax) + +### 本周工作 + +1. **Benchmark 环境修复与 Baseline 建立** + - 解决 `/dev/shm` 溢出导致 SIGBUS:编译 `shm_redirect.so`(LD_PRELOAD 拦截 `shm_open`),将共享内存重定向到 `/tmp/shm` + - 解决 OpenMP 库冲突(`libomp.so` 与 `libiomp5.so` 双重 dlopen 冲突):从 `LD_LIBRARY_PATH` 中排除 `mxgpu_llvm/lib` + - 修复 `benchmark.py` successful_files 计数、output 路径逻辑 + - 建立 Baseline:吞吐量 0.217 files/sec,平均批次延迟 73.72s,GPU 利用率 max 79%/avg 26% + - 相关 PR:[valorix25/FastDeploy#2](https://github.com/valorix25/FastDeploy/pull/2) + +2. **P0: PaddleX Layout 模型迁移到 Metax GPU(核心收益)** + - 根因:PaddleX `get_default_device()` 仅检查 CUDA,不识别 metax_gpu custom device,导致 Layout 模型 (PP-DocLayoutV3) 回退到 CPU 运行,GPU 在此期间完全空闲 + - 方案:显式传递 `device="metax_gpu:0"` 给 `create_pipeline()`,通过 `_apply_device` 机制设置 `device_type=metax_gpu`,最终调用 `config.enable_custom_device("metax_gpu", 0)` + - 效果:吞吐量 0.217→0.283 files/sec(+30.4%),平均批次延迟 73.72s→56.6s(-23.2%) + - 相关 PR:[valorix25/FastDeploy#2](https://github.com/valorix25/FastDeploy/pull/2) + +3. **P3: Routing Prefix Sum 优化** + - 将 `compute_total_rows_before_expert` 的 binary search O(N×logM) 替换为 atomic counting O(N) + CUB exclusive sum O(M) + - 新增 `atomic_moe_expert_counts` kernel,替换 `fused_moe_helper.h` 调用点 + - 预期收益:减少 ~5% MoE 阶段延迟 + +4. **P4: SwiGLU In-place Fusion** + - 自定义 CUDA kernel 直接 in-place 计算 `SwiGLU(x) = silu(gate) * up`,替代 `paddle::experimental::swiglu()` + - VecSize=8 向量化(16 字节 = 8 × BF16),256 threads/block,grid-stride loop + - 预期收益:消除 fc1→swiglu→fc2 间 Tensor 分配和 Paddle 框架调度,减少 ~10% MoE 阶段延迟 + +5. **P3+P4 联合验证** + - P3+P4 组合效果:吞吐量 +1.15%,平均批次延迟 -1.14% + +6. **P5: RoPE + KV Cache Shared Memory 优化(代码完成,待编译验证)** + - 在 `cache_kv_with_rope` kernel 中协作将 `block_tables` 加载到 shared memory + - 预期 prefill 阶段 block_tables 查找延迟从 400-800 cycles 降至 ~2-10 cycles + +### 下周计划 + +1. 在有完整 CUDA→MACA 编译链的环境编译 P5 `cache_kv_with_rope` kernel,验证 shared memory 优化效果 +2. 全量回归测试 P0+P3+P4 组合效果 +3. 探索 Fused Routing+PrefixSum Kernel(P3 Bonus),解决 race condition 问题 + +### 当前阻塞 + +- 本机 MACA SDK 缺少完整开发头文件(`mc_library_types.h`、`MxSmlExtension.h`),`mxcc` 不支持 `cudaStream_t`、`__nv_bfloat16` 等 CUDA 原生类型,P5 kernel 需外部环境编译验证 + +### 交付物进展 + +| 交付物 | 状态 | 备注 | +|--------|:----:|------| +| RFC 文档 | ✅ 已完成 | 已提交 RFC 文档至厂商邮箱 | +| 代码实现 | 🔄 进行中 | P0/P3/P4 已验证,P5 待编译验证 | +| README | ✅ 已完成 | PROGRESS.md 记录完整 | +| 演示视频/截图 | ⬜ 未开始 | - | From b451a0f9c02221ec732cb0ce69ad16f22a162357 Mon Sep 17 00:00:00 2001 From: valorix25 Date: Wed, 13 May 2026 11:42:23 +0000 Subject: [PATCH 2/3] docs(weekly-report): add P0+P3+P4+P2 metrics table Co-Authored-By: Claude Opus 4.7 --- .../[WeeklyReport]2026.05.09~2026.05.13.md | 62 +++++++++++-------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md b/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md index fff75a1d..226ff1ea 100644 --- a/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md +++ b/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md @@ -1,7 +1,9 @@ ### 认领者 GitHub ID + valorix25 ### 赛题信息 + - **进阶任务序号**:#16 - **赛题名称**:沐曦 优化 PaddleOCR-VL-1.5+Metax GPU - **关联厂商**:沐曦(Metax) @@ -11,38 +13,44 @@ valorix25 1. **Benchmark 环境修复与 Baseline 建立** - 解决 `/dev/shm` 溢出导致 SIGBUS:编译 `shm_redirect.so`(LD_PRELOAD 拦截 `shm_open`),将共享内存重定向到 `/tmp/shm` - 解决 OpenMP 库冲突(`libomp.so` 与 `libiomp5.so` 双重 dlopen 冲突):从 `LD_LIBRARY_PATH` 中排除 `mxgpu_llvm/lib` - - 修复 `benchmark.py` successful_files 计数、output 路径逻辑 - - 建立 Baseline:吞吐量 0.217 files/sec,平均批次延迟 73.72s,GPU 利用率 max 79%/avg 26% - - 相关 PR:[valorix25/FastDeploy#2](https://github.com/valorix25/FastDeploy/pull/2) + - 原 FastDeploy/benchmarks/paddleocr_vl 仅有 A100 评测脚本,经充分调参建立 Baseline + - 相关 PR/Commit: + - `3f06e8b` [Establish baseline: add benchmark scripts, update image processor and model runner, pin dependencies](https://github.com/valorix25/FastDeploy/commit/3f06e8ba63aafad0dd46c4cf90912f1327f3b50b) 2. **P0: PaddleX Layout 模型迁移到 Metax GPU(核心收益)** - - 根因:PaddleX `get_default_device()` 仅检查 CUDA,不识别 metax_gpu custom device,导致 Layout 模型 (PP-DocLayoutV3) 回退到 CPU 运行,GPU 在此期间完全空闲 - - 方案:显式传递 `device="metax_gpu:0"` 给 `create_pipeline()`,通过 `_apply_device` 机制设置 `device_type=metax_gpu`,最终调用 `config.enable_custom_device("metax_gpu", 0)` - - 效果:吞吐量 0.217→0.283 files/sec(+30.4%),平均批次延迟 73.72s→56.6s(-23.2%) - - 相关 PR:[valorix25/FastDeploy#2](https://github.com/valorix25/FastDeploy/pull/2) + - 根因:PaddleX `get_default_device()` 仅检查 CUDA,不识别 metax_gpu custom device,Layout 模型回退 CPU + - 方案:显式传递 `device="metax_gpu:0"` 给 `create_pipeline()` + - 各阶段优化效果汇总: + + | 指标 | Baseline | P0 | P0+P3+P4+P2 | 总变化 | + |------|----------|----|-------------|--------| + | 吞吐量 (文件) | 0.217 files/sec | 0.283 files/sec | 0.285 files/sec | +31.3% | + | 平均批次延迟 | 73.72s | 56.6s | 56.2s | -23.8% | + + - 相关 PR/Commit: + - `2f961ac` [feat(metax_ops): P0-P4 GPU operator optimizations](https://github.com/valorix25/FastDeploy/commit/2f961ac84fca4747988f0e501e54981f19e380ef) 3. **P3: Routing Prefix Sum 优化** - - 将 `compute_total_rows_before_expert` 的 binary search O(N×logM) 替换为 atomic counting O(N) + CUB exclusive sum O(M) - - 新增 `atomic_moe_expert_counts` kernel,替换 `fused_moe_helper.h` 调用点 - - 预期收益:减少 ~5% MoE 阶段延迟 + - `compute_total_rows_before_expert`:binary search O(N×logM) → atomic counting + CUB exclusive sum O(N+M) + - 相关 PR/Commit: + - `6c06dd4` [feat(metax_ops): P3/P4 MoE operator optimizations](https://github.com/valorix25/FastDeploy/commit/6c06dd46238f8e868b5a1195fde7574ae5f85057) + - `2f961ac` [feat(metax_ops): P0-P4 GPU operator optimizations](https://github.com/valorix25/FastDeploy/commit/2f961ac84fca4747988f0e501e54981f19e380ef) 4. **P4: SwiGLU In-place Fusion** - - 自定义 CUDA kernel 直接 in-place 计算 `SwiGLU(x) = silu(gate) * up`,替代 `paddle::experimental::swiglu()` - - VecSize=8 向量化(16 字节 = 8 × BF16),256 threads/block,grid-stride loop - - 预期收益:消除 fc1→swiglu→fc2 间 Tensor 分配和 Paddle 框架调度,减少 ~10% MoE 阶段延迟 - -5. **P3+P4 联合验证** - - P3+P4 组合效果:吞吐量 +1.15%,平均批次延迟 -1.14% + - 自定义 CUDA kernel 替代 `paddle::experimental::swiglu()`,VecSize=8 向量化 + - 相关 PR/Commit: + - `6c06dd4` [feat(metax_ops): P3/P4 MoE operator optimizations](https://github.com/valorix25/FastDeploy/commit/6c06dd46238f8e868b5a1195fde7574ae5f85057) + - `2f961ac` [feat(metax_ops): P0-P4 GPU operator optimizations](https://github.com/valorix25/FastDeploy/commit/2f961ac84fca4747988f0e501e54981f19e380ef) -6. **P5: RoPE + KV Cache Shared Memory 优化(代码完成,待编译验证)** - - 在 `cache_kv_with_rope` kernel 中协作将 `block_tables` 加载到 shared memory - - 预期 prefill 阶段 block_tables 查找延迟从 400-800 cycles 降至 ~2-10 cycles +5. **P5: RoPE + KV Cache Shared Memory 优化(代码完成,待编译验证)** + - `cache_kv_with_rope` kernel 协作将 `block_tables` 加载到 shared memory + - 相关 PR/Commit: + - [valorix25/FastDeploy#2](https://github.com/valorix25/FastDeploy/pull/2) ### 下周计划 1. 在有完整 CUDA→MACA 编译链的环境编译 P5 `cache_kv_with_rope` kernel,验证 shared memory 优化效果 -2. 全量回归测试 P0+P3+P4 组合效果 -3. 探索 Fused Routing+PrefixSum Kernel(P3 Bonus),解决 race condition 问题 +2. 探索 Fused Routing+PrefixSum Kernel(P3 Bonus),解决 race condition 问题 ### 当前阻塞 @@ -50,9 +58,9 @@ valorix25 ### 交付物进展 -| 交付物 | 状态 | 备注 | -|--------|:----:|------| -| RFC 文档 | ✅ 已完成 | 已提交 RFC 文档至厂商邮箱 | -| 代码实现 | 🔄 进行中 | P0/P3/P4 已验证,P5 待编译验证 | -| README | ✅ 已完成 | PROGRESS.md 记录完整 | -| 演示视频/截图 | ⬜ 未开始 | - | +| 交付物 | 状态 | 备注 | +| ------- | :----: | --------------------- | +| RFC 文档 | ✅ 已完成 | 已提交 RFC 文档至厂商邮箱 | +| 代码实现 | 🔄 进行中 | P0/P3/P4 已验证,P5 待编译验证 | +| README | ✅ 已完成 | PROGRESS.md 记录完整 | +| 演示视频/截图 | ⬜ 未开始 | - | From eb74157ed9b7eb093ed4a9532ba1f658d64bd5c7 Mon Sep 17 00:00:00 2001 From: valorix25 Date: Wed, 13 May 2026 12:20:43 +0000 Subject: [PATCH 3/3] docs(weekly-report): expand next week plan with 3 optimization directions Co-Authored-By: Claude Opus 4.7 --- .../[WeeklyReport]2026.05.09~2026.05.13.md | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md b/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md index 226ff1ea..f07946ea 100644 --- a/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md +++ b/WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_16_valorix25/[WeeklyReport]2026.05.09~2026.05.13.md @@ -10,47 +10,46 @@ valorix25 ### 本周工作 -1. **Benchmark 环境修复与 Baseline 建立** - - 解决 `/dev/shm` 溢出导致 SIGBUS:编译 `shm_redirect.so`(LD_PRELOAD 拦截 `shm_open`),将共享内存重定向到 `/tmp/shm` - - 解决 OpenMP 库冲突(`libomp.so` 与 `libiomp5.so` 双重 dlopen 冲突):从 `LD_LIBRARY_PATH` 中排除 `mxgpu_llvm/lib` - - 原 FastDeploy/benchmarks/paddleocr_vl 仅有 A100 评测脚本,经充分调参建立 Baseline - - 相关 PR/Commit: - - `3f06e8b` [Establish baseline: add benchmark scripts, update image processor and model runner, pin dependencies](https://github.com/valorix25/FastDeploy/commit/3f06e8ba63aafad0dd46c4cf90912f1327f3b50b) +**一、Benchmark 环境修复与 Baseline 建立** -2. **P0: PaddleX Layout 模型迁移到 Metax GPU(核心收益)** - - 根因:PaddleX `get_default_device()` 仅检查 CUDA,不识别 metax_gpu custom device,Layout 模型回退 CPU - - 方案:显式传递 `device="metax_gpu:0"` 给 `create_pipeline()` - - 各阶段优化效果汇总: +- 解决 `/dev/shm` 溢出导致 SIGBUS:编译 `shm_redirect.so`(LD\_PRELOAD 拦截 `shm_open`),将共享内存重定向到 `/tmp/shm` +- 解决 OpenMP 库冲突(`libomp.so` 与 `libiomp5.so` 双重 dlopen 冲突):从 `LD_LIBRARY_PATH` 中排除 `mxgpu_llvm/lib` +- 原 FastDeploy/benchmarks/paddleocr\_vl 仅有 A100 评测脚本,经充分调参建立 Metax C500 Baseline,因OmniDocBench\_v1\_5 有1355张图像,评测时间较长,于是从中抽取128张图像作为 baseline +- 相关 PR/Commit: + - `3f06e8b` [Establish baseline: add benchmark scripts, update image processor and model runner, pin dependencies](https://github.com/valorix25/FastDeploy/commit/3f06e8ba63aafad0dd46c4cf90912f1327f3b50b) - | 指标 | Baseline | P0 | P0+P3+P4+P2 | 总变化 | - |------|----------|----|-------------|--------| - | 吞吐量 (文件) | 0.217 files/sec | 0.283 files/sec | 0.285 files/sec | +31.3% | - | 平均批次延迟 | 73.72s | 56.6s | 56.2s | -23.8% | +二、**各阶段优化效果汇总** - - 相关 PR/Commit: - - `2f961ac` [feat(metax_ops): P0-P4 GPU operator optimizations](https://github.com/valorix25/FastDeploy/commit/2f961ac84fca4747988f0e501e54981f19e380ef) +| 指标 | Baseline | P0 | P0+P3+P4+P2 | 总变化 | +| :------- | :-------------- | :-------------- | :-------------- | :----- | +| 吞吐量 (文件) | 0.217 files/sec | 0.283 files/sec | 0.285 files/sec | +31.3% | +| 平均批次延迟 | 73.72s | 56.6s | 56.2s | -23.8% | -3. **P3: Routing Prefix Sum 优化** +
+ +1. **P0: PaddleX Layout 模型迁移到 Metax GPU** + - 根因:PaddleX `get_default_device()` 仅检查 CUDA,不识别 metax\_gpu custom device,Layout 模型回退 CPU + - 方案:显式传递 `device="metax_gpu:0"` 给 `create_pipeline()` + - 相关 PR/Commit: + - `2f961ac` [feat(metax\_ops): P0-P4 GPU operator optimizations](https://github.com/valorix25/FastDeploy/commit/2f961ac84fca4747988f0e501e54981f19e380ef) +2. **P3: Routing Prefix Sum 优化** - `compute_total_rows_before_expert`:binary search O(N×logM) → atomic counting + CUB exclusive sum O(N+M) - 相关 PR/Commit: - - `6c06dd4` [feat(metax_ops): P3/P4 MoE operator optimizations](https://github.com/valorix25/FastDeploy/commit/6c06dd46238f8e868b5a1195fde7574ae5f85057) - - `2f961ac` [feat(metax_ops): P0-P4 GPU operator optimizations](https://github.com/valorix25/FastDeploy/commit/2f961ac84fca4747988f0e501e54981f19e380ef) - -4. **P4: SwiGLU In-place Fusion** + - `6c06dd4` [feat(metax\_ops): P3/P4 MoE operator optimizations](https://github.com/valorix25/FastDeploy/commit/6c06dd46238f8e868b5a1195fde7574ae5f85057) +3. **P4: SwiGLU In-place Fusion** - 自定义 CUDA kernel 替代 `paddle::experimental::swiglu()`,VecSize=8 向量化 - 相关 PR/Commit: - - `6c06dd4` [feat(metax_ops): P3/P4 MoE operator optimizations](https://github.com/valorix25/FastDeploy/commit/6c06dd46238f8e868b5a1195fde7574ae5f85057) - - `2f961ac` [feat(metax_ops): P0-P4 GPU operator optimizations](https://github.com/valorix25/FastDeploy/commit/2f961ac84fca4747988f0e501e54981f19e380ef) - -5. **P5: RoPE + KV Cache Shared Memory 优化(代码完成,待编译验证)** + - `6c06dd4` [feat(metax\_ops): P3/P4 MoE operator optimizations](https://github.com/valorix25/FastDeploy/commit/6c06dd46238f8e868b5a1195fde7574ae5f85057) +4. **P5: RoPE + KV Cache Shared Memory 优化(代码完成,待编译验证)** - `cache_kv_with_rope` kernel 协作将 `block_tables` 加载到 shared memory - - 相关 PR/Commit: - - [valorix25/FastDeploy#2](https://github.com/valorix25/FastDeploy/pull/2) ### 下周计划 1. 在有完整 CUDA→MACA 编译链的环境编译 P5 `cache_kv_with_rope` kernel,验证 shared memory 优化效果 -2. 探索 Fused Routing+PrefixSum Kernel(P3 Bonus),解决 race condition 问题 +2. 探索 Fused Routing+PrefixSum Kernel,解决 race condition 问题 +3. 扩展 mctlassEx grouped gemm 支持 BF16/FP16 非量化路径(当前仅支持 weight\_only\_int8) +4. topk softmax + radix sort 融合,减少 MoE dispatch 阶段串行 kernel launch +5. dispatch/ffn/reduce 三步 CUDA Graph 捕获,降低 decode 阶段 launch 开销 ### 当前阻塞 @@ -64,3 +63,4 @@ valorix25 | 代码实现 | 🔄 进行中 | P0/P3/P4 已验证,P5 待编译验证 | | README | ✅ 已完成 | PROGRESS.md 记录完整 | | 演示视频/截图 | ⬜ 未开始 | - | +