数据流查看器 - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文
DATAFLOW 最优化属于动态最优化,只有在完成 RTL 协同仿真后才能完全理解。有鉴于此,完成 C 语言综合后,“Dataflow”(数据流)查看器允许您查看工具推断所得的数据流结构、检查通道 (FIFO/PIPO) 并检验通道深度对于性能的影响。完成协同仿真后,将在“Dataflow”查看器中给性能数据添加反标注解。
重要: 您无需运行 RTL 协同仿真亦可打开“Dataflow”查看器,但这样视图中将不包含重要的性能信息,例如读/写阻塞时间、协同仿真深度和停滞时间。

您必须向设计应用 DATAFLOW 编译指示或指令方可在“Dataflow Viewer”报告中生成这些信息。您可将数据流应用于顶层函数,或者应用于函数或循环的特定区域。“Dataflow”查看器会显示数据流计算图结构表示法,以显示不同进程和底层生产者/使用者连接。“Synthesis Summary”(综合汇总)、“Module Hierarchy”(模块层级)和“Function Call Graph”(函数调用计算图)将在顶层函数旁显示 图标,以表明存在 DATAFLOW 编译指示。

提示: 下图是从 Vitis 内核流程的默认 m_axi 接口生成的,如 目标流程概述 中所述的。使用 Vivado IP 流程可能导致生成不同的数据流图。
图 1. 数据流查看器

“Dataflow”查看器的功能特性包括:

  • 源代码浏览器
  • 从进程/通道到源代码的自动交叉探测。
  • 筛选端口和通道类型。
  • “Process and Channel”(进程和通道)表详列了设计的特性:
    • “Channel Profiling”,即“通道剖析”(FIFO 大小等),在“Config File Editor”(配置文件编辑器)的C/RTL Cosimulation(C/RTL 协同仿真)设置中启用。
      重要: 您必须在 HLS 配置文件中使用 cosim.enable_dataflow_profiling=true 为“Dataflow”查看器捕获数据,并且测试激励文件必须运行顶层函数的至少 2 次迭代。
    • RTL 协同仿真后报告进程读取阻塞/写入阻塞/停滞时间。
    • 显示进程时延和 II。
    • 通道类型和宽度均显示在“Channel”表中。
    • 从“Process”和“Channel”表到“Graph”和“Source”浏览器之间的自动交叉探测。
    • 悬停于通道或进程上即可显示工具提示(含设计信息)。

“Dataflow”查看器可帮助设计进行性能调试。RTL 协同仿真期间,如果设计发生死锁,那么 GUI 将打开“Dataflow”查看器并高亮死锁所设计的通道和进程,以便您判定原因,如 FIFO 深度不足等。

如果设计表现不及预期,那么“Process”和“Channel”表还能帮助您了解原因。进程可能发生停滞并等待读取输入,或者可能无法写入输出而导致停滞。“Channel”表可以提供停滞百分比并识别进程是处于“读取阻塞”还是“写入阻塞”状态。

“Dataflow Viewer”(数据流查看器)会在报告顶部显示一个菜单栏,其中包含以下功能特性:

  • Zoom In(放大)、Zoom Out(缩小)/Zoom Fit(缩放适应)命令
  • Toggle Table(切换表格)命令,用于显示或隐藏计算图下方的表格
  • Group All/Ungroup All(全部组合/全部取消组合)用于将关联的通道组合在一起以简化此图例
  • Legend(图例)命令用于显示图例。