仅对英特尔可见 — GUID: rrf1496420468099
Ixiasoft
1. Intel® HLS Compiler Pro版参考手册
2. 编译器
3. C语言和库支持
4. 组件接口
5. 组件存储器(存储器属性)
6. 组件中的循环
7. 组件并发
8. 任意精度数学支持
9. 组件目标频率(Target Frequency)
10. 任务系统
11. 库
12. 高级硬件综合控制
13. Intel® High Level Synthesis Compiler Pro版参考总结
A. 高级数学源代码库
B. 支持的数学函数
C. Cyclone® V限制
D. Intel® HLS Compiler Pro版参考手册存档
E. Intel® HLS Compiler Pro版参考手册修订历史
13.1. Intel® HLS Compiler Pro版i++命令行参数
13.2. Intel® HLS Compiler Pro版头文件
13.3. Intel® HLS Compiler Pro版编译器定义的预处理器宏
13.4. Intel® HLS Compiler Pro版关键字
13.5. Intel® HLS Compiler Pro版模拟API(仅测试台)
13.6. Intel® HLS Compiler Pro版组件存储器属性
13.7. Intel® HLS Compiler Pro版循环预处理指令
13.8. Intel® HLS Compiler Pro版范围预处理指令
13.9. Intel® HLS Compiler Pro版组件属性
13.10. Intel® HLS Compiler Pro版组件默认值接口
13.11. Intel® HLS Compiler Pro版组件调用接口控制属性
13.12. Intel® HLS Compiler Pro版组件宏
13.13. Intel® HLS Compiler Pro版技术性任务系统API
13.14. Intel® HLS Compiler Pro版管道API
13.15. Intel® HLS Compiler Pro版流输入接口
13.16. Intel® HLS Compiler Pro版流输出接口
13.17. Intel® HLS Compiler Pro版存储器映射接口
13.18. Intel® HLS Compiler Pro版加载-存储单元控制
13.19. Intel® HLS Compiler Pro版任意精度数据类型
仅对英特尔可见 — GUID: rrf1496420468099
Ixiasoft
6.5. 循环并发(max_concurrency预处理指令)
您可以使用max_concurrency预处理指令来增加或限制组件中循环的并发性。循环的并发性是指该循环一次可以进行多少次迭代。默认情况下, Intel® HLS Compiler会尝试最大化循环的并发性,以便您的组件以峰值吞吐量运行。
为了在循环中实现最大并发性,有时必须创建组件内存的专用副本,以打破对底层硬件的依赖,从而防止循环完全流水线
可以在您组件的High-Level Design报告(report.html)中查看针对组件存储器创建的专用副本数量:
- 在Loop Analysis报告的Details窗格中,有一条消息指出同时执行的最大数量已限制为 N。
- Function Memory Viewer中组件存储器的Bank视图中,以图形方式显示专用副本的数量。
如果需要通过牺牲一些性能来节省组件内存,请对循环应用#pragma max_concurrency <N> 。应用此指令时,专用副本的数量会发生变化,并控制进入循环的迭代次数,如以下实例所示:
#pragma max_concurrency 1 for (int i = 0; i < N; i++) { int arr[M]; // Doing work on arr }
您可以使用hls_private_copies存储器属性控制在循环内访问组件存储器时创建的专用副本数量。有关详细信息,请参阅 hls_private_copies存储器属性。关于增加存储器专用副本数量的实例,请参考以下教程:
<quartus_installdir>/hls/examples/tutorials/component_memories/non_power_of_two_memory
您还可以使用hls_max_concurrency组件属性控制组件的并发性。关于hls_max_concurrency(N)组件属性的更多信息,请参阅Concurrency Control(hls_max_concurrency 属性)。关于通过增加并发性来提高吞吐量的实例,请参阅以下教程:
<quartus_installdir>/hls/examples/tutorials/best_practices/optimize_ii_using_hls_register