Intel®高层次综合编译器专业版: 最佳实践指南

ID 683152
日期 6/22/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

3.1. 为组件选择适合的接口

不同的组件接口,即便不改变组件的算法,都会影响组件的结果质量(QoR)。在选择组件与设计其余部分之间的接口之前,请先考虑不同接口的作用。

组件的最佳接口可能不会立即出现,因此需要尝试对组件使用不同接口以实现最佳QoR值。利用 Intel® HLS Compiler Pro Edition提供的快速组件编译时间和生成的High Level Design报告来确定能为您的组件提供最佳QoR的接口。

本小节使用向量加法实例说明在保持算法相同的情况下,更改组件接口的影响。本实例由两个输入向量,向量a和向量b,并将结果存储到向量c。该向量的长度为N (可能非常大)。

核心算法如下:
 #pragma unroll 8 for (int i = 0; i < N; ++i) { c[i] = a[i] + b[i]; }

如果无循环依存关系,则 Intel® HLS Compiler Pro Edition通过对循环的流水线处理来提取该算法的并行度。此外,通过展开循环(8倍),可提取更多的平行度。

理想状态下,生成的组件中延迟为N/8个周期。在如下小节的实例中,N使用值1024,因而理想延迟为128个周期(1024/8)。

如下小节呈现本实例使用不同接口的各个类型。查看在这些小节了解不同接口对组件QoR的影响。

通过查看 <quartus_installdir>/hls/examples/tutorials/interfaces/overview中的教程,以您自己的方式运行该实例的其他类型。