+HLS支持OpenCL1.0标准,可以用其将OpenCL C实现的kernel函数综合为VHDL语言描述的IP核。FNN网络即实现于一个OpenCL的核函数中,利用AXI总线与PS端进行数据交换。OpenCL的并发执行采用的是层级模型,当需要执行内核时,首先要指定三个维度上工作组(work-group)的数量,然后每个工作组又在三个维度上划分为不同的工作项(work-item)。一个工作项就是OpenCL并发执行任务的最小粒度。由于Zynq7000实际不支持OpenCL host端的编程,只是利用了HLS将OpenCL C写成的kernel综合出的IP核,所以实际的程序中,无法为工作项或工作组灵活地分配内核,实际上所有的工作项执行的是同一个内核。
|