可以在用户在SoC原型板上设计的系统上运行OpenCL吗?更具体地说,我有一个ZedBoard (Xilinx Zynq),它有双ARM内核和一个可编程逻辑(PL)区域。如果我设计了一个自己的简单系统,在逻辑区实现了视频处理加速器,ARM内核和AXI互连,我必须做什么才能为这个简单的系统提供OpenCL支持?(在这个简单的系统中,ARM内核可以是“主机”,而视频处理加速器可以是“设备”)。
我是一名学生,我只知道一些关于OpenCL的基础知识。我对我的问题进行了研究,结果只是把自己搞糊涂了。要为SoC提供OpenCL支持,必须完成哪些工作?我知道这可能是一个大项目,但我需要一个从哪里开始以及如何进行的指导方针。
发布于 2015-07-01 00:21:33
要为这个简单的系统提供OpenCL支持,我必须做些什么?
实现一个OpenCL平台,该平台使用ARM或FPGA (或两者)。我想说这对你来说几乎是不可能的;如果这很容易,ARM肯定会为CPU提供一个加速器(而且他们肯定有足够的财力雇佣有能力的工程师/计算机科学家),在FPGA上实现加速器需要深入的FPGA开发知识,以及系统设计方面的编译器理论和经验。我不想刻薄,但你似乎没有这三个。
你问我从哪里开始;我建议你只写第一个加速器,例如将数字向量相加;一旦你有了它,你就会对你的任务有一个更清晰的想法。
如果你想看看参考资料:Ettus USRP E310是一款基于zynq的特别提款权设备。Ettus有一项名为RFNoC的技术,它是allows users to write their own blocks to push data through。请注意,这需要相当多的工程师和相当长的时间才能开始。请进一步注意,这比实现将OpenCL转换为FPGA实现要容易得多。
发布于 2015-07-01 15:11:29
如果您可以访问Xilinx工具: Vivado HLS15.1 System Edition应该会编译OpenCL内核。这也将包含在SDAccel工具套件中。
来源:UG973: Vivado Design Suite User Guide Release Notes, Installation,and Licensing
另一种选择可能是改用Altera。它们为Altera Cyclone V SoC提供了一些很好的例子,可以与Xilinx Zynq设备(还包括ARM Cortex-A9)相媲美:AlteraSDK for OpenCL
发布于 2015-12-19 19:01:55
我也是一名学生,我目前的项目也在进行类似的方向,我已经成功地在zedboard上安装了一个名为POCL的opencl版本,它成功地检测到了zedboard的arm cpu。要安装pocl,你需要llvm和一大堆其他东西。但是在zedboard上获得口袋的基本步骤如下:
http://www.hosseinabady.com/install-pocl-opencl
轻松解析依赖项运行示例:http://www.hosseinabady.com/embedded-system-by-examples/opencl_embedded_system/opencl-vector-addition
但是LLVM要确保你安装了pocl 0.9的3.4版本
的步骤
POCL 0.9对我来说是成功的,当你做安装时,你将面临许多其他缺失的依赖项,如hwloc,mesa库,open gl/cl头文件icd loaders我希望你能解决它们,因为它是一个非常大的列表,放在堆栈溢出中。
为了将你的fpga检测为一个开放的cl设备,这不是一件容易的事情,你可以参考我在github上发布的这个链接问题。
https://github.com/pocl/pocl/issues/285
还有一篇由hosseinbady发表的研究论文,可以在pocl网站上的出版物链接上找到。
http://pocl.sourceforge.net/publications.html
希望这能对你有所帮助
https://stackoverflow.com/questions/31143381
复制相似问题