使用Vitis HLS开发图像处理IP核,如何通过‘流水线(pipeline)’、‘数据流(dataflow)’和‘数组重构(array reshape)’等指令来显著提升吞吐率?
在用Vitis HLS将C++图像处理算法(比如双边滤波)转换成IP核。代码直接综合出来延迟和间隔(II)很大。我知道要用pipeline、dataflow这些编译指令来优化。但在实际应用中,如何分析代码的数据依赖关系,合理地应用这些指令?特别是对于嵌套循环和大型数组(图像行缓冲),array reshape和partition具体怎么用?有没有优化前后的代码对比案例?