您现在的位置是:首页 > 数字电源 > 技术解析

FPGA也能做RNN

时间:2017-09-13 来源:

导言:循环神经网络(RNNs)具有保留记忆和学习数据序列的能力。由于RNN的循环性质,难以将其所有计算在传统硬件上实现并行化。当前CPU不具有大规模并行性,而由于RNN模型的顺序组件,GPU只能提供有限的并行性。针对这个问题,普渡大学的研究人员提出了一种LSTM在Zynq 7020 FPGA的硬件实现方案,该方案在FPGA中实现了2层128个隐藏单元的RNN,并且使用字符级语言模型进行了测试。该实现比嵌入在Zynq 7020 FPGA上的ARM Cortex-A9 CPU快了21倍。

LSTM是一种特殊的RNN,由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。标准的RNN可以保留和使用最近的过去信息,但是不能学习长期的依赖关系。并且由于存在梯度消失和爆炸的问题,传统的RNN无法训练较长的序列。为了解决上述问题,LSTM添加了记忆控制单元来决定何时记住、遗忘和输出。LSTM的单元结构如图1所示。其中⊙代表element-wise的乘法。

 

图1

 

图1

用数学表达式表示图1如图2所示。其中表示Sigmoid函数,是层的输入向量,是模型参数,是记忆单元激活值,是候选记忆单元门,是层的输出向量。下标表示前一时刻,就是相应的输入、遗忘和输出门。这些门决定何时记住或遗忘一个输入序列,以及何时输出。人们需要对模型进行训练,从而得到所需的输出参数。简单来说,模型训练是一个迭代过程,其中训练数据被输入,然后将得到的输出与目标进行比较。模型通过BP算法进行训练。由于添加了更多的层和更多的不同的功能,模型可以变得相当复杂。 对于LSTM,每个模块有四个门和一些element-wise的操作。 深层LSTM网络具有多个LSTM模块级联,使得一层的输出是下一层的输入。

 

 

图2

了解完了LSTM的特性后,如何设计LSTM在FPGA上的实现呢?下面我们来看一下实现方案。

1)硬件

硬件实现的主要操作就是矩阵向量乘法和非线性函数。

矩阵向量乘法由MAC单元计算, MAC单元需要两个流:输入向量流和加权矩阵的行向量流。将相同的矢量流与每个权重矩阵行相乘并累加,以产生与权重矩阵的高相同尺寸的输出向量。在计算每个输出元素之后,MAC被重置以避免累积先前的矩阵行计算。可以通过向权重矩阵的最后一列添加偏置向量来将偏置b添加到乘法累加中,同时为输入向量增加一个额外的单位值。这样就不需要为偏置添加额外的输入端口,也可以向MAC单元添加额外的预配置步骤。 将MAC单元的结果加在一起。加法器的输出是一个元素的非线性函数,它是用线性映射来实现的。

非线性函数被分割成线性y = ax + b,其中x限于特定范围。在配置阶段,a,b和x范围的值存储在配置寄存器中。每个线性函数段用MAC单元和比较器实现。输入值与线性范围之间的比较决定是处理输入还是将其传递给下一个线性函数段模块。非线性函数分为13个线段,因此非线性模块包含13个流水线段模块。 实施设计的主要组成部分是如图3所示的门模块。

 

图3

 

图3

实现模块使用直接存储访问(DMA)端口来进行数据的读入或写出。由于DMA端口是独立的,因此即使模块同时激活端口,输入流也不会同步。因此,需要流同步模块。该同步块用来缓存一些流数据,直到所有端口都是流式传输。当最后一个端口开始传输时,同步块开始输出同步流。这样就能确保到MAC单元的向量和矩阵行元素对齐。另外,图3中的门模块还包含一个将32位值转换为16位值的重分区块。MAC单元执行16位乘法,产生32位值。然后使用32位值执行加法以保持精度。

图2中的公式1,2,3,4都能用上述模块实现,剩下的只是计算公式5和6的一些element-wise的运算。为此,方案引入了如图4所示的包含额外的乘法器和加法器的模块。

 

图4

 

图4

最终形成的实现LSTM的方案如图5所示。该方案使用图3中的三个模块和图4中的一个。门被预配置为具有非线性函数(tanh或S形)。内部模块由状态机控制以执行一系列操作。实现的设计使用四个32位DMA端口。由于操作以16位完成,每个DMA端口可以传输两个16位流。权重和连接在主存储器中以利用该特征。然后根据要执行的操作将流路由到不同的模块。

 

 

图5

2)驱动软件

控制和测试软件用C代码实现。该软件将权重值和输入向量放入主存储器,并使用一组配置寄存器控制硬件模块。权重矩阵的每行结尾是相应的偏置值。输入向量包含一个额外的单位值,使得矩阵向量乘法仅添加矩阵行的最后一个元素。零填充用于匹配矩阵行尺寸和向量尺寸,这使流同步更容易。

由于LSTM的循环性质,每次循环c和h都被覆盖。这样做可以最大限度地减少CPU完成的内存复制次数。为了实现多层LSTM,将上一层的输出复制到下一层的位置,以便在层之间保留以进行错误度量。此外,控制软件还需要通过在控制寄存器中设置不同的存储位置来更改不同层的权重。

实验和实验结果

实验实现了一个字符级语言模型,它预测了给定前一个字符的下一个字符。根据字符,模型生成一个看起来像训练数据集的文本,它可以是一本书或大于2 MB字的大型互联网语料库。本实验选取莎士比亚的一部分作品进行了训练。实验实现了一个隐藏层大小为128的2层LSTM模型。

该方案在包含Zynq-7000 SOC XC7Z020的Zedboard上实现。它包含双ARM Cortex-A9 MPCore,该实验采用的C代码LSTM的实现在Zedboard的双ARM Cortex-A9处理器上运行,时钟频率为667 MHz。在FPGA上的实现运行的时钟频率为142 MHz的。芯片总功率为1.942 W,硬件利用率如表1所示。

 

表1

 

表1

图6展示了不同嵌入式平台上的前馈LSTM字符级语言模型的执行时间,时间越越好。我们看到,即使是在142MHz的时钟频率下,该实现依然比嵌入在Zynq 7020 FPGA上的ARM Cortex-A9 CPU的实现快了21倍。

 

图6

 

图6

图7展示了不同嵌入式平台的单位功耗性能(值越大表示性能越好)。从图中结果可以看出,FPGA的实现单位功耗性能远超其他平台,这进一步说明了FPGA实现的优越性。

 

 

图7

换一批

延伸阅读

[图酷] ARM+FPGA

ARM+FPGA

基于ARM+FPGA的高速同步数据采集方案,主要包括以下几个部分:ARM控制器、存储电路、FPGA逻辑控制电路、A/D转换电路、FIFO缓存、电源电路、接口电路等。......

关键字:

[新鲜事] 为何RF测试系统需要FPGA?

为何RF测试系统需要FPGA?

FPGA是一种可以重复改变组态的电路,可让设计者进行编程的逻辑闸元件,特别适用于产品开发时必须不断变更设计的应用,以有效加速产品上市时间。而FPGA电路的特性,特别适合用于软体定义的测试系统架构,这也正式目前......

关键字:FPGA RF测试 系统

[新鲜事] 应届生就业,考研,培训该何去何从?

应届生就业,考研,培训该何去何从?

数据显示,今年全国高校毕业生人数近750万,比被称为史上“最难就业季”的2014年又增加了22万人,在这样竞争激烈的就业形势下,不少应届生都表示无可奈何。对于大三大四的学生来说,毕业以后是该马上找工......

关键字:应届生 考研 嵌入式

[真心话] 物联网时代如何做嵌入式

物联网时代如何做嵌入式

随着物联网时代的来临,数据的流通、收集、分析显得越来越重要。在IdoSarig看来,主要做的事情在于保障数据在物联网里的双向流通,不仅是将底层的数据采集、传输至云端处理并分析,同样还需要将处理指令反馈至终端设......

关键字:物联网 嵌入式

[猎聘集] 硬件路漫漫,想成为高级嵌入式硬件工程师,你还欠缺什么?

硬件路漫漫,想成为高级嵌入式硬件工程师,你还欠缺什么?

有很多朋友经常会问,成为高级嵌入式系统硬件工程师,需要做到哪些呢?那么,我们就先从嵌入式硬件工程师是个什么概念入手。......

关键字:嵌入式 硬件工程师

[疯狂史] 紫光疯狂收购史 投3000亿圆芯片帝国梦!

紫光疯狂收购史 投3000亿圆芯片帝国梦!

继7亿美金收购展讯,9亿美金收购锐迪科,25亿美金收购新华三,38亿美金控股西数,再砸5亿人民币“娶”西数,紫光疯狂的步伐还远未停止。近日,紫光投资3000亿元打造第三大芯片制造商,媲美Intel。不得不说......

关键字:紫光 收购史 FPGA 半导体

[真心话] 过来人给嵌入式工程师的十个建议

过来人给嵌入式工程师的十个建议

不知什么时候开始,整个业界开始习惯用开源软件来开发应用程序(Apps),产业专家也鼓励嵌入式工程师们走出舒适圈、学习新技能,才能与时俱进。......

关键字:嵌入式工程师 软硬件技术

[猎聘集] 嵌入式应用愈发广泛 就业前景可观

嵌入式应用愈发广泛 就业前景可观

近年来,智能硬件铺天盖地的出现,让人们彻底改变了过去对嵌入式系统应用的认识。嵌入式人才的就业方向,前景尤为可观。......

关键字:嵌入式 就业前景 可观

[猎聘集] 优秀嵌入式DSP工程师是怎样炼成的?

优秀嵌入式DSP工程师是怎样炼成的?

1、工作多年,总结您的经验和工作经历,您最想与想要或已经从事嵌入式电子行业新人说的话是什么?我当初进入DSP领域,是一个师兄的带领下进入的,但是我初学不久,他就离开学校,开始工作,因此我的DSP学习也暂时结束......

关键字:DSP工程师 嵌入式

[新鲜事] 苹果三星力劝运营商用e-SIM技术 弃用实体SIM卡

苹果三星力劝运营商用e-SIM技术 弃用实体SIM卡

据《金融时报》报道,苹果与三星正在积极劝说运营商以配合研发和使用全新SIM卡标准。此类新型SIM卡将采用嵌入式技术(后称e-SIM),能让移动设备更方便地在不同运营商网络间进行切换。e-SIM在出厂时会被预装在设备里,由于本身并不锁定于某个......

关键字:运营商 金融时报 三星 嵌入式 技术
发表评论 共有条评论
用户名: 验证码:

双音发生器

双音发生器

两个555振荡器或定时器都可以配置成音频振荡器,分别用于单独的扬声器。一个双100kQ电……

音频动态噪音消除系统

音频动态噪音消除系统

U1是一种美国国家半导体公司生产的专用集成电路,用于自动适配宽带方案和听觉掩蔽技术……

RC电路波形全面分析汇总

RC电路波形全面分析汇总

RC电路在模拟电路、脉冲数字电路中得到广泛的应用,由于电路的形式以及信号源和R,C元……

项目外包