OpenCL用于SoC原型板上的定制系统

时间:2015-06-30 16:16:54

标签: opencl zynq

是否可以在用户在SoC原型开发板上设计的系统上运行OpenCL?更具体地说,我有一个ZedBoard(Xilinx Zynq),它具有双ARM内核和可编程逻辑(PL)区域。如果我设计一个我自己的简单系统,在逻辑区域,ARM内核和AXI互连中实现视频处理加速器,我需要做些什么才能为这个简单的系统提供OpenCL支持? (在这个简单的系统中,ARM内核可能是" Host"视频处理加速器可能是"设备")。

我是学生,我对OpenCL只有一些基本知识。我已经研究过我的问题,但最终只是让自己感到困惑。为SoC提供OpenCL支持需要做些什么?我知道这可能是一个很大的项目,但我需要一个指导从哪里开始以及如何继续。

5 个答案:

答案 0 :(得分:1)

  

我需要做些什么才能为这个简单的系统提供OpenCL支持?

实施一个OpenCL平台,可以使用ARM CPU或FPGA(或两者)。我说这对你来说几乎是不可能的; ARM肯定会为CPU提供一个(如果它很容易(并且他们肯定有财务手段雇用有能力的工程师/计算机科学家),并且在FPGA上实现加速器需要深入的FPGA开发知识,以及编译器理论和系统设计经验。我不想听起来很卑鄙,但你似乎没有这三个。

你问从哪里开始;我建议只写一个第一个加速器,例如加上一个数字向量;只要你有这个,你就会更清楚地了解你的任务。

如果您想查看引用:Ettus USRP E310是基于zynq的SDR设备。 Ettus有一项名为RFNoC的技术,allows users to write their own blocks to push data through。请注意,这需要相当多的工程师并且需要一段时间才能开始。进一步注意,它比实现将OpenCL转换为FPGA实现的东西要容易得多。

答案 1 :(得分:1)

如果您可以访问Xilinx工具:Vivado HLS 15.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

答案 2 :(得分:1)

我也是一名学生,我目前的项目也在朝着类似的方向发展,我已经在zedboard上成功安装了一个名为POCL的opencl版本,它成功检测到了zedboard的arm cpu。要安装pocl,你需要llvm和其他一些东西。但是在zedboard上获得pocl的基本步骤如下: -

  1. 安装pocl:
  2. http://www.hosseinabady.com/install-pocl-opencl

    1. 运行示例: http://www.hosseinabady.com/embedded-system-by-examples/opencl_embedded_system/opencl-vector-addition

    2. 很多依赖:可以轻松解决

    3. 但LLVM确保为pocl 0.9安装3.4版本

      1. 安装llvm的步骤
      2. https://github.com/pacs-course/pacs/wiki/Instructions-to-install-clang-3.1-on-ubuntu-12.04.1-and-12.10

        POCL 0.9对我来说是成功的,因为你进行安装时你会遇到许多其他缺失的依赖项,如hwloc,mesa库,open gl / cl header icd loaders我希望你能解决它们作为一个非常大的列表堆栈溢出。

        为了检测你的fpga是一个开放的cl设备,这不会是一件微不足道的事情,你可以参考我在github上发布的这个链接问题

        https://github.com/pocl/pocl/issues/285

        以及hosseinbady发表的研究论文在pocl网站上的出版物链接中找到

        http://pocl.sourceforge.net/publications.html

        希望这可以帮助你

答案 3 :(得分:0)

尝试使用ARM OpenCL SDK。 Zedboard有一个ARM A9 CPU,它应该有一个可以运行OpenCL的NEON SIMD向量单元http://www.arm.com/products/processors/technologies/neon.php。请参阅http://www.arm.com/products/multimedia/mali-technologies/opencl-for-neon.php

Zedboard未列为符合OpenCL标准的平台https://www.khronos.org/conformance/adopters/conformant-products#opencl。 所以ARM驱动程序有可能不起作用。

祝你好运!

答案 4 :(得分:-1)

如果仍然相关,请尝试使用此论文OpenCL on ZYNQ [PDF]

另请注意,Zynq-7000列在https://www.khronos.org/conformance/adopters/conformant-products#opencl(OpenCL_1_0)上,因此兼容性。