Ascend C算子中条件分支导致不同核进入死循环该如何排查?
收藏回复举报
Ascend C算子中条件分支导致不同核进入死循环该如何排查?
t('forum.solved') 已解决
发表于2026-06-13 17:35:15
0 查看

我在开发一个Ascend C算子时遇到了一个非常奇怪的现象。算子的逻辑中包含一个依赖于输入数据的条件分支,根据某个标量值决定执行路径A还是路径B。在单核测试下一切正常,但当我用多核并行时,程序会随机性地卡死,只能强制终止。我通过逐步添加调试打印发现,卡死的时候往往是某些核执行了路径A,另一些核执行了路径B,并且它们似乎在等待某种永远不会到来的同步事件。我原本以为每个核独立执行条件判断是安全的,但看起来核间的执行差异似乎引发了我没预料到的死锁。想请教一下大家,在Ascend C的多核编程中,核间出现条件分支不一致时,有哪些需要特别注意的同步陷阱?

我要发帖子