仅对英特尔可见 — GUID: mwh1391806065304
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: mwh1391806065304
Ixiasoft
4.1.3. 优化通道或管道的缓冲推断
除了手动添加缓冲通道或管道之外, Intel® FPGA SDK for OpenCL™ Offline Compiler通过尽可能调整缓冲区的大小来提高内核的吞吐量。
在编译期间,离线编译器计算交互通道或管道之间的调度失配。这些不匹配可能会导致读和写操作之间的不平衡。离线编译器自动执行缓冲区推断优化以纠正不平衡。
请参考如下实例:
带有通道的内核 | 带有管道的内核 |
---|---|
|
|
如果内核之间的通道或管道不能形成循环,则离线编译器执行缓冲区推断优化。内核之间的cycle(循环)是源自内核的路径,通过写入通道或者写入管道调用,并返回原始内核。该实例中,假设内核producer中的写入通道或者写入管道调用调度间隔10个周期,但是读通道或读管道调用调度间隔15个周期。由于在对c1的读操作之前,可能会发生5次额外的写操作,导致对c1的读和写操作中存在临时不匹配。为了纠正这种不平衡,离线编译器将5个周期的缓冲区大小分配给c1以避免停顿。该额外的缓冲区容量将producer内核中c1写操作和consumer内核中的c1读操作解耦(decouple)。