如何利用PipeCNN进行ImageNet图像分类加速?-DE10-Standard持续更新-友晶-板卡教程-Intel FPGA教学资源分享/Altera FPGA学习教程
  • 免费注册   
  • 会员登录   
  • 设为首页
  • 加入收藏
  • 咨询热线:1388-225-1054

    如何利用PipeCNN进行ImageNet图像分类加速?

    详细说明

    深度卷积神经网络(CNN)目前在各个领域中都受到了极大的关注。利用CNN进行图像分类是通过使用多个卷积层来从输入数据中提取特征,最后通过分类层做决策来识别出目标物体。典型的大规模CNN网络通常包含数百万个神经单元和数百万个连接,需要超过十亿次的操作才能处理一个输入,因此整个过程比较耗时。

          PipeCNN是一个开源的基于OpenCL的深度卷积神经网络加速器,采用CPU+FPGA异构计算的方式来加速CNN运算中计算密集型运算。卷积、全连接等复杂运算利用FPGA的丰富片上并行计算资源进行加速,保证了实时性。CPU上运行数据流读取和显示工作,保证了程序的灵活和可扩展性。


    如何用PipeCNN来进行实时图像分类?

    今天,我们以DE10-Standard开发板为例,教大家如何利用PipeCNN来进行CNN图像分类加速。

    1 下载源码

    PipeCNN已经在Github上开源,你需要从github将我们的工程下载下来,下载链接:https://github.com/doonny/PipeCNN


    2 安装开发环境

    • 安装Intel的OpenCL SDK v16.1, SoC EDS等工具

    • 配置相应的环境变量

    • source  embedded文件夹下的embedded_command.sh


    3 修改Makefile

    • 我们的工程中Makefile第九行中有opencv的选项,若你的输入为图片,请配置USE_OPENCV=1

    • 编译Makefile,我们使用Intel的OpenCL SDK v16.1工具集来编译OpenCL代码,经过一段时间后,你会得到conv.aocx(FPGA比特文件)和run.exe(host软件程序)两个文件


    4 运行PipeCNN

    • 从友晶科技官网下载并制作DE10-standard OpenCL的SD卡镜像

    • 将PipeCNN工程和编译生成的conv.aocx和run.exe文件拷贝到DE10-standard的SD卡上

    • OpenCL runtime初始化:source ./init_opencl.sh

    • 烧写FPGA:aocl program /dev/acl0 conv.aocx

    • 运行:./run.exe conv.aocx

      运行结束,便可以得到分类结果。