已关闭
[Usage]: 使用Mindie 2.3.0 的sparseBlockEstimate遇到问题 #91
ssksskssk创建于  4月28日关闭于  7月13日
ssksskssk
4月28日 创建

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

环境信息

- 操作系统:EulerOS 2.0 (aarch64)
- 昇腾硬件信息 :910B4
- CANN软件版本: 8.3.RC2
- torch:2.8.0
- torch_npu:2.8.0.post2
- MindIE版本:2.3.0

使用场景及问题

同一环境下单独或多进程的测试Sparse BLock Estimate没有问题,在业务代码中调用会遇到找不到这个算子的问题?下面是plog

[INFO] GE(1363547,python):2026-04-28-11:53:25.341.367 [ops_kernel_manager.cc:219]1425879 InitOpsKernelInfo:Init opsKernelInfo finished, size is 1893
[INFO] GE(1363547,python):2026-04-28-11:53:25.341.377 [graph_builder.cc:109]1425879 ~FuncPerfScope:[GEPERFTRACE] The time cost of OpsKernelManager::InitOpsKernelInfo is [18561] micro seconds.
[WARNING] GE(1363547,python):2026-04-28-11:53:25.341.380 [ops_kernel_manager.cc:311]1425879 GetOpsKernelInfo:Failed to get opsKernelInfo object by type: SparseBlockEstimate.
[INFO] GE(1363547,python):2026-04-28-11:53:25.341.385 [dnnengine_manager.cc:336]1425879 GetDNNEngineName:DNNEngineManager: Can not get op info by op type SparseBlockEstimate
[INFO] GE(1363547,python):2026-04-28-11:53:25.341.448 [error_manager.cc:439]1425879 ReportErrMessage:report error_message, error_code:EZ3003, work_stream_id:136356071572, error_mode:0.
[ERROR] GE(1363547,python):2026-04-28-11:53:25.341.499 [engine_place.cc:68]1425879 SelectEngine: ErrorNo: 1343242282(assign engine failed) [Check][Param] Can not find engine of op name SparseBlockEstimate10 type SparseBlockEstimate
[INFO] GE(1363547,python):2026-04-28-11:53:25.341.593 [error_manager.cc:386]1425879 ReportInterErrMessage:report error_message, error_code:E19999, work_stream_id:136356071572, error_mode:0
[ERROR] GE(1363547,python):2026-04-28-11:53:25.341.605 [engine_place.cc:150]1425879 operator(): ErrorNo: 4294967295(failed) Failed to select engine for [SparseBlockEstimate10][SparseBlockEstimate].
[ERROR] GE(1363547,python):2026-04-28-11:53:25.341.628 [engine_place.cc:171]1371572 Run: ErrorNo: 1343225857(Parameter invalid!) Failed to SelectEngine.
[DEBUG] GE(1363547,python):2026-04-28-11:53:25.341.644 [engine_place.cc:176]1371572 Run:Engine placer ends.
[INFO] GE(1363547,python):2026-04-28-11:53:25.341.994 [error_manager.cc:386]1371572 ReportInterErrMessage:report error_message, error_code:E19999, work_stream_id:136356071572, error_mode:0
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.005 [engine_place.cc:123]1371572 RunAllSubgraphs: ErrorNo: 4294967295(failed) RunAllSubgraphs failed, graph=online.
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.010 [graph_manager.cc:3679]1371572 OptimizeSubgraph: ErrorNo: 4294967295(failed) [Call][Run] Engine placer run failed, graph:online.
[DEBUG] GE(1363547,python):2026-04-28-11:53:25.342.040 [tracing_recorder.cpp:163]1371572 RecordDuration:TracingRecord[msg:GraphManager::OptimizeSubgraph,start=1777348405321615981,duration=20399336ns,pid=1363547,tid=1371572,event=0] has been recorded to atrace log.
[INFO] GE(1363547,python):2026-04-28-11:53:25.342.045 [graph_manager.cc:1056]1371572 PreRunOptimizeSubGraph:[GEPERFTRACE] The time cost of GraphManager::OptimizeSubgraph is [20400] micro seconds.
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.049 [graph_manager.cc:1056]1371572 PreRunOptimizeSubGraph: ErrorNo: 4294967295(failed) [Process][GraphManager_OptimizeSubgraph] failed
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.052 [graph_manager.cc:4201]1371572 OptimizeGraph: ErrorNo: 4294967295(failed) [Run][PreRunOptimizeSubGraph] failed for graph:online, session_id:13.
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.057 [graph_manager.cc:1302]1371572 DoBuildModel: ErrorNo: 4294967295(failed) [Optimize][Graph] failed, graph = online
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.064 [graph_manager.cc:1206]1371572 PreRun: ErrorNo: 4294967295(failed) [Build][Model] failed, session_id:13, graph_id:9.
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.069 [graph_manager.cc:1450]1371572 StartForRunGraph: ErrorNo: 4294967295(failed) [Call][PreRun] Failed, graph_id:9, session_id:13.
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.073 [graph_manager.cc:2020]1371572 BuildGraph: ErrorNo: 4294967295(failed) [Call][StartForRunGraph] failed! graph_id:9.
[INFO] GE(1363547,python):2026-04-28-11:53:25.342.091 [error_manager.cc:386]1371572 ReportInterErrMessage:report error_message, error_code:E19999, work_stream_id:136356071572, error_mode:0
[ERROR] GE(1363547,python):2026-04-28-11:53:25.342.096 [ge_generator.cc:1595]1371572 BuildModelWithGraphId: ErrorNo: 1343266819(Graph manager build graph failed.) [Build][Graph] fail, graph id: 9
[INFO] GE(1363547,python):2026-04-28-11:53:25.342.113 [graph_var_manager.cc:784]1371572 Destory:VarManager::Destory, session id = 13.
[WARNING] GE(1363547,python):2026-04-28-11:53:25.342.117 [graph_var_manager.cc:1438]1371572 FreeVarMemory:MemManager is nullptr please check if it has been initialized.
[INFO] GE(1363547,python):2026-04-28-11:53:25.342.161 [ge_generator.cc:1300]1371572 BuildSingleOpModel:Finish build single online model, status: 4294967295
[ERROR] ASCENDCL(1363547,python):2026-04-28-11:53:25.342.167 [local_compiler.cpp:131]1371572 OnlineCompileAndDump: [Build][SingleOpModel]call ge interface generator.BuildSingleOpModel failed. ge result = 4294967295
[INFO] GE(1363547,python):2026-04-28-11:53:25.342.185 [error_manager.cc:386]1371572 ReportInterErrMessage:report error_message, error_code:EH9999, work_stream_id:136356071572, error_mode:0
[INFO] ASCENDCL(1363547,python):2026-04-28-11:53:25.342.195 [context.cpp:59]1371572 aclrtSetCurrentContextImpl: start to execute aclrtSetCurrentContext.
[INFO] RUNTIME(1363547,python):2026-04-28-11:53:25.342.204 [api_impl.cc:3965] 1371572 ContextSetCurrent: set context=0x287ae8f0
[INFO] ASCENDCL(1363547,python):2026-04-28-11:53:25.342.213 [context.cpp:67]1371572 aclrtSetCurrentContextImpl: successfully execute aclrtSetCurrentContext
[ERROR] ASCENDCL(1363547,python):2026-04-28-11:53:25.342.217 [local_compiler.cpp:144]1371572 OnlineCompileAndDump: OnlineCompileAndDump failed
[WARNING] GE(1363547,python):2026-04-28-11:53:25.342.280 [analyzer.cc:137]1371572 DestroyGraphJsonObject:can not find the stored object by session_id[13].Do nothing
[WARNING] GE(1363547,python):2026-04-28-11:53:25.342.305 [graph_manager.cc:446]1371572 Finalize:GraphManager has not been initialized.
[ERROR] ASCENDCL(1363547,python):2026-04-28-11:53:25.342.412 [acl_resource_manager.cpp:516]1371572 GetOpModel: [Build][Op]Fail to build op model
[INFO] GE(1363547,python):2026-04-28-11:53:25.342.432 [error_manager.cc:386]1371572 ReportInterErrMessage:report error_message, error_code:EH9999, work_stream_id:136356071572, error_mode:0
[ERROR] ASCENDCL(1363547,python):2026-04-28-11:53:25.342.440 [op_compiler.cpp:204]1371572 aclopCompileAndExecute: build op model failed, result = 500002
[INFO] GE(1363547,python):2026-04-28-11:53:25.342.452 [error_manager.cc:386]1371572 ReportInterErrMessage:report error_message, error_code:EH9999, work_stream_id:136356071572, error_mode:0
[INFO] ASCENDCL(1363547,python):2026-04-28-11:53:25.342.484 [context.cpp:177]1371572 aclrtPeekAtLastErrorImpl: start to execute aclrtPeekAtLastError, level is 0
[INFO] ASCENDCL(1363547,python):2026-04-28-11:53:25.342.564 [acl.cpp:729]1371572 aclGetRecentErrMsg: start to execute aclGetRecentErrMsg.
[DEBUG] RUNTIME(1363547,python):2026-04-28-11:53:25.342.571 [api_impl.cc:6313] 1371572 GetDevMsg: GetDeviceMsg, getMsgType=0
[DEBUG] RUNTIME(1363547,python):2026-04-28-11:53:25.342.581 [npu_driver.cc:364] 1371572 RtGetRunMode: RunMode=1 [0:offline, 1:online]
[DEBUG] RUNTIME(1363547,python):2026-04-28-11:53:25.342.590 [npu_driver.cc:2040] 1371572 DevMemAlloc: device_id=4, type=2, size=2097152, mode=1.
[DEBUG] RUNTIME(1363547,python):2026-04-28-11:53:25.342.595 [npu_driver.cc:1789] 1371572 DevMemAllocOnline: memory policy=0x0.
[DEBUG] RUNTIME(1363547,python):2026-04-28-11:53:25.342.598 [npu_driver.cc:1806] 1371572 DevMemAllocOnline: device_id=4, type=2, size=2097152, chip type=5, policy=0x0.
[DEBUG] DRV(1363547,python):2026-04-28-11:53:25.342.608 [devmm_svm.c:2632][ascend][curpid:1363547,1371572][drv][devmm][devmm_set_advise]Flag. (flag=0x700000000924404; size=0x200000; ad=0x7000006; devid=4; virt=1; huge=1; numa_ts=1)

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
ascend-robotascend-robot成员
4月28日 添加了label:usage
ssksskssk
4月28日 评论:

找到问题,发现是多进程在创建的时候,实际没有把import mindie加载到对应的卡上,导致GE阶段没有该算子的注册

likedislike
Cchangetheway成员
5月7日 添加了label:triage-review
changetheway成员
5月7日 评论:

Issue 分类

类型: 使用问题 (Usage)

状态: 已解决 - 用户已找到问题原因

标签建议: usage, triage-review

问题分析

用户在多进程环境下使用 sparseBlockEstimate 算子时遇到算子注册失败的问题。根据用户反馈,问题原因是:

多进程在创建的时候,实际没有把 import mindie 加载到对应的卡上,导致 GE 阶段没有该算子的注册

解决方案建议

  1. 确保算子正确加载: 在多进程环境下,确保每个进程在初始化时正确加载 MindIE-SD 库
  2. 设备绑定: 在 fork 子进程后,确保每个进程绑定到正确的 NPU 设备
  3. 初始化顺序: 建议在 torch.multiprocessing 的 spawn 方法下,确保子进程重新初始化 MindIE-SD

推荐责任人

建议由 @changetheway 或相关算子开发人员跟进此问题的文档完善,以便其他用户避免类似问题。

likedislike
changetheway成员
5月7日 评论:

Issue 自动评审结果

分类

  • 类型: Usage / Bug
  • 优先级: Medium
  • 建议标签: usage, operator

问题根因分析

在业务代码中调用 SparseBlockEstimate 算子时找不到该算子。

根因推测:

  1. SparseBlockEstimate 算子未在 GE 中正确注册
  2. 业务代码的上下文环境与单独测试时不同
  3. CANN 8.3.RC2 可能不支持该算子
  4. MindIE 2.3.0 与当前 CANN 版本存在兼容性问题

排查方向

  1. 确认业务代码中是否正确初始化了 MindIE/MindIE-SD
  2. 检查单独测试与业务代码的 GE 初始化差异
  3. 确认 SparseBlockEstimate 算子在 CANN 8.3.RC2 中的支持情况

优化建议

  1. 在业务代码开头添加算子注册检查
  2. 确保 GE 初始化顺序正确
  3. 考虑升级 CANN 到 8.5 版本

推荐责任人

@ssksskssk(报告者)

相关 Issue

可能与 #64 安装问题相关,建议检查 MindIE-SD 是否正确安装。

likedislike
changetheway成员
5月11日 评论:

🤖 AI 评审

感谢提交此使用问题!

问题分类: Usage

初步分析:
错误信息表明 SparseBlockEstimate 算子在业务代码中找不到,但在单独或多进程测试中正常。

排查方向:

  1. 检查 ASCEND_CUSTOM_OPP_PATH 环境变量是否正确设置
  2. 确认业务代码中的 CANN 配置与测试环境一致
  3. 可能存在多进程间的 CANN 初始化冲突

关联分析:
发现 PR #255 (修复 get_platform 平台检测逻辑) 可能与调试此类问题相关。
该 PR 状态:open,目标分支:dev


此评论由 AI 自动生成

likedislike
changetheway成员
5月11日 评论:

🤖 【AI自动分析】

感谢提交此问题!

分类标签建议: usage, ai-triaged


📖 初步指引

您遇到了 sparseBlockEstimate 算子在业务代码中找不到,但在单独或多进程测试中正常的问题。

初步分析

可能原因:

  1. 算子初始化时机问题: 业务代码可能在算子注册完成前就尝试调用
  2. 进程/线程上下文差异: 单进程测试与多进程业务代码的初始化顺序不同
  3. 环境变量或配置差异: CANN 相关配置未正确加载

建议排查步骤

  1. 检查 GE 日志时间戳: 对比算子初始化与首次调用的时间顺序
  2. 添加延迟测试: 在业务代码中延迟调用,看是否能找到算子
  3. 确认环境一致性: 检查业务代码与测试代码的 CANN 配置是否相同
  4. 查看算子注册: 确认 sparseBlockEstimate 算子在 init_opsKernelInfo 中被正确加载

建议补充

  1. 已尝试的步骤
  2. 具体错误信息
  3. 环境版本

本评论由 AI 自动生成,仅供参考。如需进一步帮助,请补充复现步骤。

likedislike
lanwangli成员
6月17日 评论:

Bug 问题已收到,本 Issue 建议标记为 bug(ai-triaged)。

根因分析:根据标题推测,该问题可能与特定场景下的算子调用或资源管理有关。
排查方向:

  1. 收集完整的错误堆栈和日志。
  2. 确认环境版本(CANN、PyTorch、torch_npu)。
  3. 尝试最小化复现用例。
    优化建议:请在评论中补充:错误日志、环境信息、复现步骤,以便进一步定位。
    关联分析:发现 PR #367 ([Feature][Build]Conditionally set ascend_compute_unit by CANN version) 可能与本 Issue 相关。
    该 PR 状态:open,目标分支:dev。
    建议维护者确认关联关系。

如问题已解决,请关闭本 Issue;如需进一步排查,请补充上述信息。

likedislike
lanwangli成员
6月17日 评论:

Issue #91 (Question/Usage):

收到你的问题!本 Issue 已标记为 usage。

初步指引:
您在使用 MindIE 2.3.0 的 sparseBlockEstimate 时遇到算子找不到的问题。根据后续评论,您已定位到问题根源:多进程创建时未将 import mindie 加载到对应的 NPU 卡上,导致 GE 阶段算子注册缺失。

验证建议:

  1. 确认在多进程启动前,主进程已正确执行 import mindie 并初始化 NPU 设备。
  2. 检查子进程的环境变量 ASCEND_DEVICE_ID 是否与预期一致。
  3. 参考文档中的多进程使用说明,确保每个进程独立绑定设备。

关联分析:

  • 发现 PR #356 ([Bugfix][SparseEstimate]Fix uninitialized variables on invalid input_layout) 可能与本 Issue 相关。该 PR 状态:merged,目标分支:dev。
    建议维护者确认关联关系。
likedislike
changetheway成员
6月25日 评论:

❓ 问题已收到

本 Issue 已标记为 question。

初步指引:

  1. 请查阅官方文档和FAQ
  2. 确认使用方式符合快速入门指南

若未解决,请补充:

  1. 已尝试的步骤
  2. 具体错误信息或异常表现
  3. 环境版本(CANN、PyTorch、MindIE-SD)
likedislike
changetheway成员
6月25日 评论:

关联分析:发现 PR #372 (【WIP】[Feature][wan]新增显存性能一键测试脚本) 可能与本 Issue 相关。
该 PR 状态:open,目标分支:dev。
建议维护者确认关联关系。

likedislike
changetheway成员
6月26日 评论:

Bug 问题已收到,本 Issue 已标记为 bug(ai-triaged)。

根因分析:
根据标题描述,该问题涉及 [Usage]: 使用Mindie 2.3.0 的sparseBlockEstimate遇到问题。初步推测可能与代码逻辑或环境配置有关。

排查方向:

  1. 请确认是否使用了最新版本的代码和依赖。
  2. 请提供完整的错误日志和堆栈信息。
  3. 请说明复现步骤和运行环境(硬件、CANN版本、Python版本等)。

优化建议:
在获取更多信息后,维护团队将进行深入分析。如有相关修复,我们将及时更新。
关联分析:发现 PR #377 ([Docs][installation]Point CANN install section to ops-cv quick-install guide) 可能与本 Issue 相关。
该 PR 状态:open,目标分支:dev。
建议维护者确认关联关系。
关联分析:发现 PR #372 (【WIP】[Feature][wan]新增显存性能一键测试脚本) 可能与本 Issue 相关。
该 PR 状态:open,目标分支:dev。
建议维护者确认关联关系。

likedislike
lanwangli成员
7月1日 评论:

收到你的问题!本 Issue 已标记为 question(ai-triaged)。

初步指引:请查看相关文档和算子使用说明,确认 SparseBlockEstimate 算子的注册路径和版本兼容性。常见原因包括:CANN 版本不匹配、算子未正确注册、或环境变量未配置。

若未解决,请补充:

  1. 已尝试的步骤
  2. 具体错误信息
  3. 环境版本(CANN、torch、torch-npu)

关联分析:发现 PR #356 ([Bugfix][SparseEstimate]Fix uninitialized variables on invalid input_layout and align fake op with C++ plugin) 可能与本 Issue 相关。
该 PR 状态:merged,目标分支:dev。
建议维护者确认关联关系。

本评论由 AI 自动处理,标记 ai-triaged。

likedislike
ascend-robotascend-robot成员
7月3日 关联了看板:MindStudio ISSUE管理
lanwangli成员
7月13日 评论:

收到你的问题!本 Issue 已标记为 usage(ai-triaged)。

初步指引:

  1. 请确认 MindIE-SD 版本与 CANN 版本兼容性
  2. 检查 sparseBlockEstimate 相关依赖是否正确安装
  3. 参考 docs/zh/installation.md 中稀疏注意力相关配置

若未解决,请补充:

  1. 已尝试的步骤
  2. 具体错误信息(包括完整报错堆栈)
  3. 环境版本(CANN、Python、OS、MindIE-SD 版本等)

关联分析:暂未发现与当前 Issue 直接相关的 PR。
建议维护者确认关联关系。

likedislike
ChengHongZhengChengHongZheng成员
7月13日 issue状态由 TODO 改变为 DONE
ChengHongZhengChengHongZheng成员
7月13日 关闭了 issue
ascend-robotascend-robot成员
7月13日 添加了label:resolved
lijinxilijinxi成员
8月31日 关联了看板:MindIE-SD