基于FPGA的Opencl学习笔记1--hello world
以windows为例
1. 首先是工具的安装,FPGA可以到官网下载opencl pro的版本。Visual studio使用2017版本。社区版应该也可以使用,不过前面走了一些弯路,以为必须要专业版。
2. 由于kernel需要在命令行下编译,因此VC 环境要先进行设定:
cdC:\Program Files (x86)\Microsoft VisualStudio\2017\Professional\VC\Auxiliary\Build
运行vcvars64.bat
这一步骤没做的话,可能会报 linker错误。
3. 编译kernel
官网上download hello_world的example
切换到工作目录下:
aoc -march=emulator -v -board=a10gxdevice\hello_world.cl -o bin\hello_world_emulation.aocx
注意:可以敲入aoc来看这些命令参数的含义。官方文档中的start guide有误, -O后面的参数要用空格,而不能用等号。另外目录结构与这个可能不同。
4. host编译
要进行host编译,VS需要进行一些设定,否则会提示找不到cl文件:
VS中:视图->其他窗口->属性管理器,
c++中附加包含目录:D:\Program Files (x86)\Intel\OpenCLSDK\6.3\include
emulator时,链接器->常规附加包含库:C:\intelFPGA_pro\17.1\hld\host\windows64\lib
链接器->输入: 增加OpenCL.lib
点击编译解决方案。
5. PC端模拟运行
在生成host的bin文件夹底下,命令行模式:
setCL_CONTEXT_EMULATOR_DEVICE_INTELFPGA=a10gx
注意:a10gx 是仿真运行用的参考开发板名称。
将hello_world_emulation.aocx文件更名为hello_world.aocx(这是因为host中调用的是hello_world),并放在host的同一目录中。
然后运行host
6. 板上运行的aocx文件生成:
只要在编译kernel时,把-march=emulator去掉