下冰雹 · 4 天前

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

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

本篇目录

1. 内存占用
1.1 FPGA 程序中内存的实现方式
1.2 Zynq 的 BRAM 内存大小
1.3  一个卷积操作占用的内存
2. PipeCNN 可实现性
PipeCNN 论文解析:用 OpenCL 实现 FPGA 上的大型卷积网络加速
2.1  已实现的 PipeCNN 资源消耗
3. 实现大型神经网络的方法
4. Virtex-7 高端 FPGA 概览、7 系列 FPGA 相关文档

正文

0.Zynq7000 系列概览

image.png

1.内存占用

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

参阅 xilinx 文档 UG998

Image

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.2 Zynq 的 BRAM 内存大小

Image

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

Image

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

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

  //convolution operation

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

Image

Image

Image

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

Image

Image

2.PipeCNN 可实现性

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

PipeCNN 解析文档:

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

github 地址:https://github.com/doonny/Pip...

2.1 已实现的 PipeCNN 资源消耗

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

对于 Xilinx FPGAs, the SDAccel development environment v2017.2 can be used.

Image

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

Image

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

  • VEC_SIZE
  • LANE_NUM
  • CONV_GP_SIZE_X

消耗资源为:

Image

Image

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

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

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

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

方案二:用 FPGA 调用 DDR

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

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

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

优点:可实现大型网络

缺点:速度较慢

4.Virtex-7 高端 FPGA 概览

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

Image

Image

7 系列 FPGA 相关文档:

Image

END

作者:祥瑞Coding
来源:FPGA技术江湖

相关文章推荐

更多 FPGA 干货请关注 FPGA 的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
10613
内容数
577
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息