Ascend C算子中不同核间数据交换失败导致结果不一致该如何处理?
收藏回复举报
Ascend C算子中不同核间数据交换失败导致结果不一致该如何处理?
t('forum.solved') 已解决
发表于2026-04-12 12:35:55
0 查看

我在开发一个Ascend C算子时用到了核间数据交换的功能。算子的逻辑是需要所有核共同完成一个规约操作,每个核计算局部结果后,通过核间交换将数据汇总到某个主核上再进行后续处理。我参考了Ascend C提供的核间通信接口来实现,但在实际运行中发现结果很不稳定。同一个输入多次执行,有时能得到正确结果,有时却出现部分核的数据没有被正确汇总的情况,而且错误出现的位置和频率似乎与核数有关,核数越多越容易出错。我检查了每个核的局部计算部分,单独输出都是正确的,问题应该出在交换和汇总阶段。想请教一下大家,在Ascend C中实现核间数据交换时,有哪些容易出错的细节需要特别注意?

我要发帖子