Intel FPGA SDK for OpenCL 简介和开发流程

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://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/opencl-sdk/aocl_programming_guide.pdf

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值