感谢社区同学的建议,以下补充五个错误示范在实际终端中的真实反馈与修复过程。

0. 环境确认与基线通过

如图 1 和图 2 所示,执行 bash run.sh -r cpu -v Ascend910B2,8 个核全部 exit success,error ratio: 0.0000,输出 test pass。

1. 错误示范:删除核函数的 __aicore__ 修饰符

改动:执行 sed 命令删除 __global__ 后的 __aicore__。
现象:在 CPU 调试模式下侥幸通过,但在 NPU 模式(-r npu)下,编译器直接报错(图 4)。
报错原文:

text

error: expecting global function add_custom requires the [aicore] or __aicpu__ qualifier

修复:恢复原文件。

2. 错误示范:制造尾核/尾块(TOTAL_LENGTH 不整除)

改动:TOTAL_LENGTH = 8 * 2048 + 10000; 导致数据无法被 8 个核整除。
现象:不仅精度全错,而且触发了 SIGABRT 崩溃(图 6)。
报错原文:

text

[DataCopyCheck][9740] Failed to check count value in DataCopy... count * sizeof(T) must be 32B align, current count value is 206.
SIGABRT Signal (Abort Signal from abort) catched...

原因:尾块未处理导致长度变成了 206,破坏了 32 字节对齐红线,CPU 调试器捕获越界直接中断。最终错误率高达 error ratio: 1.0000(图 7)。
修复:恢复原文件。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐