首页 > 技术 > 内容

HLS优化设计中pipeline以及unroll指令:细粒度并行优化的完美循环

时间:2025-12-07  作者:Diven  阅读:0

HLS 优化设计的最关键指令有两个:一个是流水线 (pipeline) 指令,一个是数据流(dataflow) 指令。正确地使用好这两个指令能够增强算法地并行性,提升吞吐量,降低延迟但是需要遵循一定的代码风格。展开 (unroll) 指令是只针对 for 循环的展开指令,和流水线指令关系密切,所以我们放在一起首先我们来看一下这三个指令在 Xilinx 官方指南中的定义:

Unroll: Unroll for-loops to create multiple instances of the loop body and its instructions that can then be scheduled independently.

Pipeline:Reduces the initiation interval by allowing the overlapped execution of operations within a loop or function.

Dataflow:Enables task level pipelining, allowing functions and loops to execute concurrently. Used to optimize through output and/or latency.

Unroll 指令在 for 循环的代码区域进行优化,这个指令不包含流水线执行的概念,单纯地将循环体展开使用更多地硬件资源实现,保证并行循环体在调度地过程中是彼此独立的。

Pipeline 指令在循环和函数两个层级都可以使用,通过增加重复的操作指令(如增加资源使用量等等)来减小初始化间隔。

Dataflow 指令是一个任务级别的流水线指令,从更高的任务层次使得循环或函数可以并行执行,目的在于减小延迟增加吞吐量。

Unroll 和 Pipeline 指令相互重合的关系在于,当对函数进行流水线处理时,以下层次结构中的所有循环都会自动展开,而使用展开指令的循环并没有给定对II的约束。在最新版本的 Vitis HLS 工具中,工具会自动分析数据之间的流水线操作关系,以II=1为目标优化,但是还是会受限于设计本身的算法和代码风格。下图非常清晰地阐明了Unroll 和 Pipeline 指令的关系,Pipeline 指令放置的循环层次越高,循环展开的层次也越高,最终会导致使用更大面积的资源去实现,同时并行性也更高。

这里如果循环的边界是变量的话,则无法展开。这将组织函数被流水线化,可以通过添加tripcount 等指令,指定循环在综合时大概的最大最小边界。

在循环流水线优化的过程中,有一个完美循环,半完美循环和非完美循环的代码风格概念,只有当流水线循环完美或半完美时,才可以将嵌套循环彻底并行展开。

完美循环:只有最里面的循环才具有主体内容,在循环语句之间没有指定逻辑,循环界限是恒定的。

半完美循环:只有最里面的循环才具有主体 (内容), 在循环语句之间没有指定逻辑,只有最外面的循环边界可以是可变的。

非完美循环:循环的主体内容分布在循环的各个层次或内层循环的边界是变量。

当我们要争去最大流水线循环的成功执行,就需要将非完美循环手动修改成完美或半完美循环。 以下代码例子给出了完美循环(左边)和非完美循环(右边)在Vitis HLS 中的执行结果。


综合完毕后,我们可以在分析窗口和综合报告中都很清晰的看出,完美循环在执行的时候,工具自动将内层循环LOOP_J和外层循环LOOP_I合并为一整个大循环,并实现了整个大循环的流水线操作,延迟的周期数为: (400-1) *1+8-1 =406个周期数,延迟大约为 408*2.5 = 1,020 ns

非完美循环中,内层和外层循环没有合并,只有内层循环LOOP_J 实现了流水线执行,进出内循环的浪费的时钟周期增加了整个循环的时钟周期,同时还有一些命令行没有办法跨越循环的层级实现调度上的优化,这些因素都导致了设计的延迟的增加。

猜您喜欢


发光二极管(LED)是应用于照明、显示和信号指示的半导体器件。由于其高效能、长寿命和低能耗,LED已逐渐取代传统光源,成为现代照明的重要选择。了解LED的电压和...
2025-03-29 07:31:07
电焊机是应用于金属加工和维修的工具,其主要作用是通过高温电弧将金属材料熔化并连接在一起。在建筑、制造和汽车维修等行业中是不可少的配件。电焊机能够实现各种金属的焊...
2024-01-14 00:00:00
直插瓷片电容是应用于电子电路中的被动元件,其主要功能是储存电能并释放电能。由陶瓷材料制成,具有优良的电气性能和稳定性。直插瓷片电容通常采用插脚设计,方便直接插入...
2008-01-15 00:00:00
TO-252(也称为DPAK)是一种常见的表面贴装封装类型,广泛应用于电子元件的制造和设计中。它因其出色的散热性能和较小的占板面积而受到青睐,特别是在功率器件和...
2025-02-24 10:55:31
为进一步增强航智员工的业务能力和专业素养,确保航智团队能够为广大客户提供更加专业、高效的服务,航智近日组织了一场福禄克 A40B 系列精密分流器使用培训,由福禄...
2024-12-13 18:02:00
排阻(排阻器)作为重要的电子元件,有着着稳定电流、保护电路的关键作用。肇庆作为广东省的重要制造基地,汇聚了众多排阻品牌,尤其以英达排阻在市场上享有较高的声誉。本...
2014-10-09 16:53:30
贴片电阻0Ω,也称作零欧姆电阻,乍一看数值让人疑惑,实际上并非真正意义上的零电阻。更像一根导线,电阻值非常小,通常在几毫欧到几十毫欧之间。那么,为什么不直接用导...
2024-11-29 10:26:15
逻辑门是数字电路的基础单元,应用于计算机、手机和各种电子设备中。通过简单的逻辑运算,将输入信号转换为输出信号。常见的逻辑门包括与门(AND)、或门(OR)、非门...
2013-07-06 00:00:00
可调电阻作为调节电路电压、电流和信号的重要元件,应用于各种电子设备中。富之光(FUJICON)作为国内知名的电子元件制造品牌,其生产的可调电阻凭借优良的性能和稳...
2013-05-13 08:26:18
前言作为基于FPGA的原型设计的倡导者,我们可能会偏向于它的好处,而对其缺陷视而不见,然而,这不是我们的意图。本文系列旨在给一个平衡的观点FPGA-based...
2023-09-25 12:22:00