已关闭
[Bug-Report|缺陷反馈]: [max_pool3d_with_argmax_v2] arch35 big kernel含SyncAll但tiling未设置SetScheduleMode(1),存在死锁风险 #5805
tangweiwei2创建于 8 天前关闭于 7 天前
8 天前 添加了label:bug-report
8 天前 将 tangweiwei2 设为负责人
8 天前 将 liuguoyue 设为负责人
7 天前 关闭了 issue
6 天前 添加了label:resolved
问题描述 / Describe the current behavior
max_pool3d_with_argmax_v2的 arch35(Ascend950)big kernel(regbase 多核形态)在Process()中执行SyncAll(),但对应 tiling 从未调用SetScheduleMode(1)(batch mode)。未设 batch mode 时 block 分波启动,SyncAll等待全量 block,在 blockDim 超过可用核数或多流共享核资源场景下会死锁。pooling/max_pool3d_with_argmax_v2/op_kernel/arch35/max_pool3d_with_argmax_v2_big_kernel_regbase.h:870—— 两阶段:各子核MulCoreComputeLocal()(窗口 W 切分本地 max/index 写 workspace)→SyncAll()→ 每窗口 0 号子核MulCoreReduceAndStore()归约写出op_host/max_pool3d_with_argmax_v2_tiling_big_kernel_regbase.cpp:351返回TILING_KEY_BIG_KERNEL_REGBASE_NCDHW选中该 kernel,multiCoreNum_可大于 1(274-282 行按 kW/wSplitSize 切分)max_pool3d_with_argmax_v2_tiling_big_kernel_regbase.cpp全文无SetScheduleMode(该算子 op_host 其余 tiling 亦均无)环境信息 / Environment
cc067338f,非 experimental 目录__CCE_AICORE__ == 310)路径重现步骤 / Steps to reproduce
max_pool3d_with_argmax_v2_big_kernel_regbase.h:870的SyncAll()位于 Process 主路径;max_pool3d_with_argmax_v2_tiling_big_kernel_regbase.cpp选中该 kernel 但全文无SetScheduleMode;预期结果 / Describe the expected behavior
kernel 含 SyncAll 的分支,其对应 tiling 应设置
context->SetScheduleMode(1)(batch mode),保证所有 block 同时启动。修复方式参考仓内惯例(如unsorted_segment_sum、embedding_hash_table_export):context->SetScheduleMode(1); // kernel 使用 SyncAll,需设置为 batch mode,所有核同时启动日志 / 截图 / Related log
静态扫描结论(无运行日志)。
备注 / Special notes
无