浪潮服务器NF5468M5怎么样,具有哪些优势呢?

浪潮服务器NF5468M5怎么样,具有哪些优势呢?,第1张

浪潮服务器其拥有高性能AI模型训练、高效能AI推理计算、高可靠AI多场景适配等优势,高扩展、高性能、高能效的特点,在4U机箱内最多支持20片NVIDIA GPU加速卡,8片Xilinx Alveo U200 FPGA加速卡。浪潮服务器NF5468M5是专用GPU设备,采用独立风道设计,保障最佳散热效果,适用于AI云,智慧城市,金融,通信,医疗等应用场景。

姓名:姬怡希

学号:19020100037

学院:电子工程学院

嵌牛导读:对卷积神经网络的加速的研究。

嵌牛鼻子:计算机软件及计算机应用; 自动化技术。

嵌牛提问:如何设计卷积神经网络的加速系统?

嵌牛内容:

  近年来,卷积神经网络(CNN)在机器视觉等方面取得了巨大成功。为提升嵌入式设备上运行CNN的速度和能效,本文针对LeNet-5网络模型,先对该网络模型进行感知量化训练,特征图和权重量化为8位整型数据。然后设计一种卷积神经网络加速系统,该片上系统(SoC)采用Cortex-M3为处理器,所提出的系统处理一张MNIST图像所需时间53ms,精度达到982%。

近年来,卷积神经网络(CNN)在机器视觉等方面取得了巨大成功。为提升嵌入式设备上运行CNN的速度和能效,本文针对LeNet-5网络模型,先对该网络模型进行感知量化训练,特征图和权重量化为8位整型数据。然后设计一种卷积神经网络加速系统,该片上系统(SoC)采用Cortex-M3为处理器,所提出的系统处理一张MNIST图像所需时间53ms,精度达到982%。CNN已成功应用于图像识别等应用,随着CNN解决更复杂的问题,计算和存储的需求急剧增加。然而,在一些低功耗的边缘计算设备中,功耗是重要指标。目前的研究主要针对CNN推理阶段模型的压缩和量化。大多数设计都用定点计算单元代替浮点单元。ESE采用12位定点权重和16位定点神经元设计,Guo等在嵌入式FPGA上使用8位单元进行设计。但之前的设计主要采用Zynq或者HLS开发,功耗较大。本文设计了一种基于FPGA的卷积神经网络加速系统。首先,通过感知量化训练的方法,实现了将浮点CNN模型的各层权重和特征图量化成8比特整型;其次,通过采用单层时分复用的方式,设计流水线架构提高数据吞吐率;再次,设计基于Cortex-M3的SoC;最后,采用MNIST手写数字进行方案和功能验证。

1 卷积神经网络

11 基本概念

  LeNet-5是一个典型的卷积神经网络模型,不包含输入一共有7层。分别为3层卷积层,2层池化层,以及2层全连接层。

12 量化原理

  针对目前CNN模型较大,参数多且不适合在移动设备上使用,Google团队提出了一种量化方案。该方案在推理过程中使用纯整。量化方案是量化整数q到实数r的映射,如公式(1)所示:

  其中常数S和Z是量化参数。S表示比例系数,是一个任意的正实数。Z表示零点。CNN中主要的 *** 作,比如卷积层的卷积,以及全连接层的乘累加,都可以看成是矩阵乘法。考虑实数两个N×N的矩阵r1和r2的乘积r3 =r1r2。将每个矩阵ra的项表示为ra(r,j),其中1≤ i, j ≤N,用qa(r,j)表示量化项,根据矩阵乘法的定义,得到:
  乘以浮点数M,可以转化成先乘以定点数M1,再进行右移n+31。将公式(2)中所有零点Z1,Z2,Z3都设为0,可以大大简化推理阶段的运算。另外将偏置加法和激活函数合并到其中。比例系数Sbias=S1S2,零点Zbias= 0。由于选用的激活函数是ReLU,所以只需要将结果钳位到[0,255]。

2 加速系统硬件设计

21 整体结构

  本系统采用CPU+FPGA的架构,包括AHB互联矩阵、Cortex-M3处理器、DMA、紧耦合存储器、双端口缓存、AHB2APB桥和CNN加速,如图1所示。存储器部分包含ITCM,DTCM和双端口RAM。ITCM存放程序镜像文件;DTCM作为堆栈区;DualRAM作为权重数据,输入特征图,以及中间、最终结果缓存区,一端连接L1级总线,CPU和DMA均可以访问,另一端连接CNN加速。

22 CNN加速设计

  CNN加速设计的整体结构如图2所示,并行方案采用输出通道和权重卷积核内部并行,同时计算6个输出通道,以及卷积核25个乘法器同时计算。特征图行缓冲的窗口尺寸为5x5,可以通过数据选择器选择输入特征图的宽度。权重特征图的行缓冲设计同理,由于卷积核均为5x5,所以不需要数据选择器。乘累加阵列输入为25个8位特征图和25个8位权重,对应相乘后采用加法树方式累加,最后得到1个位宽为21的有符号数。偏置加法器用于累加偏置或者中间结果。选择哪一个是由数据选择器控制,输出一个32位结果。量化激活模块包含一个32x32位的乘法器,用于将累加结果和乘法系数相乘,再经过右移,钳位到[0,255],经过四舍五入得到量化的结果。
32 实验结果

  本文的SoC工作的频率为100MHz,识别一张MNIST的时间为53ms,FPGA的功耗由Vivado的Report Power工具获得,仅为0448W。本文处理单帧的时间比较长,但是功耗是其他文献的四分之一。由于采用感知量化,识别正确率FPGA实现和软件实现一致,达到982%。实验结果对比如表1所示。结论:为了解决嵌入式设备上实现卷积神经网络速度慢和功耗大的问题,本文提出了一种卷积神经网络加速系统。首先对卷积神经网络进行感知量化,得到8比特的权重、特征值图1 系统框图 和量化参数。采用Cortex-M3作为处池化模块设计思路同卷积模块,采用最大池化。包含3个比较器和一个行缓冲,针对不同层可以选择不同长度的特征图,窗口尺寸为2x2。

1、数值逼近法:可以通过数值逼近法估计函数在某一点的导数值,例如使用中心差分法或者拉格朗日插值法。这种方法简单易懂,但精度相对较低,且需要占用大量的FPGA资源。
2、解析法:可以将函数的解析式在FPGA上实现,并根据求导公式计算导数。这种方法较为精确,但需要一定的数学基础和高级硬件设计技能,开发周期也比较长。
3、神经网络方法:可以使用神经网络模型来实现求导,在训练过程中自动学习函数的导数。这种方法需要大量数据和算力支持,且训练难度较大,但精度较高,可以应对复杂的函数求导问题。

朋友,我和你一样,也是对FPGA感兴趣。我现在大四,也是从大三开始接触FPGA。以我个人的认识,我觉得学习FPGA最重要的是训练自己硬件思维逻辑,因为FPGA是传统软件思维的颠覆,推荐学习Verilog,因为这个比较接近硬件层,但当你入门以后,VHDL也得学习,因为你要吸收别人的东西时别人若是用VHDL你就看不懂了。
基础课程最重要的当然是数字电路,只有数电学得扎实,看到HDL代码你才能在头脑中形成硬件逻辑,当然也要了解模拟电路,若你想把FPGA学得很好,模电也得学得相当好。
注意:学习FPGA是一定要理解什么是FPGA,硬件描述语言的功能到底是什么(建议你从原理图输入工具开始着手,当有一个概念认识后再学习HDL)。重点理解什么叫综合,千万不要将HDL当成C或者其他编程语言看待,否则你会原地打转始终得不到进步。
还有,FPGA主要面对的是高端数字信号处理,因此建议你一定要把数学学好,包括:高数1、2,概率论,复变函数与积分变换。另一个重要工具就是英语了,FPGA在中国懂的人并不多,玩的非常精的人就更少了,不像单片机,arm那样,网上一搜什么都有,这个很多东西得自己摸索,一重要资源就是官方pdf文档,而这些对你的英语水平是个考验。
最后,我们一起加油努力吧!呵呵


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12691440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存