/ ai资讯

在友晶LabCloud平台上使用PipeCNN实现ImageNet图像分类

发布时间:2025-04-23 11:46:33

利用深度卷积神经网络(CNN)进行图像分类是通过使用多个卷积层来从输入数据中提取特征,最后通过分类层做决策来识别出目标物体。

典型的大规模CNN网络通常包含数百万个神经单元和数百万个连接,需要超过十亿次的操作才能处理一个输入,因此整个过程比较耗时。

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

本文将演示如何在友晶LabCloudFPGA硬件在线实验云平台(下文简称LabCloud平台)上用PipeCNN进行ImageNet图像分类加速。

01在Lab Cloud上运行PipeCNN步骤搭建环境

Lab Cloud平台已经安装有OpenCL环境 。(可在终端下发如下三条命令进行验证)

资源下载

1. 可以直接在云节点打开终端,输入如下命令进行源码下载:

gitclonehttps://github.com/doonny/PipeCNN.git

若有些院校Lab Cloud只连了局域网,则可以通过链接https://github.com/doonny/PipeCNN下载到自己的电脑上:

然后通过Lab Cloud平台的文件上传功能传至云节点。

2. 通过链接https://pan.baidu.com/s/1jIl6qkm?_at_=1744271894249#list/path=/PipeCNN下载data_alex文件夹(包含image.dat,fc8.dat,weights.dat三个文件),并将该文件夹放到PipeCNN-master/project_intel/data路径下。

3. 测试图像使用的是ImageNet(ILSVRC2012_img_test.zip,300张照片)

下载链接:https://pan.baidu.com/s/1Agx0qZs55aZWM58c-Wng8A提取码: tera

编译kernel

1. 进入PipeCNN-master/project_intel/device/RTL路径下,打开终端,输入 make:

2. 按照下图修改project_intel/Makefile:

USE_OPENCV=1

PLATFORM=arm32

FLOW=hw

切换路径到

/root/intelFPGA/18.1/hld/board/de_cloud

3. 按照下图修改PipeCNN-master/project_intel/device/hw_param.cl文件:

VEC_SIZE 8

LANE_NUM 8

choose net 改为 ALEXNET

4. 按照下图修改PipeCNN-master/project_intel/device/conv_pipe.cl文件:

5. 进入 PipeCNN-master/project_intel 路径下执行 make fpga,最终在PipeCNN-master/project_intel 路径下会产生一个conv.aocx文件:

编译host

编译host时还需要继续修改project_intel/Makefile文件去指定当前opencv路径。

1. 对于当前Lab Cloud 上对应的DE_Cloud板卡环境需要修改如下:

OCV_LIBS后面添加 -lopencv_imgcodecs

修改路径 /usr/local/lib

修改路径 /usr/local/include

2. 将PipeCNN-master/project_intel/host/layer_config.h文件当中的char型定义全部改成signed char型(一共4处修改)。

3.data_alex文件夹若不是放在PipeCNN-master/project_intel/data路径下(已经在该路径下的忽略此步骤),则需要进入main.cpp修改文件路径到当前正确路径。

4. 删掉PipeCNN-master/project_xilinx文件夹和PipeCNN-master/project_intel/conv文件(删掉多余文件以便将剩下文件传输到云平台开发板)。

5.然后点击SoC传输将PipeCNN-master文件夹和ILSVRC2012_img_test.zip文件传到DE_Cloud开发板的LXDE桌面:

6. 将ILSVRC2012_img_test.zip解压到/home/root路径(

若图片解压到其他路径下,则需要进入main.cpp修改文件路径到当前正确路径。):

7. 点击SoC桌面进入DE_Cloud开发板的 LXDE桌面:

8. 按照下图打开Linux的终端:

9. 用命令cd OpenCL 切换到OpenCL文件夹,用命令source ./init_opencl.sh进行OpenCL runtime初始化:

10. 切换路径到PipeCNN-master/project_intel/下执行make host就会在当前路径下生成run.exe文件(在这个过程中会有warning提示,可以忽略):

执行PipeCNN

1. 配置FPGA使用命令aocl program /dev/acl0 conv.aocx。

2. 运行host使用命令make run。

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

02Lab Cloud平台简介

LabCloud FPGA 硬件在线实验云平台

  • FPGA FPGA 关注

    关注

    1640

    文章

    21901

    浏览量

    611413

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com