| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 解决退出core dump问题(解决ABSA tiling注册命名冲突) Co-authored-by: yujunyu2<yujunyu3@huawei.com> Co-authored-by: openLiBingCI<openlibing-robot@openlibing.com> # message auto-generated for no-merge-commit merge: !445 merge dev into dev fix: 解决退出core dump问题(解决ABSA tiling注册命名冲突) Created-by: yjy_ac Commit-by: yujunyu2;openLiBingCI Merged-by: ascend-robot Description: # Which issue(s) this PR fixes or accomplishes Fixes #205 关联 Issue:https://gitcode.com/Ascend/MindIE-SD/issues/205 # Purpose 修复同时编译安装 ABSA( ada_block_sparse_attention)与 FIA(fused_infer_attention_score)后,import mindiesd 成功但进程退出时在 libcust_opmaster_rt2.0.so 析构路径发生段错误(core dump)的问题。 **根因:** ABSA tiling 头文件复用了与 PromptFlashAttention(PFA)相同的 REGISTER_TILING_DATA_CLASS 注册键。FIA 的 CMake 会把 PFA/IFA tiling 源编进同一 libcust_opmaster_rt2.0.so,导致同键重复注册,退出析构时 double-free。 **本 PR 改动:** | 模块 | 文件 | 说明 | |------|------|------| | ABSA Host Tiling | csrc/ops/ada_block_sparse_attention/op_host/ada_block_sparse_attention_tiling.{h,cpp} | 将 tiling 结构体与 REGISTER_TILING_DATA_CLASS 注册名统一为 AdaBlockSparse* 前缀,消除与 PFA 的键冲突 | | ABSA Kernel | csrc/ops/ada_block_sparse_attention/op_kernel/ada_block_sparse_attention_base.h 等 | 同步适配重命名后的 tiling 类型 | | FIA Host | csrc/ops/fused_infer_attention_score/op_host/CMakeLists.txt | eagle_fused_infer_attention_score_depends 补充 common 依赖,修复单独编译 FIA 缺头文件问题 | | FIA Kernel | infer_flash_attention_sparse.h(两处) | 修正 fallback include 路径,保证单独编译可找到 infer_flash_attention_comm.h | **行为说明:** - 修复后:ABSA + FIA 同时编进 vendor 时,import mindiesd 后进程可正常退出,不再 core dump - ABSA / FIA 算子功能与精度路径保持不变,仅消除重复注册与编译依赖问题 # Test Plan 1. **编译验证** - bash build/build_ops.sh(含 ABSA + FIA) - bash build/build_plugin.sh - 确认 libcust_opmaster_rt2.0.so / libPTAExtensionOPS.so 正常生成并安装 2. **退出段错误回归** - 设置 ASCEND_CUSTOM_OPP_PATH 指向同时包含 ABSA + FIA 的 vendor - python3 -c "import mindiesd; print('import ok')" - 期望:进程正常退出(exit code 0),无 Segmentation fault 3. **ABSA plugin NPU 精度测试** - bash tests/run_test.sh --npu_only tests/plugin/test_adablocksparseattention.py - 或:python tests/plugin/test_adablocksparseattention.py 4. **FIAScore v2 测试** - python -m pytest tests/ops/fused_infer_attention_score/test_fused_infer_attention_score_v2.py -v # Test Report **测试环境:** Ascend NPU,MindIE-SD dev(含本 PR 改动),已安装 ABSA + FIA custom OPP 与 plugin | 测试项 | 命令 | 结果 | |--------|------|------| | 退出段错误回归 | python3 -c "import mindiesd; print('import ok')" | ✅ 进程正常退出,无 core dump | | ABSA plugin NPU 测试 | tests/plugin/test_adablocksparseattention.py | ✅ 通过 | | FIAScore v2 测试 | tests/ops/fused_infer_attention_score/test_fused_infer_attention_score_v2.py | ✅ 通过 |    See merge request: Ascend/MindIE-SD!445 | 1 个月前 | |
fix: 解决退出core dump问题(解决ABSA tiling注册命名冲突) Co-authored-by: yujunyu2<yujunyu3@huawei.com> Co-authored-by: openLiBingCI<openlibing-robot@openlibing.com> # message auto-generated for no-merge-commit merge: !445 merge dev into dev fix: 解决退出core dump问题(解决ABSA tiling注册命名冲突) Created-by: yjy_ac Commit-by: yujunyu2;openLiBingCI Merged-by: ascend-robot Description: # Which issue(s) this PR fixes or accomplishes Fixes #205 关联 Issue:https://gitcode.com/Ascend/MindIE-SD/issues/205 # Purpose 修复同时编译安装 ABSA( ada_block_sparse_attention)与 FIA(fused_infer_attention_score)后,import mindiesd 成功但进程退出时在 libcust_opmaster_rt2.0.so 析构路径发生段错误(core dump)的问题。 **根因:** ABSA tiling 头文件复用了与 PromptFlashAttention(PFA)相同的 REGISTER_TILING_DATA_CLASS 注册键。FIA 的 CMake 会把 PFA/IFA tiling 源编进同一 libcust_opmaster_rt2.0.so,导致同键重复注册,退出析构时 double-free。 **本 PR 改动:** | 模块 | 文件 | 说明 | |------|------|------| | ABSA Host Tiling | csrc/ops/ada_block_sparse_attention/op_host/ada_block_sparse_attention_tiling.{h,cpp} | 将 tiling 结构体与 REGISTER_TILING_DATA_CLASS 注册名统一为 AdaBlockSparse* 前缀,消除与 PFA 的键冲突 | | ABSA Kernel | csrc/ops/ada_block_sparse_attention/op_kernel/ada_block_sparse_attention_base.h 等 | 同步适配重命名后的 tiling 类型 | | FIA Host | csrc/ops/fused_infer_attention_score/op_host/CMakeLists.txt | eagle_fused_infer_attention_score_depends 补充 common 依赖,修复单独编译 FIA 缺头文件问题 | | FIA Kernel | infer_flash_attention_sparse.h(两处) | 修正 fallback include 路径,保证单独编译可找到 infer_flash_attention_comm.h | **行为说明:** - 修复后:ABSA + FIA 同时编进 vendor 时,import mindiesd 后进程可正常退出,不再 core dump - ABSA / FIA 算子功能与精度路径保持不变,仅消除重复注册与编译依赖问题 # Test Plan 1. **编译验证** - bash build/build_ops.sh(含 ABSA + FIA) - bash build/build_plugin.sh - 确认 libcust_opmaster_rt2.0.so / libPTAExtensionOPS.so 正常生成并安装 2. **退出段错误回归** - 设置 ASCEND_CUSTOM_OPP_PATH 指向同时包含 ABSA + FIA 的 vendor - python3 -c "import mindiesd; print('import ok')" - 期望:进程正常退出(exit code 0),无 Segmentation fault 3. **ABSA plugin NPU 精度测试** - bash tests/run_test.sh --npu_only tests/plugin/test_adablocksparseattention.py - 或:python tests/plugin/test_adablocksparseattention.py 4. **FIAScore v2 测试** - python -m pytest tests/ops/fused_infer_attention_score/test_fused_infer_attention_score_v2.py -v # Test Report **测试环境:** Ascend NPU,MindIE-SD dev(含本 PR 改动),已安装 ABSA + FIA custom OPP 与 plugin | 测试项 | 命令 | 结果 | |--------|------|------| | 退出段错误回归 | python3 -c "import mindiesd; print('import ok')" | ✅ 进程正常退出,无 core dump | | ABSA plugin NPU 测试 | tests/plugin/test_adablocksparseattention.py | ✅ 通过 | | FIAScore v2 测试 | tests/ops/fused_infer_attention_score/test_fused_infer_attention_score_v2.py | ✅ 通过 |    See merge request: Ascend/MindIE-SD!445 | 1 个月前 |