Intel® FPGA SDK for OpenCL™ Pro Edition: 最佳实践实践指南

ID 683521
日期 9/26/2022
Public
文档目录

2.3. 查看设计中吞吐量瓶颈

Bottlenecks viewer(瓶颈查看器)与Loop AnalysisSchedule Viewer报告一起使用时,提供关于您设计中吞吐量瓶颈的信息。该查看器列出了当前所选系统,内核或任务中所有导致瓶颈的循环。您可以在Details窗格中选择这些循环来查看关于这些循环的更多详细信息。有关瓶颈概念的更多信息,请参阅循环瓶颈(Loop Bottleneck)

Bottlenecks viewer可识别如下类型的瓶颈:

  • FMAX减少或者II增加,或者两者兼而有之
  • 应用编译器的瓶颈(局部存储器上的专用副本设置为1)
  • 由于您循环上应用的pragmas或者属性而导致的瓶颈
  • Concurrency limiter(并发限制器)瓶颈

以下是一个数据依赖项的实例:

kernel void lowered_fmax (global int *dst, int N) {
    int res = N;
    #pragma unroll  9
    for (int i = 0; i < N; i++) {
	    res += 1;
	    res ^= i;
    }
    dst[0] = res;
}
Bottlenecks查看器显示如下消息:
9X Partially unrolled lowered_fmax.B1: Compiler failed to schedule this loop with smaller II due to data dependency on variable(s): res (Unknown location)
Most critical loop feedback path during scheduling: Number of nodes in critical path exceeded what the compiler has captured. Only the top 19 failing nodes are listed. 1.00 clock cycle 32-bit Select Operation (fmax_ii.cl: 2, fmax_ii.cl: 6)

在Bottlenecks viewer中,您可以选择循环后以在Details窗口显示更多信息,您可以使用这些信息来调查为什么和是什么导致该瓶颈。有关瓶颈的其他信息,请参阅System ViewerSchedule Viewer。System Viewer提供关于隔离故障路径和瓶颈的类型。Schedule Viewer显示变量的瓶颈路径。