时间:2024-08-10 来源:网络搜集 关于我们 0
欢迎FPGA工程师加入官方微信技术群
点击蓝字关注我们FPGA之家-中国最好最大的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相关文档
正文
0Zynq7000系列概览1内存占用
1.1 FPGA程序中内存的实现方式
参阅xilinx文档UG998
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内存大小
zynq 7z020的BRAM为4.9Mb,7z035的BRAM为17.6Mb(2.2MB)
1.3 一个卷积操作占用的内存
例如,我们实现的卷积函数,输入27×600,卷积核16×27,输出16×600,数据类型为float。
//convolution operation for (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占用硬件资源为:
在vivado中搭建好系统,占用的资源为:
2PipeCNN可实现性
PipeCNN是一个基于OpenCL的FPGA实现大型卷积网络的加速器。
PipeCNN解析文档:
PipeCNN论文解析:用OpenCL实现FPGA上的大型卷积网络加速
github地址:https://github.com/doonny/PipeCNN#how-to-use
2.1 已实现的PipeCNN资源消耗
对于Altera FPGA,运用 Intels OpenCL SDK v16.1 toolset.
对于Xilinx FPGAs, the SDAccel development environment v2017.2 can be used.
Xilinxs KCU1500 (XCKU115 FPGA)(已经有xilin的板子实现过pipeCNN,但是型号比zynq高很多)
硬件资源可以被三个宏调控,device/hw_param.cl. Change the following macros
VEC_SIZE
LANE_NUM
CONV_GP_SIZE_X
消耗资源为:
3实现大型神经网络的方法
方案一:压缩模型到<2.2MB,可实现在BRAM中
优点:1.速度快 2.实现方便
缺点:1.模型压缩难度 2.难以实现大型网络
方案二:用FPGA调用DDR
优点:1.速度中等 2.可实现大型网络
缺点:调用DDR有难度,开发周期长
方案三:用片上单片机调用DDR(插入SD卡)分包传入IPcore运算
优点:可实现大型网络
缺点:速度较慢
4Virtex-7高端FPGA概览Virtex-7为高端FPGA,比Zynq高了一个档次。
- THE END -
欢迎FPGA、嵌入式、信号处理等工程师关注公众号
全国第一大FPGA微信技术群
欢迎大家加入全国FPGA微信技术群,这个群体拥有数万工程师、一群热爱技术的工程师,这里的FPGA工程师相互帮助,相互分享,技术氛围浓厚!赶紧叫上小伙伴一起加入吧!!
用手指按住就可以加入FPGA全国技术群哦
FPGA之家元器件芯城
优势元器件服务,有需求请扫码联系群主:金娟 邮箱:293580331@qq.com 欢迎推荐给采购
ACTEL、AD部分优势订货(经营全系列):
XILINX、ALTERA优势现货或订货(经营全系列):
(以上器件为部分型号,更多型号请咨询群主金娟)
服务理念:FPGA之家元器件自营芯城,旨在方便工程师快速方便购买器件服务,经过数年竭诚服务,我们的客服遍布国内大型上市公司、军工科研单位、中小企业、最大的优势是强调服务至上的理念、并且做到快速交货、价格优惠!
直营品牌:Xilinx ALTERA ADI TI NXP ST E2V、镁光 等百余元器件品牌,尤其擅长欧美对华禁运器件,欢迎工程师朋友把我们推荐给采购或者亲自咨询我们!
我们将一如既往提供业内最佳服务!
FPGA技术群官方鸣谢品牌:Xilinx、 intel(Altera)、microsemi(,Actel)、LattIC e,Vantis,Quicklogic,Lucent等