0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Xilinx Zynq系列FPGA实现神经网络中相关资源评估

电子工程师 来源:祥瑞Coding 作者:祥瑞Coding 2021-03-30 10:29 次阅读

Xilinx zynq系列FPGA实现神经网络评估

本篇目录

1. 内存占用

1.1FPGA程序中内存的实现方式

1.2Zynq的BRAM内存大小

1.3一个卷积操作占用的内存

2. PipeCNN可实现性

PipeCNN论文解析:用OpenCL实现FPGA上的大型卷积网络加速

2.1已实现的PipeCNN资源消耗

3. 实现大型神经网络的方法

4. Virtex-7高端FPGA概览、7系列FPGA相关文档

正文

0Zynq7000系列概览

0003cb24-8c66-11eb-8b86-12bb97331649.png

1内存占用

1.1 FPGA程序中内存的实现方式

参阅xilinx文档UG998

0072ceac-8c66-11eb-8b86-12bb97331649.png

FPGA并没有像软件那样用已有的cache,FPGA的HLS编译器会在FPGA中创建一个快速的memory architecture以最好的适应算法中的数据样式(data layout)。因此FPGA可以有相互独立的不同大小的内部存储空间,例如寄存器,移位寄存器,FIFOs和BRAMs

寄存器:最快的内存结构,集成在在运算单元之中,获取不需要额外的时延。

移位寄存器:可以被当作一个数据序列,每一个数据可以在不同的运算之中被重复使用。将其中所有数据移动到相邻的存储设备中只需要一个时钟周期。

FIFO:只有一个输入和输出的数据序列,通常被用于循环或循环函数,细节会被HLS编译器处理。

BRAM:集成在FPGA fabric模块中的RAM,每个xilinx的FPGA中集成有多个这样的BRAM。可以被当作有以下特性的cache:1.不支持像处理器cache中那样的缓存一致性(cache coherency,collision),不支持处理器中的一些逻辑类型。2.只在设备有电时保持内存。3.不同的BRAM块可以同时传输数据。

1.2Zynq的BRAM内存大小

00c36cea-8c66-11eb-8b86-12bb97331649.png

zynq 7z020的BRAM为4.9Mb,7z035的BRAM为17.6Mb(2.2MB)

01190222-8c66-11eb-8b86-12bb97331649.png

1.3一个卷积操作占用的内存

例如,我们实现的卷积函数,输入27×600,卷积核16×27,输出16×600,数据类型为float。

//convolution operationfor (i = 0; i < 16; i++) { for (j = 0; j < 600; j++) { result = 0; for (k = 0; k < 27; k++) { temp = weights[i*27+k] * buf_in[k*600+j]; result += temp; } buf_out[i*600+j] = result; } }


在HLS中生成的IPcore占用硬件资源为:

0160a9ce-8c66-11eb-8b86-12bb97331649.png

01b2c808-8c66-11eb-8b86-12bb97331649.png

01ed1d28-8c66-11eb-8b86-12bb97331649.png

在vivado中搭建好系统,占用的资源为:

02359c38-8c66-11eb-8b86-12bb97331649.png

02960b4a-8c66-11eb-8b86-12bb97331649.png

2PipeCNN可实现性

PipeCNN是一个基于OpenCL的FPGA实现大型卷积网络的加速器。

PipeCNN解析文档:

PipeCNN论文解析:用OpenCL实现FPGA上的大型卷积网络加速

github地址:https://github.com/doonny/PipeCNN#how-to-use

2.1 已实现的PipeCNN资源消耗

对于Altera FPGA,运用Intel's OpenCL SDKv16.1 toolset.

对于Xilinx FPGAs, theSDAcceldevelopment environment v2017.2 can be used.

02e38640-8c66-11eb-8b86-12bb97331649.png

Xilinx'sKCU1500(XCKU115 FPGA)(已经有xilin的板子实现过pipeCNN,但是型号比zynq高很多)

02f51388-8c66-11eb-8b86-12bb97331649.png

硬件资源可以被三个宏调控,device/hw_param.cl. Change the following macros

VEC_SIZE

LANE_NUM

CONV_GP_SIZE_X

消耗资源为:

034797a2-8c66-11eb-8b86-12bb97331649.png

03873a74-8c66-11eb-8b86-12bb97331649.png

3实现大型神经网络的方法

方案一:压缩模型到<2.2MB,可实现在BRAM中

优点:1.速度快 2.实现方便

缺点:1.模型压缩难度 2.难以实现大型网络

方案二:用FPGA调用DDR

优点:1.速度中等 2.可实现大型网络

缺点:调用DDR有难度,开发周期长

方案三:用片上单片机调用DDR(插入SD卡)分包传入IPcore运算

优点:可实现大型网络

缺点:速度较慢

4Virtex-7高端FPGA概览

Virtex-7为高端FPGA,比Zynq高了一个档次。

0443f25e-8c66-11eb-8b86-12bb97331649.png

048220e2-8c66-11eb-8b86-12bb97331649.png

7系列FPGA相关文档:

04cc1b3e-8c66-11eb-8b86-12bb97331649.png

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1599

    文章

    21271

    浏览量

    592789
  • 神经网络
    +关注

    关注

    42

    文章

    4561

    浏览量

    98622
  • Xilinx
    +关注

    关注

    70

    文章

    2117

    浏览量

    119323

原文标题:Xilinx Zynq系列FPGA实现神经网络中相关资源评估

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    今天给大侠带来简谈Xilinx Zynq-7000嵌入式系统设计与实现,话不多说,上货。 XilinxZYNQ
    发表于 04-10 16:00

    如何用FPGA加速神经网络

    到底纯FPGA适不适合这种大型神经网络的设计?这个问题其实我们不适合回答,但是FPGA厂商是的实际操作是很有权威性的,现在不论是Intel还是Xilinx都没有在自己传统的
    的头像 发表于 01-24 09:51 494次阅读
    如何用<b class='flag-5'>FPGA</b>加速<b class='flag-5'>神经网络</b>

    基于FPGA的RBF神经网络的硬件实现

    电子发烧友网站提供《基于FPGA的RBF神经网络的硬件实现.pdf》资料免费下载
    发表于 10-23 10:21 0次下载
    基于<b class='flag-5'>FPGA</b>的RBF<b class='flag-5'>神经网络</b>的硬件<b class='flag-5'>实现</b>

    FPGA加速神经网络的矩阵乘法

    电子发烧友网站提供《FPGA加速神经网络的矩阵乘法.pdf》资料免费下载
    发表于 09-15 14:50 0次下载
    <b class='flag-5'>FPGA</b>加速<b class='flag-5'>神经网络</b>的矩阵乘法

    Xilinx器件上具有INT4优化的卷积神经网络

    电子发烧友网站提供《在Xilinx器件上具有INT4优化的卷积神经网络.pdf》资料免费下载
    发表于 09-13 09:30 0次下载
    在<b class='flag-5'>Xilinx</b>器件上具有INT4优化的卷积<b class='flag-5'>神经网络</b>

    《 AI加速器架构设计与实现》+第一章卷积神经网络观后感

    对应的神经网络有哪些,也看到了自己在k210用到的FAST RCNN和RestNet18分类网络,需要保证硬件实现和算法一致,这样才事半功倍,否则,可能会差别比较大。对于
    发表于 09-11 20:34

    人工神经网络和bp神经网络的区别

    人工神经网络和bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑神经元网络结构和功能的计算模型,也被称为
    的头像 发表于 08-22 16:45 3400次阅读

    卷积神经网络和深度神经网络的优缺点 卷积神经网络和深度神经网络的区别

    深度神经网络是一种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经元之间的权重,从而实现对大规模数据进行预
    发表于 08-21 17:07 2203次阅读

    卷积神经网络层级结构 卷积神经网络的卷积层讲解

    卷积神经网络层级结构 卷积神经网络的卷积层讲解 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的神经网络模型,在许多视觉
    的头像 发表于 08-21 16:49 4219次阅读

    卷积神经网络的基本原理 卷积神经网络发展 卷积神经网络三大特点

    卷积神经网络的基本原理 卷积神经网络发展历程 卷积神经网络三大特点  卷积神经网络的基本原理 卷积神经网络(Convolutional Ne
    的头像 发表于 08-21 16:49 1412次阅读

    卷积神经网络三大特点

    是一种基于图像处理的神经网络,它模仿人类视觉结构中的神经元组成,对图像进行处理和学习。在图像处理中,通常将图像看作是二维矩阵,即每个像素点都有其对应的坐标和像素值。卷积神经网络采用卷积操作实现
    的头像 发表于 08-21 16:49 3442次阅读

    卷积神经网络模型原理 卷积神经网络模型结构

    卷积神经网络模型原理 卷积神经网络模型结构  卷积神经网络是一种深度学习神经网络,是在图像、语音、文本和视频等方面的任务中最有效的神经网络
    的头像 发表于 08-21 16:41 647次阅读

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的人工
    的头像 发表于 08-17 16:30 884次阅读

    手写数字识别神经网络实现(1)

    对MNIST数据集使用2层神经网络(1层隐藏层)实现
    的头像 发表于 06-23 16:57 297次阅读
    手写数字识别<b class='flag-5'>神经网络</b>的<b class='flag-5'>实现</b>(1)

    三个最流行神经网络

    在本文中,我们将了解深度神经网络的基础知识和三个最流行神经网络:多层神经网络(MLP),卷积神经网络(CNN)和递归神经网络(RNN)。
    发表于 05-15 14:19 1171次阅读
    三个最流行<b class='flag-5'>神经网络</b>