本节提供了有关先前所述使用 XRT 错误报告 API 获取的错误以及这些错误的相关调试信息。这些错误是由 AI 引擎阵列传出的,可用于调试硬件中应用特有的错误。
对于 XRT_ERROR_CLASS_AIE 类的错误(如 https://github.com/Xilinx/XRT/blob/master/src/runtime_src/core/include/xrt_error_code.h 中所示),您可启用 dmesg
log 日志来获取更多信息,该日志可提供错误原因,如下表所述。log 日志示例如下:
[18.462615] aie aie0: Asserted tile error event 56 at col 6 row 7
[18.471397] aie aie0: Asserted tile error event 60 at col 25 row 1
col
和 row
编号来表示的。行 0 是 SHIM tile(SHIM 接口拼块),AI 引擎从行 1 开始。下表列出了各种错误类别、精确的错误数量、错误描述以及有关调试并解决错误的后续步骤的技巧提示。
错误分组 | 编号 | 名称 | 描述 | 调试技巧 |
---|---|---|---|---|
Instruction Errors(指令错误) | 59 | Instruction Decompression Error(指令解压错误) | 当 AI 引擎无法解压所提取的指令时发生的事件。如果程序指令损坏,就会发生此错误。确认 ELF 生成。 | 使用 Vitis 编译器 (V++) --package 命令重新生成 ELF 文件。如果问题仍然存在,请联系 AMD 技术支持。 |
Access Errors(访问错误) | 55 | PM Reg Access Failure(PM 寄存器访问故障) | AXI 存储器映射接口和 AI 引擎访问 PM 时,如发生 bank 访问冲突,就会出现此错误。 | 联系 AMD 技术支持。 |
60 | DM address out of range(PM 地址超出范围) | 如果 AI 引擎尝试访问的存储器位置超出 0x20000 – 0x3FFFF 的范围,就会生成此事件。 | 请运行 AI 引擎仿真器 (aiesimulator ) 并搭配 –-enable-memory-check ,这将标记所有访问违例。 或者运行 |
|
65 | PM address out of range(PM 地址超出范围) | PC 超出范围时,就会生成此事件 | 请运行 AI 引擎仿真器 (aiesimulator ) 并搭配 – enable-memory-check ,这将标记所有访问违例。或者运行 x86simulator 搭配 --valgrind ,这将标记所有访问违例。 |
|
66 | DM access to unavailable(DM 访问不可用位置) | 如果 AI 引擎对近邻中的隔离 tile 发出访问,就会生成此事件。 | 请检查 AI 引擎上运行的内核是否正在访问另一分区内的隔离 tile 的数据存储器。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
Bus Errors(总线错误) | 58 | AXI MM Slave Error(AXI MM 从接口错误) | 如果 AXI 存储器映射接口的从读/写请求的对象是 AI 引擎 tile 中不存在的地址,则会生成此事件。 | 如果 PL IP 当前使用 AXI 存储器映射接口来访问 AI 引擎寄存器,请检查 PL IP,查看它是否正在访问无效的寄存器。 如果问题仍然存在,请联系 AMD 技术支持。 |
Stream Errors(串流错误) | 54 | TLAST in WSS words 0-2(WSS 码字 0-2 中存在 TLAST) | 如果 TLAST 并非位于宽串流的第 4 个码字处,就会生成此事件。 | 如果使用 PL IP 生成串流,请检查它是否正确生成 TLAST。 如果问题仍然存在,请联系 AMD 技术支持。 |
56 | Stream Pkt Parity Error(串流包奇偶校验错误) |
如果包的报头中存在任何奇偶校验错误,就会生成此事件。 |
请检查数据源(例如,生成包的 PL IP),确认包是否有效,以及是否能正确计算得出奇偶校验位。如果数据来自 PL IP,请检查从该 PL IP 生成的包报头。 | |
57 | Control Pkt Error(控制包错误) | 控制包错误 | 请检查数据源(例如,生成包的 PL IP),确认它是否能正确生成包。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
ECC Errors(DMA 错误) | 64 | PM ECC Error 2bit(DM ECC 2 位错误) | 当检测到 2 位 ECC 错误时,就会生成此事件 | 重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
62 | PM ECC Error Scrub 2bit(DM ECC 2 位清理) | 如果 ECC 清理程序检测到 2 位 ECC 错误,就会生成此事件 | 重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
Lock Errors(锁定错误) | 67 | Lock Access to unavailable(锁定访问不可用位置) | 如果 AI 引擎对近邻中的隔离 tile 发出访问,就会生成此事件。 | 请运行 AI 引擎仿真器 (aiesimulator ) 并搭配 –-enable-memory-check ,这将标记所有访问违例。如果问题仍然存在,请联系 AMD 技术支持。或者运行 x86simulator 搭配 --valgrind ,这将标记所有访问违例。 |
|
错误分组 | 编号 | 名称 | 描述 | 调试技巧 |
---|---|---|---|---|
ECC Errors(DMA 错误) | 88 | DM ECC Error Scrub 2bit(DM ECC 2 位清理) | 当 ECC 清理程序在 DM 的 bank 0 或 bank 1 中检测到 2 位 ECC 错误时,就会生成此错误。 | 重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
90 | DM ECC Error 2bit(DM ECC 2 位错误) | 在访问 DM 的 bank 0 或 1 期间检测到 2 位 ECC 错误时,就会生成此事件。从 AI 引擎、tile DMA 或 AXI 存储器映射接口访问 DM 都可能导致发生此数据存储器 ECC 错误。 | 重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
Memory Parity Errors(存储器奇偶校验错误) | 91 | DM Parity Error Bank 2(DM 奇偶校验错误 bank 2) | 在访问 DM bank 2 期间检测到奇偶校验错误时,就会生成此事件。 从 AI 引擎、tile DMA 或 AXI 存储器映射接口访问 DM 都可能导致发生此数据存储器奇偶校验错误。 |
重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
92 | DM Parity Error Bank 3(DM 奇偶校验错误 bank 3) | 在访问 DM bank 3 期间检测到奇偶校验错误时,就会生成此事件。 从 AI 引擎、tile DMA 或 AXI 存储器映射接口访问 DM 都可能导致发生此数据存储器奇偶校验错误。 |
重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
93 | DM Parity Error Bank 4(DM 奇偶校验错误 bank 4) | 在访问 DM bank 4 期间检测到奇偶校验错误时,就会生成此事件。 从 AI 引擎、tile DMA 或 AXI 存储器映射接口访问 DM 都可能导致发生此数据存储器奇偶校验错误。 |
重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
94 | DM Parity Error Bank 5(DM 奇偶校验错误 bank 5) | 在访问 DM bank 5 期间检测到奇偶校验错误时,就会生成此事件。 从 AI 引擎、tile DMA 或 AXI 存储器映射接口访问 DM 都可能导致发生此数据存储器奇偶校验错误。 |
重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
95 | DM Parity Error Bank 6(DM 奇偶校验错误 bank 6) | 在访问 DM bank 6 期间检测到奇偶校验错误时,就会生成此事件。 从 AI 引擎、tile DMA 或 AXI 存储器映射接口访问 DM 都可能导致发生此数据存储器奇偶校验错误。 |
重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
96 | DM Parity Error Bank 7(DM 奇偶校验错误 bank 7) | 在访问 DM bank 7 期间检测到奇偶校验错误时,就会生成此事件。 从 AI 引擎、tile DMA 或 AXI 存储器映射接口访问 DM 都可能导致发生此数据存储器奇偶校验错误。 |
重新运行该应用。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
DMA Errors(DMA 错误) | 97 | DMA S2MM 0 Error(DMA S2MM 0 错误) | 写入 S2MM 通道 0 的 BD 任务队列时,如果此队列已满,则可能导致此错误。 | 如果您负责管理应用中的缓冲器描述符,请验证您在队列已满时未推送新的缓冲器描述符。 如果问题仍然存在,请联系 AMD 技术支持。 |
98 | DMA S2MM 1 Error(DMA S2MM 1 错误) | 写入 S2MM 通道 1 的 BD 任务队列时,如果此队列已满,则可能导致此错误。 | 如果您负责管理应用中的缓冲器描述符,请验证您在队列已满时未推送新的缓冲器描述符。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
99 | DMA MM2S 0 Error(DMA MM2S 0 错误) | 写入 MM2S 通道 0 的 BD 任务队列时,如果此队列已满,则可能导致此错误。 | 如果您负责管理应用中的缓冲器描述符,请验证您在队列已满时未推送新的缓冲器描述符。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
100 | DMA MM2S 1 Error(DMA MM2S 1 错误) |
写入 MM2S 通道 1 的 BD 任务队列时,如果此队列已满,则可能导致此错误。 |
如果您负责管理应用中的缓冲器描述符,请验证您在队列已满时未推送新的缓冲器描述符。 如果问题仍然存在,请联系 AMD 技术支持。 |
错误分组 | 编号 | 名称 | 描述 | 调试技巧 |
---|---|---|---|---|
Bus Errors(总线错误) | 62 | AXI MM Slave Tile Error(AXI MM 从拼块错误) | 如果 AXI 存储器映射接口从请求进入接口拼块,但地址无效,则会生成此事件。 | 如果使用 PL IP 通过 AXI 存储器映射接口访问 AI 引擎寄存器,请检查此 IP 是否会尝试访问错误的地址。 如果问题仍然存在,请联系 AMD 技术支持。 |
64 | AXI MM Decode NSU Error(AXI MM 解码 NSU 错误) | AXI 存储器映射接口流量的内部响应含有 DECERR。例如,如果某一列中的多个 tile 均已采用时钟门控,那么在内部会生成解码器错误并穿越 AXI 存储器映射接口进入接口 tile,从而生成此事件。 | 如果使用 PL IP 通过 AXI 存储器映射接口访问 AI 引擎寄存器,请检查此 IP 是否会尝试访问已采用门控的 tile。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
65 | AXI MM Slave NSU Error(AXI MM 从 NSU 错误) | AXI 存储器映射接口流量的内部响应含有 SLVERR。例如,该接口 tile 列内的某个 AI 引擎 tile 的响应中包含从错误。该从错误将作为从错误,穿越 AXI 存储器映射接口到达接口 tile。 | 如果使用 PL IP 通过 AXI 存储器映射接口访问 AI 引擎寄存器,请检查此 IP 是否会尝试访问错误的地址。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
66 | AXI MM Unsupported Traffic(AXI MM 不受支持的流量) | 源自 NoC 的 AXI 存储器映射接口提交了 AI 引擎不支持的请求。 | 如果使用 PL IP 通过 AXI 存储器映射接口访问 AI 引擎,请检查此 IP 是否会生成不受支持的 AXI 存储器映射接口请求。 | |
67 | AXI MM Unsecure Access in Secure Mode(安全模式下的 AXI MM 不安全访问) | 源自 NoC 的 AXI 存储器映射接口当前发生安全模式违例(在 AI 引擎仅支持安全流量的情况下,尝试路由不安全的流量)。 | 检查 AI 引擎阵列是否是在安全模式下配置的。 | |
68 | AXI MM Byte Strobe Error(AXI MM 字节选通错误) | 源自 NoC 的 AXI 存储器映射接口正在以不完整的 32 位码字执行写入(任一 32 位码字内的所有字节选通都必须置位)。 | 如果 PL IP 正在使用 AXI 存储器映射接口访问 AI 引擎,请检查是否每个 32 位码字中的所有字节选通都已置位。 | |
Stream Error(串流错误) | 63 | Control Pkt Error(控制包错误) | 控制包错误 | 如果 PL IP 正在生成控制包,请检查此 IP 是否正确生成这些包。 如果问题仍然存在,请联系 AMD 技术支持。 |
DMA 错误 | 69 | DMA S2MM 0 Error(DMA S2MM 0 错误) | 此 DMA 错误对应于 DMA S2MM 通道 0。可能的原因有:
|
如果您负责管理应用中的缓冲器描述符,请验证您在队列已满时未推送新的缓冲器描述符。 如果您负责管理应用中的缓冲器描述符,请检查发送到接口 tile DMA 缓冲器描述符的存储器地址是否有效。 如果问题仍然存在,请联系 AMD 技术支持。 |
70 | DMA S2MM 1 Error(DMA S2MM 1 错误) | 此 DMA 错误对应于 DMA S2MM 通道 1。可能的原因有:
|
如果您负责管理应用中的缓冲器描述符,请验证您在队列已满时未推送新的缓冲器描述符。 如果您负责管理应用中的缓冲器描述符,请检查发送到接口 tile DMA 缓冲器描述符的存储器地址是否有效。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
71 | DMA MM2S 0 Error(DMA MM2S 0 错误) | 此 DMA 错误对应于 DMA MM2S 通道 0。可能的原因有:
|
如果您负责管理应用中的缓冲器描述符,请验证您在队列已满时未推送新的缓冲器描述符。 如果您负责管理应用中的缓冲器描述符,请检查发送到接口 tile DMA 缓冲器描述符的存储器地址是否有效。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
72 | DMA MM2S 1 Error(DMA MM2S 1 错误) | 此 DMA 错误对应于 DMA MM2S 通道 1。可能的原因有:
|
如果您负责管理应用中的缓冲器描述符,请验证您在队列已满时未推送新的缓冲器描述符。 如果您负责管理应用中的缓冲器描述符,请检查发送到接口 tile DMA 缓冲器描述符的存储器地址是否有效。 如果问题仍然存在,请联系 AMD 技术支持。 |
|
|