首页 > 技术 > 内容

FPGA程序中内存的实现方式

时间:2025-12-07  作者:Diven  阅读:0

 

 

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系列概览

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中搭建好系统,占用的资源为:

2 PipeCNN可实现性

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

PipeCNN解析文档:

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

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

2.1 已实现的PipeCNN资源消耗

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

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

Xilinx's 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运算

优点:可实现大型网络

缺点:速度较慢

4 Virtex-7高端FPGA概览

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

7系列FPGA相关文档:

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

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

      审核编辑:彭静

 

猜您喜欢


光电二极管是将光信号转换为电信号的半导体器件,应用于光通信、光探测、光电转换等领域。随着光电技术的不断发展,光电二极管的性能和应用范围也在不断提升。本文将为您详...
2025-04-07 21:30:35
光敏电阻作为重要的光电元件,在自动控制、光线检测及智能设备中有着着关键作用。ROHM(罗姆)作为全球知名的半导体制造商,其光敏电阻因高品质和稳定性能受到市场青睐...
2014-11-17 17:32:30
工作台/工作桌,不仅是办公空间中的必备家具,更是提升工作效率与品质生活的得力助手。其主要优势在于:1、人性化设计:符合人体工学,有效减轻长时间工作带来的疲劳。 ...
2009-08-27 00:00:00
PTC热敏电阻作为重要的温度保护元件,受到了越来越多的关注。紫泰荆作为国内知名的PTC热敏电阻制造品牌,其产品以性能稳定、质量可靠,应用于家电、通讯、电源等领域...
2019-07-30 22:07:30
肾脏移植在器官移植手术中占据了重要地位,但由于供受体之间的遗传不匹配,以及排斥反应等问题,肾脏移植仍然面临挑战。传统上,排斥反应的检测主要依赖于对肾脏组织进行活...
2023-09-15 09:06:00
PTC热敏电阻作为重要的温度保护元件,应用于家电、电源、汽车等领域。TMTEC(泰铭)作为国内知名的PTC热敏电阻品牌,稳定的性能和高品质的服务受到市场的认可。...
2024-07-21 05:41:25
SOIC-8(SmallOutlineIntegratedCircuit)是一种常见的集成电路封装类型,广泛应用于电子设备中。它因其小巧的尺寸和良好的性能而受到...
2025-02-24 12:26:09
电阻器作为关键电子元件,其性能直接影响电路的稳定性和可靠性。华润电阻作为国内知名的电阻制造商,其分流器电阻产品因质量优良、性能稳定而受到市场青睐。在华润电阻分流...
2014-01-26 12:37:30
现代电子设备和电气系统中,保险丝作为重要的保护元件,承担着防止电路过载和短路的关键作用。能够在电流超过安全范围时自动断开电路,保护设备和人员安全。那么,保险丝到...
2025-10-31 18:30:04
贴片排阻作为重要的被动元件,应用于各种电子设备中。万裕(SAMXON)作为知名的电子元件制造商,其贴片排阻系列产品凭借优良的品质和多样的规格,受到了广大客户的青...
2018-12-27 19:14:32