本发明专利技术提出了一种基于权值驻留的LSTM循环网络加速方法和系统,包括:获取具有权重缓存的AI专用芯片和待处理的时间序列,将待运行的LSTM循环网络模型加载至该AI专用芯片,并将LSTM循环网络模型运行中的所有时间无关项加载至该权重缓存;按顺序将该时间序列中当前时刻t的特征向量X
【技术实现步骤摘要】
一种基于权值驻留的LSTM循环网络加速方法和系统
[0001]本专利技术涉及人工智能和计算机体系结构领域,并特别涉及一种基于AI专用芯片的LSTM(Long short
‑
term memory)循环网络加速方法和系统。
技术介绍
[0002]在自然语言处理领域(NLP)和自动语音识别(ASR)领域,RNN的提出和应用是相较于马尔可夫模型等传统机器学习方法的巨大进步,但是在使用过程中,RNN又会出现梯度弥散,训练难以收敛的问题,同时,RNN会记录所有信息,而过于长久的信息很可能又是没有太大意义的。所以在1997年,Schmidhuber在论文Long short
‑
term memory中提出了如图1所示的LSTM结构,完美得解决了RNN所面临的问题。
[0003]在构建LSTM单元(常简称为cell)的时候,通常都是按照图1中的每个门需要的运算按照顺序依照图2所示的计算公式,从输入到输出完成计算。
[0004]cnDnn(是一个用于深层神经网络的GPU加速库)里面做了一个优化,把每个门的有关inputx的矩阵乘法,拿出来提前完成计算,这样就减少了在t序列循环的时候需要做的大量的计算和IO操作,如图3所示。该优化和原始计算流程的区别在于:LSTM原始计算流程中,每个时刻(即图1中t
‑
1,t,t+1等)均会发生完整且相同的,由图2公式所定义的计算行为。其中有一部分计算可以被观察到,不随循环时刻变化改变而改变,也即在t
‑
1,t,t+1等时刻的计算中保持一致。因此这部分计算被称为时间无关项。对应到公式中,即为和W
i
,W
f
,W
o
,W
c
相关的四个矩阵乘。这是因为这四个权重在LSTM网络训练过程中(也即LSTM网络被运行前)已经被确定,每一个时刻的输入X
t
同样也在LSTM运行前被确定(例如使用LSTM网络分析一段10秒的语音数据,在LSTM网络进行分析前,这段语音数据已经存在了)。因此作为W
i
,W
f
,W
o
,W
c
和X
t
矩阵乘的结果,这四项计算可以在运行LSTM网络前就被处理完毕,不参与LSTM网络的循环过程。
[0005]按照标准的LSTM流程完成计算,随着循环次数的增加,整个网络的推理时间可以变得非常大,尽管上述提取时间无关项的优化方式可以给整个网络带来性能上的提升,但是依旧还有很大的优化空间。
技术实现思路
[0006]本专利技术提出一种基于AI加速芯片(简称为MLU)的循环网络(常简称为RNN)性能优化方法。
[0007]具体来说,本专利技术提出了一种基于权值驻留的LSTM循环网络加速方法,其中包括:
[0008]步骤1、获取具有权重缓存的AI专用芯片和待处理的时间序列,将待运行的LSTM循环网络模型加载至该AI专用芯片,并将LSTM循环网络模型运行中的所有时间无关项加载至该权重缓存;
[0009]步骤2、将时间序列中第一时刻的特征向量输入至AI专用芯片,该AI专用芯片运行该LSTM循环网络模型,得到初始时刻的隐层输出;
[0010]步骤3、按顺序将该时间序列中当前时刻t的特征向量X
t
,以及前一时刻的隐层输出H
t
‑1输入至该AI专用芯片,通过读取位于权重缓存的时间无关项,运行该LSTM循环网络模型,得到当前时刻t的隐层输出H
t
;
[0011]步骤4、循环执行该步骤3,直到达到预设循环次数,输出当前时刻的隐层输出作为LSTM循环网络的执行结果。
[0012]所述的基于权值驻留的LSTM循环网络加速方法,其中该步骤2包括:加载前一时刻隐层的输出H
t
和WX
t
至该AI专用芯片中的神经元缓存。
[0013]所述的基于权值驻留的LSTM循环网络加速方法,其中该时间无关项为该LSTM循环网络模型运行中的R权值。
[0014]所述的基于权值驻留的LSTM循环网络加速方法,其中该待处理的时间序列为语音数据,该LSTM循环网络模型为语义识别模型,该执行结果为该语音数据对应的语义内容。
[0015]本专利技术还提出了一种基于权值驻留的LSTM循环网络加速系统,其中包括:
[0016]加载模块,用于获取具有权重缓存的AI专用芯片和待处理的时间序列,将待运行的LSTM循环网络模型加载至该AI专用芯片,并将LSTM循环网络模型运行中的所有时间无关项加载至该权重缓存;
[0017]初始模块,用于将时间序列中第一时刻的特征向量输入至AI专用芯片,该AI专用芯片运行该LSTM循环网络模型,得到初始时刻的隐层输出;
[0018]运算模块,用于按顺序将该时间序列中当前时刻t的特征向量X
t
,以及前一时刻的隐层输出H
t
‑1输入至该AI专用芯片,通过读取位于权重缓存的时间无关项,运行该LSTM循环网络模型,得到当前时刻t的隐层输出H
t
;
[0019]循环模块,用于多次调用该运算模块,直到达到预设循环次数,输出当前时刻的隐层输出作为LSTM循环网络的执行结果。
[0020]所述的基于权值驻留的LSTM循环网络加速系统,其中该初始模块用于加载前一时刻隐层的输出H
t
和WX
t
至该AI专用芯片中的神经元缓存。
[0021]所述的基于权值驻留的LSTM循环网络加速系统,其中该时间无关项为该LSTM循环网络模型的R权值。
[0022]所述的基于权值驻留的LSTM循环网络加速系统,其中该待处理的时间序列为语音数据,该LSTM循环网络模型为语义识别模型,该执行结果为该语音数据对应的语义内容。
[0023]本专利技术还提出了一种存储介质,用于存储执行所述任意一种基于权值驻留的LSTM循环网络加速方法的程序。
[0024]本专利技术还提出了一种客户端,用于所述任意一种基于权值驻留的LSTM循环网络加速系统。
[0025]本专利技术还提出了一种AI加速芯片,该芯片具有权重缓存和LSTM网络计算模块,其中该权重缓存,用于存储LSTM循环网络模型运行中所有时间无关项;该LSTM网络计算模块,用于获取待处理的时间序列和待运行的LSTM循环网络模型,按顺序将该时间序列中当前时刻t的特征向量X
t
,以及前一时刻的隐层输出H
t
‑1输入至该LSTM循环网络模型,并通过读取位于权重缓存的时间无关项,运行该LSTM循环网络模型,得到当前时刻t的隐层输出H
t
,作为LSTM循环网络的执行结果。
[0026]本申请通过将LSTM循环网络模型运行中的所有时间无关项加载至该权重缓存中,
当再次运算时,处理器直接从缓存中获取该时间无关项,无需再次从片外本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于权值驻留的LSTM循环网络加速方法,其特征在于,包括:步骤1、获取具有权重缓存的AI专用芯片和待处理的时间序列,将待运行的LSTM循环网络模型加载至该AI专用芯片,并将LSTM循环网络模型运行中的所有时间无关项加载至该权重缓存;步骤2、将时间序列中第一时刻的特征向量输入至AI专用芯片,该AI专用芯片运行该LSTM循环网络模型,得到初始时刻的隐层输出;步骤3、按顺序将该时间序列中当前时刻t的特征向量X
t
,以及前一时刻的隐层输出H
t
‑1输入至该AI专用芯片,通过读取位于权重缓存的时间无关项,运行该LSTM循环网络模型,得到当前时刻t的隐层输出H
t
;步骤4、循环执行该步骤3,直到达到预设循环次数,输出当前时刻的隐层输出作为LSTM循环网络的执行结果。2.如权利要求1所述的基于权值驻留的LSTM循环网络加速方法,其特征在于,该步骤2包括:加载前一时刻隐层的输出H
t
和WX
t
至该AI专用芯片中的神经元缓存。3.如权利要求1所述的基于权值驻留的LSTM循环网络加速方法,其特征在于,该时间无关项为该LSTM循环网络模型运行中的R权值。4.如权利要求1所述的基于权值驻留的LSTM循环网络加速方法,其特征在于,该待处理的时间序列为语音数据,该LSTM循环网络模型为语义识别模型,该执行结果为该语音数据对应的语义内容。5.一种基于权值驻留的LSTM循环网络加速系统,其特征在于,包括:加载模块,用于获取具有权重缓存的AI专用芯片和待处理的时间序列,将待运行的LSTM循环网络模型加载至该AI专用芯片,并将LSTM循环网络模型运行中的所有时间无关项加载至该权重缓存;初始模块,用于将时间序列中第一时刻的特征向量输入至AI专用芯片,该AI专用芯片运行该LSTM循环网络模型,得到初始时刻的隐层输出;运算模块,用...
【专利技术属性】
技术研发人员:杜子东,孙浩,李涛,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。