仅对英特尔可见 — GUID: ewa1398097937428
Ixiasoft
产品终止通知
1. Intel® FPGA SDK for OpenCL™ Pro Edition最佳实践指南介绍
2. 查看您Kernel的report.html文件
3. OpenCL内核设计概念
4. OpenCL内核设计最佳实践
5. 分析(Profiling)您的内核来识别性能瓶颈
6. 提高单个Work-Item内核性能的策略
7. 提高NDRange内核数据处理效率的策略
8. 提高存储器访问效率的策略
9. 优化FPGA面积使用的策略
10. 优化英特尔 Stratix 10 OpenCL设计的策略
11. 提高主机应用程序性能的策略
12. Intel® FPGA SDK for OpenCL™ Pro版最佳实践指南存档
A. Intel® FPGA SDK for OpenCL™ Pro版最佳实践指南修订历史
仅对英特尔可见 — GUID: ewa1398097937428
Ixiasoft
9.4. 算法操作考量
为您的OpenCL™应用程序选择适当的算法操作以避免过多的FPGA面积使用。
- 仅在必要时引入浮点算法运算。
- Intel® FPGA SDK for OpenCL™ Offline Compiler默认浮点常量为double数据类型。向常量添加一个f标志,使其成为一个单精度浮点运算。
例如,算法运算sin(1.0)表示双精度浮点正弦函数。算法运算sin(1.0f)表示单精度浮点正弦函数。
- 如果您不需要复杂函数的全精度结果,请计算更简单的算法运算得到一个近似结果。考虑以下实例场景:
- 不计算函数pow(x,n),其中n是一个较小的值,但是通过执行重复的平方运算来获得近似结果,因为它们需要的硬件资源和面积要少得多。
- 请确保您了解原始和近似面积使用情况,因为在某些情况下,通过近似计算的结果可能导致过度的使用面积。例如,sqrt函数不是资源密集型。除了粗略的近似之外,将sqrt函数替换为主机必须在运行时计算的算法运算可能会导致使用更大的面积。
- 如果您使用一小组输入值,请考虑改用LUT。
- 如果您的内核使用离线编译器在编译时计算的常量(例如,log(PI/2.0))来执行复杂算法运算,请改为在主机上执行算法运算并将结果作为自变量在运行时传递给内核。