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

ID 683152
日期 12/04/2023
Public
文档目录

3.3.1.1. 将源代码指令映射到硬件

对于固定架构,例如CPU和GPU,编译器将代码编译成一组在具有固定功能的功能单元上运行的指令。相对于这些固定架构能被广泛运用于应用程序中,它们的某些可用功能单元并能有效运用于每个程序。未使用的功能单元意味着您的程序没有完全占用固定架构硬件。

FPGA不受这些固定功能单元的限制。在FPGA上,您可以综合专用的硬件数据通路,该数据通路可以被任意指令集完全占用,这意味着您可以更有效地利用芯片的硅晶面积。

通过在硬件中实现算法,您可以使用能始终(或几乎始终)解决您问题的定制硬件来填充芯片,而不是使用闲置的功能单元。

Intel® HLS Compiler将源代码语句映射到各个专用硬件操作,如下图示例所示:



一般来说,每条指令都映射到其自己唯一的硬件操作实例。然而,单个语句可以映射到多个硬件操作,或者当编译器发现可以生成令硬件更高效的操作时,就会将多个语句组合成单个硬件操作。

硬件操作的延时取决于操作的复杂性和目标fMAX

编译器获取这些硬件操作,并根据它们的依赖关系将它们连接成一个图形。当操作都相互独立时,编译器会及时通过同时执行这些操作来自动推断并行性。

下图显示了针对硬件数据通路创建的依赖关系图。依赖关系图显示了指令如何映射到硬件操作以及如何根据硬件操作的依赖关系连接硬件操作。此示例指令中的负载彼此独立,因此可以同时运行。