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

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

5.2. 使用Performance Counters (-profile)设施注入(instrument)Kernel Pipeline

使用性能计数器(performance counter)将设施代码自动注入(instrument)OpenCL内核流水线,在编译您的内核时请将-profile=(all|autorun|enqueued)选项包含在aoc命令中。
注: 使用性能计数器instrument(设施代码自动注入)Verilog代码时会增加硬件资源利用率(即,增加FPGA面积使用)并且通常会降低性能。
要使用性能计数器将Verilog代码instrument到 <your_kernel_filename>.aocx文件中,请调用 aoc -profile=(all|autorun|enqueued) <your_kernel_filename>.cl命令,其中:
  • all自变量使用性能计数器将所有内核instrument到 <your_kernel_filename>.cl文件中。如果没有提供自变量,那么这个是默认选项。
  • autorun自变量使用性能计数器仅instrument(设施注入)autorun内核。
  • enqueued自变量使用性能计数器仅instrument(设施注入)non-autorun内核。
注:
  • 在分析多个不同内核时,请不要在不同的.aocx文件中使用同一内核名称。如果内核名称相同,则这些内核的profile数据是错误的。
  • 无论clGetProfileDataDeviceIntelFPGA主机库调用的输入如何, Intel® FPGA dynamic profiler for OpenCL™ 仅分析您在编译期间指定的内核类型。
  • 在所有或enqueued内核上使用性能计数器Instrument(设施注入)OpenCL内核流水线时,会因为OpenCL运行时环境而禁用硬件内核调用队列。这样可能会导致不同的profile时间。
警告:
分析autorun内核会导致计数器产生一些硬件开销。对于大型设计,此开销会导致fMAX和设计频率下降。如果 Intel® FPGA dynamic profiler for OpenCL™ 分析每个内核,还可能导致无法在芯片上实现设计。