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

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

5. 分析(Profiling)您的内核来识别性能瓶颈

Intel® FPGA dynamic profiler for OpenCL™ 使用性能计数器来收集设计执行期间的kernel性能数据。该数据可使用 Intel® VTune Profiler
提示: 如果您在寻找有关DPC++的Intel FPGA动态profiler的信息,则请参阅FPGA Optimization Guide for Intel® oneAPI Toolkits中的 Intel® FPGA Dynamic Profiler for DPC++部分。

考虑以下OpenCL kernel程序:

__kernel void add (__global int * a,
                   __global int * b, 
                   __global int * c)
{
    int gid = get_global_id(0);
    c[gid] = a[gid]+b[gid];
}

如图所示,Profiler Profiler instruments和connects性能计数器以菊花链的形式遍布于针对kernel程序生成的流水线中。然后主机通过这些计数器读取收集到的数据。例如,在基于PCI Express® (PCIe®)的系统中,主机通过PCIe控制寄存器访问(CRA)或者控制和状态寄存器(CSR)端口读取数据。

图 71.  Intel® FPGA Dynamic Profiler for OpenCL™ : Performance Counters Instrumentation(性能计数器探测)

Work-item执行停顿可能出现在 Intel® FPGA SDK for OpenCL™ 流水线的不同阶段。具有大量存储器访问,或者加载和存储操作的应用程序可能会规律性停顿才能完成存储器传输。Profiler有助于识别导致内核流水线内大多数停顿的加载和存储操作或者通道访问。