基于 AI 引擎机器学习的器件的存储器拼块事件追踪 - 2023.2 简体中文

AI 引擎工具和流程用户指南 (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 简体中文

正如 AI 引擎拼块、AI 引擎存储器和 AI 引擎接口一样,您同样可使用 Xilinx Runtime (XRT) 和 Xilinx Software Debugger (XSDB) 从存储器拼块捕获追踪数据。这些选项均为 AI 引擎机器学习专用的选项。

通道指标集聚焦缓冲器描述符的开始和结束,而其他指标集则给追踪添加停滞。

表 1. 存储器拼块事件追踪
事件类型/指标集 input_channels input_channels_stalls output_channels output_channels_stalls
S2MM 通道缓冲器描述符传输 是 2x - -
S2MM 通道锁定停滞 - - -
S2MM 通道串流数据匮乏 - - -
S2MM 通道存储器反压 - - -
MM2S 通道缓冲器描述符传输 - - 是 2x
MM2S 通道锁定停滞 - - -
MM2S 通道串流反压 - - -
MM2S 通道存储器数据匮乏 - - -
表 2. XSDB 追踪选项
选项 描述
-tile-based-memory-tile-metrics 用于设置要为指定拼块存储的 AI 引擎机器学习存储器拼块事件。
-graph-based-memory-tile-metrics 用于设置要为指定缓冲器/计算图存储的 AI 引擎机器学习存储器拼块事件。

以下提供了使用 XSDB 流程对存储器拼块进行事件追踪的一些示例:

# Sets event trace to "input_channels" for the buffer named buffer2 of graph1 (channels 1 and 2) and "input_channels_stalls" for buffer4 in graph3 for channles 3 and 4.
-graph-based-memory-tile-metrics "graph1:buffer2:input_channels:1:2; graph3:buffer4:input_channels_stalls:3:4" 

# Sets event trace to "output_channels" for columns 1 to 4 only for channel 1 and 2, and "output_channels_stalls" for column 5 and channels 3 and 4.
-tile-based-memory-tile-metrics "1:4:output_channels:1:2; 5:output_channels_stalls:3:4"
表 3. 存储器拼块的 XRT 流程追踪选项
选项 描述
tile_based_memory_tile_metrics = <column|all>:<off|channels|input_channels_stalls|output_channels_stalls>[:<channel 1>][:<channel 2>] 配置 AI 引擎存储器拼块事件追踪指标,该指标将应用于单个列或所有列。
tile_based_memory_tile_metrics =<mincolumn> <maxcolumn>:<off|input_channels|input_channels_stalls|output_channels|output_channels_stalls>[:<channel 1>][:<channel 2>] 配置 AI 引擎存储器拼块事件追踪指标,该指标将应用于某一范围内的所有列。
graph_based_memory_tile_metrics = <graph name|all>:<buffer name|all>:<off|input_channels|input_channels_stalls|output_channels|output_channels_stalls>[:<channel 1>][:<channel 2>] 配置 AI 引擎存储器拼块事件追踪指标,该指标将应用于特定计算图或所有计算图内的某一个或所有缓冲器。

以下是部分 xrt.ini 文件示例:

# Sets event trace to "input_channels" for the buffer named buffer2 of graph1 (channels 1 and 2) and "input_channels_stalls" for buffer4 in graph3 for channles 3 and 4.
graph-based-memory-tile-metrics=graph1:buffer2:input_channels:1:2; graph3:buffer4:input_channels_stalls:3:4 

# Sets event trace to "output_channels" for columns 1 to 4 only for channel 1 and 2, and "output_channels_stalls" for column 5 and channels 3 and 4.
tile-based-memory-tile-metrics=1:4:output_channels:1:2; 5:output_channels_stalls:3:4