仅对英特尔可见 — GUID: act1598468764600
Ixiasoft
仅对英特尔可见 — GUID: act1598468764600
Ixiasoft
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 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)或属性而导致的瓶颈
- 并发限制器瓶颈
- System Viewer
System Viewer提供关于隔离故障路径和瓶颈类型的信息。
- Schedule Viewer (Beta)
Schedule Viewer显示变量的瓶颈路径。