HLS for-loop循环优化

文章目录

 

1. 基本性能指标

在这里插入图片描述

2.performance matrics

loop trip count :循环执行了几次
loop interation latency :循环一次用了几个cycle
loop interation latency(Loop II) :两次循环直接间隔了几个cycle
loop latency:整个for循环的latency
function latency
function initial interval(II)
在这里插入图片描述
在这里插入图片描述

pipeline

在这里插入图片描述
流水线为什么是这样,为什么不能完全并行呢?
因为memory端口只有一个?

在这里插入图片描述

unrolling

默认用同一套电路,分时复用
unroll就是 对电路进行复制,复制几份是可以选择的在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.循环合并

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.数据流

A simple example

在这里插入图片描述
有依赖关系,不能合并
dataflow
在这里插入图片描述
在这里插入图片描述
默认是pingpongram
dataflow的限制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
变量一定是在一个for循环中被使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.嵌套的for循环

three types of nested loop

perfect loop :循环边界是固定常数,循环体只会在最内层出现
perfect loop nest
semi-perfect loop nest
外循环为变量,内循环为常数,循环体在内循环中
在这里插入图片描述
imperfect loop有两种类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
希望通过代码优化将imperfect loop转化成semiperfect loop
A simple example of perfect loop

在这里插入图片描述
对外部for循环做pipeline,外部for循环下面的所有for循环都会被打开
如果对inner loop 做pipeline,会对outer loop进行flattening
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
比较
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
优化后
在这里插入图片描述
在这里插入图片描述

6.其他优化方法

the issue regarding loop parallelism

merge

在这里插入图片描述
注意merge的条件。

把for循环封装成函数

在这里插入图片描述
如图所示,依然是分时复用,节省了资源,但并没有减少latency。
有没有办法实现并行呢?

make functions run in parallel

用allocation 实现并行,accumulator limit=2就是函数复制了两份。
在这里插入图片描述
在这里插入图片描述

loop pipeline with rewind option

在这里插入图片描述
example
在这里插入图片描述
在这里插入图片描述
multiple loops with rewind在这里插入图片描述
包含多个for循环,不能使用rewind
automatic loop pipelining
如何自动对for循环添加pipelining
在这里插入图片描述

some approaches to code with variable loop bounds

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值