Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Xilinx Zynq系列FPGA实现神经网络中相关资源评估

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

作者头像
FPGA技术江湖
发布于 2024-12-20 09:12:32
发布于 2024-12-20 09:12:32
12700
代码可运行
举报
文章被收录于专栏:FPGA技术江湖FPGA技术江湖
运行总次数:0
代码可运行

Zynq7000系列概览

内存占用

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。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  //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中搭建好系统,占用的资源为:

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

消耗资源为:

实现大型神经网络的方法

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

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

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

方案二:用FPGA调用DDR

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

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

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

优点:可实现大型网络

缺点:速度较慢

Virtex-7高端FPGA概览

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

7系列FPGA相关文档:

- -THE END-

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Xilinx 7系列FPGA概览
Xilinx 7系列FPGA概览 文章目录 Xilinx 7系列FPGA概览 1.Xilinx的四个工艺级别 2.Virtex、Kintex、Artix和Spartan 3.7系列特点 4.7系列命名规则 5.7系列资源概括 ----   2015年11月,Xilinx推出Spartan®-7 FPGA系列,新一代产品开始更新,之前两篇文章:   FPGA 主流芯片选型指导和命名规则(一)   FPGA 主流芯片选型指导和命名规则(二)   介绍的FPGA都是比较老的一代,最近才开始关注类似的新闻,这一篇主
碎碎思
2020/06/30
2.8K0
Xilinx FPGA底层资源介绍
XILINX FPGA 芯片整体架构如下所示,整个芯片是以BANK进行划分的,不同的工艺、器件速度和对应的时钟具有不同的BANK数量(下面截图是以K7325tffg676为例):左边的BANK都是HR BANK,右侧的最下面三个是HP BANK,最上面的四个BANK是transceiver。
瓜大三哥
2020/05/07
4.1K0
介绍一篇可以动态编辑Xilinx FPGA内LUT内容的深度好文!
论文摘要:内部配置访问端口(ICAP)是基于Xilinx SRAM的现场可编程门阵列(FPGA)中实现的任何动态部分可重配置系统的核心组件。我们开发了一种新的高速ICAP控制器,名为AC ICAP,完全采用硬件实现。除了加速部分比特流和帧的管理的类似解决方案之外,AC ICAP还支持LUT的运行时重新配置,而无需预先计算的部分比特流。通过对比特流执行逆向工程,可以实现最后的特性。此外,我们采用了这种基于硬件的解决方案,以提供可从MicroBlaze处理器访问的IP内核。为此,扩展了控制器并实现了三个版本,以便在连接到处理器的外围本地总线(PLB),快速单工链路(FSL)和AXI接口时评估其性能。因此,控制器可以利用处理器提供的灵活性,但利用硬件加速。它在Virtex-5和Kintex7 FPGA中实现。重新配置时间的结果表明,Virtex-5器件中单个LUT的运行时重新配置小于5us,这意味着与Xilinx XPS HWICAP控制器相比,速度提升超过380倍。
网络交换FPGA
2019/10/29
4.6K1
介绍一篇可以动态编辑Xilinx FPGA内LUT内容的深度好文!
FPGA Xilinx Zynq 系列(三)
今天给大侠带来FPGA Xilinx Zynq 系列第三篇,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
1.1K0
FPGA Xilinx Zynq 系列(十)芯片比较 之 比较一:Zynq对FPGA
今天给大侠带来FPGA Xilinx Zynq 系列第十篇,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
10.1K2
FPGA Xilinx Zynq 系列(十一)芯片比较 之 比较二:Zynq对标准处理器
今天给大侠带来FPGA Xilinx Zynq 系列第十一篇,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
1.8K0
FPGA Xilinx Zynq 系列(二十六)高层综合
今天给大侠带来FPGA Xilinx Zynq 系列第二十六篇,开启十四章,讲述高层综合等相关内容,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
1.4K0
FPGA Xilinx Zynq 系列(十七)教育、研究和培训
今天给大侠带来FPGA Xilinx Zynq 系列第十七篇,教育、研究和培训,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
1.3K0
FPGA系统性学习笔记连载_Day4 Xilinx ZYNQ7000系列 PS、PL、AXI 、启动流程基本概念篇
本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。
FPGA技术江湖
2021/03/30
2.1K0
FPGA系统性学习笔记连载_Day4 Xilinx ZYNQ7000系列 PS、PL、AXI 、启动流程基本概念篇
FPGA Xilinx Zynq 系列(二十二)Zynq 片上系统概述之存储器
今天给大侠带来FPGA Xilinx Zynq 系列第二十二篇,Zynq 片上系统概述之存储器等相关内容,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
3.1K0
FPGA Xilinx Zynq 系列(二)
今天给大侠带来FPGA Xilinx Zynq 系列第二篇,第一篇提到了本系列分成三个部分,详细介绍可见FPGA&nbsp;Xilinx&nbsp;Zynq&nbsp;系列(一)。第二篇开始第一部分 Part A 开始了解Zynq。本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
1.7K0
基于TMS320C6678开发板的ZYNQ PS + PL异构多核案例开发手册(3)
本文主要介绍ZYNQ PS + PL异构多核案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx SDK 2017.4。其中测试板卡为TMS320C6678开发板,文章内容包含多个特色案例,如axi_gpio_led_demo案例、axi_timer_pwm_demo案例、axi_uart_demo案例、emio_gpio_led_demo案例、mig_dma案例等,由于篇幅过长,文章分为上下6个小节展示,欢迎大家按照顺序进行文章内容查看。
创龙科技Tronlong
2022/07/31
1.1K0
基于TMS320C6678开发板的ZYNQ PS + PL异构多核案例开发手册(3)
FPGA Xilinx Zynq 系列(五)
今天给大侠带来FPGA Xilinx Zynq 系列第五篇,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
2.5K0
Zynq7020 使用 Video Processing Subsystem 实现图像缩放
没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。
芯动大师
2024/01/16
6060
Zynq7020 使用 Video Processing Subsystem 实现图像缩放
FPGA芯片结构
目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。如图1-1所示(注:图1-1只是一个示意图,实际上每一个系列的FPGA都有其相应的内部结构),FPGA芯片主要由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
数字芯片社区
2020/07/20
1.3K0
FPGA芯片结构
FPGA Xilinx Zynq 系列(一)
今天给大侠带来FPGA Xilinx Zynq 系列第一篇,基于含有 ARM® Cortex®-A9 的 Xilinx® Zynq®-7000 全可编程片上系统的嵌入式处理器,本系列分享来源于《The Zynq Book》,Louise H. Crockett, Ross A. Elliot,Martin A. Enderwitz, Robert W. Stewart. L. H. Crockett, R. A. Elliot, M. A. Enderwitz and R. W. Stewart, The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 All Programmable SoC, First Edition, Strathclyde Academic Media, 2016。
FPGA技术江湖
2020/12/30
2.5K1
从Xilinx Kintex-7认识FPGA
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA开源工作室
2019/10/29
1.9K0
从Xilinx Kintex-7认识FPGA
【重磅干货】手把手教你动态编辑Xilinx FPGA内LUT内容
FPGA是实现高性能计算与网络的重要工具,得益于其高度的并行性与用户可编程的特性,FPGA得到了越来越广泛的应用。FPGA由CLB(Configurable Logic Block,可编程逻辑单元)、BRAM(Block RAM,块RAM)、DSP48E1(专用数字处理单元)、可编程布线资源、可编程IO资源等部分组成,其中,CLB是实现逻辑功能的基础,Xilinx 7系列FPGA CLB内部结构如图1.1所示[1]。
网络交换FPGA
2019/10/29
4.1K0
【重磅干货】手把手教你动态编辑Xilinx FPGA内LUT内容
FPGA设计流程
在设计进入之前,需要根据设计规范进行设计规划。设计规范需要转换为体系结构和微体系结构。设计架构和微架构包括将总体设计分解为小模块,以实现预期功能。在架构设计阶段,需要估计内存、速度和功率的需求。根据需要,需要为实现选择FPGA设备。
碎碎思
2022/04/14
1.2K0
FPGA设计流程
FPGA Xilinx Zynq 系列(二十五)IP包设计
今天给大侠带来FPGA Xilinx Zynq 系列第二十五篇,开启十三章,讲述IP包设计等相关内容,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
1.9K0
相关推荐
Xilinx 7系列FPGA概览
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验