AI 引擎事件可提供有关特定时刻的系统信息。与时间戳、类型和一系列数据值关联的事件被称为有效载荷。有效载荷的解读取决于事件类型。时间戳支持事件排序、计算因果关系和对一系列事件执行验证器的实现。
为便于事件建模,AI 引擎阵列的关键模块包括处理器、DMA、锁定模块、存储器和 I/O 串流。每个模块均可视作为事件生成器/响应器。每个模块均可接收事件和响应事件。可生成新事件作为响应。事件基于事件生成器来分类。在事件定义中并不会显式提及时间戳。每起事件均以有效载荷来描述,有效载荷即多个与该事件关联的值。每个 AI 引擎、存储器、DMA 或锁定均可按二维索引 <col, row> 进行寻址,二维索引即 AI 引擎阵列中的列索引和行索引。下表显示了部分 AI 引擎事件。
下表列出了由 AI 引擎生成的事件及其对应的 ID。
事件编号 | AI 引擎版本 | 事件名称 | 注释 |
---|---|---|---|
22 | AI 引擎/AI 引擎机器学习 | Group Core Stall | 从事件编号 23 到 31 范围内的任意或所有事件均可触发此事件。 |
23 | AI 引擎/AI 引擎机器学习 | Memory Stall | 如果由于存储器冲突导致核停滞,则会生成此类事件。 |
24 | AI 引擎/AI 引擎机器学习 | Stream Stall | 如果由于输入处无数据或者由于来自核的串流输出上存在反压而导致核停滞,则会生成此类事件。 |
25 | AI 引擎/AI 引擎机器学习 | Cascade Stall | 如果由于输入处无数据或者由于来自核的串流输出上存在反压而导致核停滞,则会生成此类事件。 |
26 | AI 引擎/AI 引擎机器学习 | Lock Stall | 如果由于当前已获取锁定而导致核停滞,则会生成此类事件。 |
28 | AI 引擎/AI 引擎机器学习 | Active | 当核状态从 disabled(禁用)更改为 active(活动)时,会生成此类事件。 |
32 | AI 引擎/AI 引擎机器学习 | Group Core Program Flow | 从事件编号 33 到 45 范围内的任意或所有事件均可触发此事件。 |
37 | AI 引擎/AI 引擎机器学习 | Instr Vector | 当 AI 引擎核执行“vector”(矢量)指令时,会生成此类事件。 |
38 | AI 引擎/AI 引擎机器学习 | Instr Load | 当 AI 引擎核执行“load”(加载)指令时,会生成此类事件。 |
39 | AI 引擎/AI 引擎机器学习 | Instr Store | 当 AI 引擎核执行“store”(存储)指令时,会生成此类事件。 |
40 | AI 引擎/AI 引擎机器学习 | Instr Stream Get | 当 AI 引擎核执行“read from stream”(读取串流)指令时,会生成此类事件。 |
41 | AI 引擎/AI 引擎机器学习 | Instr Stream Put | 当 AI 引擎核执行“write to stream”(写入串流)指令时,会生成此类事件。 |
42 | AI 引擎/AI 引擎机器学习 | Instr Cascade Get | 当 AI 引擎核执行“read from cascade stream”(读取级联串流)指令时,会生成此类事件。 |
43 | AI 引擎/AI 引擎机器学习 | Instr Cascade Put | 当 AI 引擎核执行“write to cascade stream”(写入级联串流)指令时,会生成此类事件。 |
50 | AI 引擎 | FP Overflow | 发生浮点上溢异常时,会生成此类事件。 |
50 | AI 引擎机器学习 | FP Huge | 当舍入后的量级大于最大归一数值(包括 FP Overflow)时,会产生此结果。 |
51 | AI 引擎 | FP Underflow | 发生浮点下溢异常时,会生成此类事件。 |
51 | AI 引擎机器学习 | Int FPP Zero | 整数或浮点单元输出为零(包括 FP Underflow/tiny)。 |
52 | AI 引擎 | FP Invalid | 发生浮点无效异常时,会生成此类事件。 |
52 | AI 引擎机器学习 | FP Invalid | 无效的浮点运算(包括 NaN 输入和 div by zero)。 |
53 | AI 引擎 | FP Div by Zero | 发生浮点除数为零异常时,会生成此类事件。 |
53 | AI 引擎机器学习 | FP Inf | 浮点输出为无穷大。 |
下表列出了由 AI 引擎存储器模块生成的事件及其对应的 ID。
事件编号 | AI 引擎版本 | 事件名称 | 注释 |
---|---|---|---|
20 | AI 引擎 | Group DMA Activity | 从事件编号 21 到 40 范围内的任意或所有事件均可触发此事件。 |
25 | AI 引擎 | DMA S2MM 0 finished packet | 当 S2MM 通道 0 完成 DMA 包的传输时,会生成此类事件。 |
26 | AI 引擎 | DMA S2MM 1 finished packet | 当 S2MM 通道 1 完成 DMA 包的传输时,会生成此类事件。 |
27 | AI 引擎 | DMA MM2S 0 finished packet | 当 MM2S 通道 0 完成 DMA 包的传输时,会生成此类事件。 |
28 | AI 引擎 | DMA MM2S 0 finished packet | 当 MM2S 通道 1 完成 DMA 包的传输时,会生成此类事件。 |
33 | AI 引擎 | DMA S2MM 0 stalled lock acquire | 当 S2MM 通道 0 在锁定获取状态下发生停滞时,会生成此类事件。 |
34 | AI 引擎 | DMA S2MM 1 stalled lock acquire | 当 S2MM 通道 1 在锁定获取状态下发生停滞时,会生成此类事件。 |
35 | AI 引擎 | DMA MM2S 0 stalled lock acquire | 当 MM2S 通道 0 在锁定获取状态下发生停滞时,会生成此类事件。 |
36 | AI 引擎 | DMA MM2S 1 stalled lock acquire | 当 MM2S 通道 1 在锁定获取状态下发生停滞时,会生成此类事件。 |
43 | AI 引擎 | Group Lock | 从事件编号 44 到 75 范围内的任意或所有事件均可触发此事件。 |
76 | AI 引擎 | Group Memory Conflict | 从事件编号 77 到 84 范围内的任意或所有事件均可触发此事件。 |
86 | AI 引擎 | Group Errors | 从事件编号 87 到 100 范围内的任意或所有事件均可触发此事件。 |
下表列出了由 AI 引擎机器学习存储器模块生成的事件及其对应的 ID。
事件编号 | AI 引擎版本 | 事件名称 | 注释 |
---|---|---|---|
18 | AI 引擎机器学习 | Group DMA Activity | 从事件编号 19 到 42 范围内的任意或所有事件均可触发此事件。 |
19 和 20 | AI 引擎机器学习 | DMA S2MM (0,1) start task | 当 S2MM 通道 0,1 开始下一项任务时,会生成此类事件。 |
21 和 22 | AI 引擎机器学习 | DMA MM2S (0,1) start task | 当 MM2S 通道 0,1 开始下一项任务时,会生成此类事件。 |
23.24 | AI 引擎机器学习 | DMA S2MM (0, 1) finished BD | S2MM 通道 (0, 1) 完成一次 BD 调用。当所有数据都已推送到存储器时,BD 完成。 |
25 和 26 | AI 引擎机器学习 | DMA MM2S (0, 1) finished BD | MM2S 通道 (0, 1) 完成一次 BD 调用。准备好将最后一个字推送到串流端口时,BD 完成。 |
27 和 28 | AI 引擎机器学习 | DMA S2MM (0, 1) finished task | S2MM 通道 (0, 1) 完成任务(所有重复 BD 已完成,通道已准备好移至下一项任务)。 |
29 和 30 | AI 引擎机器学习 | DMA MM2S (0, 1) finished task | MM2S 通道 (0, 1) 完成任务(所有重复 BD 已完成,通道已准备好移至下一项任务)。 |
31 和 32 | AI 引擎机器学习 | DMA S2MM (0, 1) stalled lock | S2MM 通道 (0, 1) 在锁定请求(获取)处停滞。 |
33 和 34 | AI 引擎机器学习 | DMA MM2S (0, 1) stalled lock | MM2S 通道 (0, 1) 在锁定请求(获取)处停滞。 |
35 和 36 | AI 引擎机器学习 | DMA S2MM (0, 1) stream starvation | 由于串流输入上不含数据,S2MM 通道 (0, 1) 已停滞。 |
37 和 38 | AI 引擎机器学习 | DMA S2MM (0, 1) stream backpressure | 由于串流反压,MM2S 通道 (0, 1) 已停滞。 |
39 和 40 | AI 引擎机器学习 | DMA S2MM (0, 1) memory backpressure | 由于写入存储器时发生冲突,S2MM 通道 (0, 1) 已停滞。 |
41 和 42 | AI 引擎机器学习 | DMA MM2S (0, 1) memory starvation | 由于读取存储器时发生冲突,MM2S 通道 (0, 1) 已停滞。 |
43 | AI 引擎机器学习 | Group Lock | 从事件编号 44 到 75 范围内的任意或所有事件均可触发此事件。 |
76 | AI 引擎机器学习 | Group Memory Conflict | 从事件编号 77 到 84 范围内的任意或所有事件均可触发此事件。 |
86 | AI 引擎机器学习 | Group Errors | 从事件编号 87 到 102 范围内的任意或所有事件均可触发此事件。 |
下表列出了由 AI 引擎机器学习存储器拼块生成的事件及其对应的 ID。
事件编号 | AI 引擎版本 | 事件名称 | 注释 |
---|---|---|---|
21, 22 (N=0,1) | AI 引擎机器学习 | DMA_S2MM_Sel<N>_start_task | 所选 S2MM 通道开始任务队列中的下一项任务。 |
23, 24 (N=0,1) | AI 引擎机器学习 | DMA_MM2S_Sel<N>_start_task | 所选 MM2S 通道开始任务队列中的下一项任务。 |
25,26 (N=0,1) | AI 引擎机器学习 | DMA_S2MM_Sel<N>_finished_BD | 所选 S2MM 通道完成一次 BD 调用。当所有数据都已推送到存储器时,BD 完成。 |
27, 28 (N=0,1) | AI 引擎机器学习 | DMA_MM2S_Sel<N>_finished_BD | 六个 MM2S 通道中选中的一个通道完成一次 BD 调用。准备好将最后一个字推送到串流端口时,BD 完成。 |
29, 30 (N=0,1) | AI 引擎机器学习 | DMA_S2MM_Sel<N>_finished_task | 所选 S2MM 通道完成任务(所有重复操作已完成,通道已准备好移至下一项任务)。 |
31, 32 (N=0,1) | AI 引擎机器学习 | DMA_MM2S_Sel<N>_finished_task | 所选 MM2S 通道完成任务(所有重复操作已完成,通道已准备好移至下一项任务)。 |
33, 34 (N=0,1) | AI 引擎机器学习 | DMA_S2MM_Sel<N>_stalled_lock | 所选 S2MM 通道在锁定请求(获取)处停滞。 |
35, 36 (N=0,1) | AI 引擎机器学习 | DMA_MM2S_Sel<N>_stalled_lock | 所选 MM2S 通道在锁定请求(获取)处停滞。 |
37, 38 (N=0,1) | AI 引擎机器学习 | DMA_S2MM_Sel<N>_stream_starvation | 由于串流输入上不含数据,所选 S2MM 通道已停滞。 |
39, 40 (N=0,1) | AI 引擎机器学习 | DMA_MM2S_Sel<N>_stream_backpressure | 由于串流反压,所选 MM2S 通道已停滞。 |
41, 42 (N=0,1) | AI 引擎机器学习 | DMA_S2MM_Sel<N>_memory_backpressure | 由于写入存储器时发生冲突或者跨步写入相邻存储器,所选 S2MM 通道已停滞。 |
43, 44 (N=0,1) | AI 引擎机器学习 | DMA_MM2S_Sel<N>_memory_starvation | 由于读取存储器时发生冲突或者跨步读取相邻存储器,所选 MM2S 通道已停滞 |
80+4*N (N=0..7) | AI 引擎机器学习 | Port_Running_<N> | 对于受监控的端口 <N>,处于运行状态下时,该事件断言有效。当主 TVALID 为高电平且从 TREADY 为高电平时,该端口处于运行状态。 |
81+4*N (N=0..7) | AI 引擎机器学习 | Port_Stalled_<N> | 对于受监控的端口 <N>,处于停滞状态下时,该事件断言有效。当主 TVALID 为高电平且从 TREADY 为低电平时,该端口处于停滞状态。 |
82+4*N (N=0..7) | AI 引擎机器学习 | Port_TLAST_<N> | 对于受监控的端口 <N>,当 TLAST 为高电平时,该事件断言有效。 |
下表列出了由 AI 引擎接口生成的事件及其对应的 ID。
事件编号 | AI 引擎版本 | 事件名称 | 注释 |
---|---|---|---|
74 | AI 引擎 | Port_Idle_0 | 当指定 PLIO 端口处于空闲状态时,会生成此类事件。 |
75 | AI 引擎 | Port_Running_0 | 当指定 PLIO 端口处于运行状态时,会生成此类事件。 |
76 | AI 引擎 | Port_Stalled_0 | 当指定 PLIO 端口处于停滞状态时,会生成此类事件。 |
77 | AI 引擎 | Port_TLAST_0 | 当指定 PLIO 端口正在发射 TLAST 信号时,会生成此类事件。 |
下表列出了由 AI 引擎机器学习接口生成的事件及其对应的 ID。
事件编号 | AI 引擎版本 | 事件名称 | 注释 |
---|---|---|---|
77 | AI 引擎机器学习 | Port_Idle_0 | 当指定 PLIO 端口处于空闲状态时,会生成此类事件。 |
78 | AI 引擎机器学习 | Port_Running_0 | 当指定 PLIO 端口处于运行状态时,会生成此类事件。 |
79 | AI 引擎机器学习 | Port_Stalled_0 | 当指定 PLIO 端口处于停滞状态时,会生成此类事件。 |
80 | AI 引擎机器学习 | Port_TLAST_0 | 当指定 PLIO 端口正在发射 TLAST 信号时,会生成此类事件。 |