Intel® High Level Synthesis Compiler Pro Edition: 用户指南

ID 683456
日期 12/04/2023
Public
文档目录

A.3.1. Loop Analysis报告

High-Level Design Reports (<result>.prj/reports/report.html)中的Loops Analysis报告包含关于设计中所有循环(合并循环、展开循环和融合循环)及其展开状态的信息。该报告可帮助您检查 Intel® HLS Compiler Pro Edition是否能够最大化组件的吞吐量。

若要访问此报告,请点击Throughput Analysis > Loop Analysis

Loop Analysis报告包含以下窗格:
  • Loop List

    请参考Loop List窗格来了解详细信息。

  • Loop Analysis

    请参考Loop Analysis窗格来了解详细信息。

  • Bottlenecks

    请参考Bottlenecks窗格来了解详细信息。

  • Code view

    当您点击Loop Analysis窗格中的Source Location下的一个链接时,code view窗格将高亮显示代码中应用分析的语句。

  • Details

    当您点击Loop Analysis窗格中的一行时,Details窗格提供额外的详细信息。

Loop List窗格

Loop List窗格的左侧显示以下类型的循环:

  • Fused loops
  • Fused subloops
  • Coalesced loops
  • Fully unrolled loops
  • Partial unrolled loops
  • Regular loops

Loop Analysis窗格

Loops Analysis报告采集所有模块的以下关键性能指标:

  • Source Location:表示源代码中的循环位置。
  • Pipelined:表示一个循环的主体是否被流水线化。流水线化支持同时(在同一时钟周期内)处理多个数据项,同时有效利用数据路径中的硬件,使其保持占用状态。
  • II:显示循环的持续启动间隔(II)。在循环中处理数据是流水线并行性的另一个来源。循环的下一次迭代会在前一次迭代完成之前开始。

    循环迭代之间的依赖关系会影响II。 Intel® HLS Compiler会自动识别迭代之间的依赖关系,并构建硬件来解决依赖关系,同时最大限度地降低II。

  • Scheduled f MAX :显示循环运行时最大时钟频率(fMAX)的早期估计值。该估计值不考虑布局布线的影响。
  • Latency:显示一个循环完成一个或多个指令所需的时钟周期数。通常情况下,您希望有较低的延迟。然而,降低延迟往往会降低fMAX
  • Speculated Iterations:显示循环推测。循环推测是一种优化技术,通过允许在确定循环是否已退出之前启动未来的迭代,从而提高循环流水线的效率。

    关于更多信息,请参考Intel HLS Compiler Reference Manual中的Loop Iteration Speculation (speculated_iterations Pragma)

  • Max Interleaving Iterations:表示可同时执行的一个内循环交错调用的次数。

    关于更多信息,请参考Intel HLS Compiler Reference Manual中的Loop Interleaving Control (max_interleaving Pragma)

Bottlenecks窗格

一个循环中的瓶颈是指一个或多个循环携带的依赖关系导致循环的II大于1或导致组件的fMAX降低以达到循环II为1。

Bottlenecks窗格可识别组件和任务中的以下几类循环瓶颈:

  • fMAX减少,II增加,或两者
  • Compiler应用的瓶颈(本地存储器上的私有副本设置为1)
  • 由于应用于循环的编译指示(pragmas)或属性而导致的瓶颈
  • 并发限制器瓶颈
您还可以查看以下High-Level Design Report工具,以获取更多有关组件和任务瓶颈的信息: