文章目录
- 题目:HLS-Based Optimization and Design Space Exploration for Applications with Variable Loop Bounds
- 时间:2018
- 会议:ICCAD
- 研究机构:UCLA Jason Cong
1 缩写 & 引用
2 abstract & introduction & previous work
如果循环的边界是变量决定的话,HLS无法进行很好的优化,因为循环边界不能在编译时决定,这里为了解决,主要需要两点:
- source to source HLS代码转换
- cycle and resource估计模型
- 具体研究了floating-point variable-loop reduction和prefix sum pattern
our work is more focused on optimizing these innermost loops by exploiting fine-grain parallelism and pipelining, accurately estimating resource sharing among these serial loops, and efficiently allocating non-sharable resource for overall latency minimization
3 HLS code transformation for variable-bound loop
变量循环边界一共有三种情况:完全并行、reduction、prefix sum
3.1 loop pipelining and loop unrolling based on the maximum loop bound
现行情况下,如果循环边界是变量,HLS通常只能pipeline,如果想要unroll,就只能按最大的边界展开,这就会导致PE利用率低
3.2 partial unrolling with pipelining
上述的代码重写之后就是下面的代码