XSDB 流程 - 2023.2 简体中文

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

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

XSDB 流程如下所示:

  1. 如下步骤中所述,设置 xsdb 以连接到器件硬件。

    运行应用时,调试和剖析 IP 会将追踪数据存储在 DDR 存储器内。要捕获此数据并对其进行求值,必须使用 xsdb 连接到硬件器件。此命令通常用于执行器件编程和调试裸机应用。通过 JTAG 将您的系统连接到硬件平台或器件、在命令 shell 中启动 xsdb 命令,然后运行以下命令序列:

    xsdb% connect
    xsdb% ta
    xsdb% ta 1
    xsdb% source $::env(XILINX_VITIS)/scripts/vitis/util/aie_trace.tcl​
    xsdb% aietrace start -graphs mygraph -work-dir ./Work -link-summary $PROJECT/xsa.link_summary -base-address 0x900000000 -depth 0x800000 -tile-based-aie-tile-metrics "all:functions; {4,1}:{6,2}:functions_all_stalls" 
    
    # Execute the PS host application (.elf) on Linux
    ## After the application completes processing.
    xsdb% aietrace stop

    其中,source $::env(XILINX_VITIS)/scripts/vitis/util/aie_trace.tcl 命令用于运行 Tcl trace 命令以设置 xsdb 环境。

  2. 在硬件上运行设计以追踪硬件事件。
  3. 卸载捕获的追踪数据。
  4. 启动 Vitis IDE,通过此命令导入和分析数据。
    vitis -a aie_trace_profile.run_summary
表 1. XSDB 追踪选项
选项 描述
start 启动事件追踪并初始化 DPA IP,开始捕获追踪数据。
stop 停止事件追踪并指令 DPA IP 从 DDR 存储器卸载追踪事件数据。此命令必须等待至应用完成后才有效。数据写入当前工作目录中的 event_trace<N>.txt 文件,xsdb 同样是在此目录中启动的。此外还会创建 aie_trace_profile.run_summary 文件。在 Vitis IDE 中可打开此文件,如 在 Vitis IDE 中查看运行汇总 中所述。
提示: 如果再次运行计算图时不移除 event_trace<N>.txt,那么旧文件将被新的运行结果覆盖。
-link-summary 指定到设计链接阶段中生成的链接汇总信息的路径。这是必需选项。
-start-type time|iteration|kernel_event0 指定不同的追踪延迟方法,如时间、迭代或用户定义的事件。要使用 -start-type kernel_event0 选项,您必须在内核代码中添加 event0() 内部函数,此内核代码用于生成核事件 0 以供剖析。-start-type time|iteration 选项应分别与 -start-time 选项和 -start-iteration 选项相结合,如下所述。如需了解有关延迟的事件追踪的更多信息,请参阅 使用延迟事件追踪 主题。
-start-time 指定事件追踪的起始延迟,用 AI 引擎时钟周期数或时间(以 sec、ms、us 或 ns 为单位)来表示。如未指定单位,则假定该值表示 AI 引擎时钟周期数。该选项应与 -start-type time 一起使用。
-start-iteration 基于计算图迭代计数启动事件追踪。要使用该事件追踪启动类型,您必须利用 graph-iterator-event 选项来重新编译 AI 引擎设计。该选项应仅限与 -start-type iteration 一起使用。
-work-dir <Work Directory> 指定工作目录。这是必需选项。
-graphs <Graph Name> 该选项允许您指定将受事件追踪影响的一个或多个计算图。如不指定该项,则默认为所有计算图启用追踪。
-base-address <address> 表示 DDR 中的起始地址,将存储来自该地址的追踪数据。
重要: -base-address 中使用的 DDR 存储器地址必须为高位地址,以限制与 Versal 平台上的操作系统或应用发生存储器冲突的几率。对于定制平台,请确保您已知当前使用的 DDR 存储器量并制定相应计划。
-depth <size> 表示将在 DDR 中使用的存储器的长度。这是必需选项。
-tile-based-aie-tile-metrics 用于设置要为指定拼块存储的 AI 引擎事件。
-graph-based-aie-tile-metrics 用于设置要为指定内核/计算图存储的 AI 引擎事件。
-graph-based-memory-tile-metric

注释:该选项仅适用于 AI 引擎机器学习器件。

用于设置要为指定缓冲器/计算图存储的存储器拼块指标
-tile-based-memory-tile-metric

注释:该选项仅适用于 AI 引擎机器学习器件。

用于设置要为指定存储器拼块存储的存储器拼块指标。
对于指定的事件,每个选项实质上都是一个组合字符串,该字符串由所有设置组成,各项设置以分号分隔。例如:
# Sets event trace to "functions_all_stall" for the tile range column 4 to
# 6 and row 1 to 2, and overides to "functions" for tile (4,1)
-tile-based-aie-metrics "{4,1}:{6,2}:functions_all_stalls; {4,1}:functions"

# Sets event trace to "functions" for kernel k1 in graph myGraph
-graph-based-aie-tile-metrics "myGraph:k1:functions"

# Sets event trace to "functions" for all kernels in hierarchical graph
# myGraph->subgraph1->subgraph2
-graph-based-aie-tile-metrics "myGraph.subgraph1.subgraph2:all:functions"

#Examples on Delayed event trace

# Sets event trace to "functions" for kernel k1 in graph myGraph delayed 
# by 1.5ms
-start-type time -start-time 1.5ms -graph-based-aie-tile-metrics "myGraph:k1:functions"

# Sets event trace to "functions" for kernel k1 in graph myGraph delayed
# by 10 graph iterations
-start-type iteration -start-iteration 10 -graph-based-aie-tile-metrics "myGraph:k1:functions"

# Sets event trace to "functions" for kernel k1 in graph myGraph delayed
# by user defined event
-start-type kernel_event0 -graph-based-aie-tile-metrics "myGraph:k1:functions"