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

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

4.9. 避免Work-Item ID依赖的向后分支

Intel® FPGA SDK for OpenCL™ Offline Compiler将条件声明折叠成单个位,以指示特定函数单元成为有效状态。离线编译器完全消除不涉及循环结构的简单控制流程,从而实现了扁平化的控制结构和更高效的硬件使用。离线编译器可以高效地编译包含向前分支(forward branch)(如条件语句)的内核。

避免内核中包含任何与work-item ID相关的向后分支(即,循环中发生的分支,因为它会降低性能。

例如,以下代码片段说明涉及work-item ID,如get_global_idget_local_id的分支:

for (size_t i = 0; i < get_global_id(0); i++)
{
	  // statements
}