关于HLS优化问题

改善吞吐率( Throughput )
常用于改善吞吐率的 directive 有 PIPELINE、ARRAY_PARTITION、UNROLL、DATAFLOW
等。
PIPELINE 可以作用于函数和循环,当作用于循环是有个 option,叫做 rewind,该选项
可以进一步改善吞吐率。
对于数组可以使用 ARRAY_PARTITION 来把数组分割成不同的部分,有 3 种分割方式。
对于循环还可以采用 UNROLL 来优化,这时有个选项 factor 用于控制循环被复制成几
份来并行执行。
DATAFLOW 可以作用于函数和循环,是一种 ping-pong 操作的方式。
可以看出提高吞吐率实际上就是通过提高吞吐率来实现的。


改善时延( Latency)
常用于改善时延的 directives 有 LATENCY、LOOP_MERGE、LOOP_FLATTEN 等。
LATENCY 既可以作用于函数也可作用于循环。
LOOP_MERGE 用于将顺序的 Loop 合并在一起。
LOOP_FLATTEN 用于将嵌套的循环展开为一个大的循环。

比如函数pipeline--latency =1;

数组分割partition--单独存储等


改善资源( Area)
常用于改善资源的方法是设置更精确的数据类型和位宽,还有一些 directives,如 INLINE、
ALLOCATE、ARRAY_MAP、ARRAY_RESHAPE、FUNCTION_INSTANTIATE 等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值