本文主要是介绍Intel FPGA SDK for OpenCL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://blog.csdn.net/zhaojing6828/article/details/79057567
1. 概况
Intel FPGA SDK for OpenCL 是IntelFPGA 基于OpenCL的异构并行编程环境。
2. 总体流程
总共分两步:
1) 基于Intel SDK提供的OpenCL Offline Complier,编译OpenCL kernel
2) 基于C/C++编译器,编译host 生成目标文件,然后链接编译好的kernel,生成可执行文件
编程模型主要有三部分:
1) Host应用和host编译器
2) OpenCL 编写的kernel 和 kernel编译器。Kernel编译器针对不同厂商提供的FPGA加速板卡生成对应的FPGA镜像。
3) Custom Platform,FPGA加速板卡和对应的OpenCL库,FPGA综合工具。
SDK user-created item:加速应用开发程序员
Board developer :FPGA加速板卡开发公司
Intel-supplied tool or design:IntelSDK
Third party supplied or open source tool:第三方或开源c/c++编译器,如gcc
Tool-generated item:host可执行文件和kernel的FPGA镜像
3. Kernel编译流程
整体编译,直接生成FPGA镜像.aocx和report。
命令:aoc xxx.cl
*.aoco 是一个中间文件,包含后续编译步骤所需信息
*.aocx 是一个可执行文件,FPGA镜像
report.html 提供FPGA资源分析和代码性能分析。
整体编译一般需要耗费数个小时,如果在开发过程中需要迭代优化kernel的性能,不推荐这种开发模式。下面讲述分步骤编译
总共分5个步骤:
1) Emulation
验证kernel功能的正确性,Linux平台提供debug手段。
命令:aoc-march=emulator <your_kernel_filename>.cl
2) Intermediate compilation
检查语法错误,生成*.aoco文件
命令:aoc -c <your_kernel_filename>.cl[-report]
3) Review HTML Report
根据report判断kernel性能是否达到预期,同时可根据report结果确定提升kernel性能方向,定位bottleneck。
<your_kernel_filename>/reports/report.html
命令:firefox report.html
4) Profiling
在编译器转换生成的verilog code中嵌入性能统计计数器。在执行过程中可通过Intel FPGA Dynamic Profiler动态观察kernel性能。可以类比Signal Tap。
命令:aoc -profile<your_kernel_filename>.cl [-fast-complie]
5) Full deployment
经过数次迭代开发,当kernel性能满足需求时,可最终编译生成.aocx文件。完成开发。
命令:aoc <your_kernel_filename>.cl
https://blog.csdn.net/zhaojing6828/article/details/79057567
这篇关于Intel FPGA SDK for OpenCL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!