【技术实现步骤摘要】
一种数据调度方法和设备
[0001]本专利技术涉及数据调度方法和设备,尤其涉及用于神经网络的数据调度方法和设备。
技术介绍
[0002]机器学习等人工智能算法目前已广泛应用于计算机视觉(CV)、自然语言处理(NLP)、语音识别等领域。然而,人工智能算法所需的数据量大,计算繁重,对部署人工智能算法的硬件提出了非常高的要求。通用型CPU或GPU已日益不能满足人工智能算法对算力的需要。因此,业界开始使用专用的人工智能芯片和人工智能硬件加速卡,以提高人工智能算法的整体运行效率。网络服务提供商常在服务器端部署人工智能加速卡,其完成的功能包括训练和推理等。训练是指训练算法模型的过程,通常要求高精度,对速度的要求不如推理严格。推理是指利用已经训练好的模型推理出结论的过程,可能发生于服务器与用户交互的过程中,因而要求更快的处理速度和更低的延时。
[0003]人工神经网络简称神经网络,是一种常见的机器学习模型。神经网络可以采用多种结构,例如卷积神经网络(CNN)、循环神经网络(RNN)等。其中,循环神经网络中的隐藏层的节点之间具备反馈,更适合于处理时序数据。因此,自然语言处理、语音识别等领域较多应用了循环神经网络。以自然语言处理为例,如果待处理的信息是一个句子,对于一个包括m个词(word)的句子,循环神经网络需要执行m次,m可以称为循环次数。在一次循环中,m个词中的一个作为输入数据输入到输入层,经过一个或多个隐藏层的计算后,由输出层输出。业界已经提出了多种循环神经网络模型,例如简单循环网络(SRN)模型、Transforme ...
【技术保护点】
【技术特征摘要】
1.一种硬件加速卡的数据调度方法,用于所述硬件加速卡从服务器接收样本和向所述服务器上报样本计算结果,所述样本包括多个元素,该方法包括:循环神经网络接收步骤,其接收所述服务器下发的循环神经网络的信息,所述循环神经网络的信息包括硬件加速卡可执行的指令以及循环神经网络模型,所述指令用于执行所述循环神经网络;样本处理信息接收步骤,其接收所述服务器下发的样本处理信息,所述样本处理信息包括输入内存的地址和输出内存的地址,所述输入内存和所述输出内存位于所述硬件加速卡;循环神经网络执行步骤,其执行所述循环神经网络,对所述输入内存中存储的样本执行所述指令,并将计算结果保存到所述输出内存;计算完成消息上报步骤,其向所述服务器上报计算完成消息。2.根据权利要求1所述的硬件加速卡的数据调度方法,其中,所述样本处理信息进一步包括循环次数。3.根据权利要求1所述的硬件加速卡的数据调度方法,其中,所述样本处理信息进一步包括实际样本长度或遮蔽矩阵,所述样本处理信息接收步骤进一步包括,根据所述实际样本长度或所述遮蔽矩阵确定循环次数。4.根据权利要求2或3所述的硬件加速卡的数据调度方法,其中,所述循环神经网络执行步骤进一步包括,判断所述指令已被执行的次数是否达到了所述循环次数;如果所述指令已被执行的次数没有达到循环次数,则将所述指令已被执行的次数增加1,然后再次执行所述指令;如果所述指令已被执行的次数达到了循环次数,则结束所述循环神经网络执行步骤。5.根据权利要求4所述的硬件加速卡的数据调度方法,其中,所述循环神经网络模型为Transformer模型中的编码器,所述循环次数为编码器块的个数,所述循环神经网络执行步骤中,第一次循环时的输入是完整的样本,之后每一次循环的输入是上一次循环的输出。6.根据权利要求4所述的硬件加速卡的数据调度方法,其中,所述循环神经网络模型为Transformer模型中的解码器,所述循环次数为实际样本长度,所述循环神经网络执行步骤中,在对每个元素的计算开始时,从输入内存调用当前的元素,从输出内存调用上一个元素的计算结果,作为本次执行的输入;当对第一个元素执行该循环时,调用输入内存中的第一个元素以及已经初始化为0的输出内存作为输入。7.根据权利要求4所述的硬件加速卡的数据调度方法,其中,所述循环神经网络模型为长短期记忆网络,所述循环次数为实际样本长度,所述循环神经网络执行步骤中,对每个元素依次执行指令时的输入为当前的元素以及对上一个元素计算的C
t
‑1,当对第一个元素执行指令时,调用已经初始化为0的中间内存作为C
t
‑1,每个词的计算结果C
t
保存在中间内存并覆盖针对前一个词计算的C
t
‑1,h
t
依次保存在输出内存。8.一种硬件加速卡,所述硬件加速卡从服务器接收样本并向所述服务器上报样本计算结果,所述样本包括多个元素,该硬件加速卡包括:循环神经网络接收模块,其被配置为,接收所述服务器下发的循环神经网络的信息,所述循环神经网络的信息包括硬件加速卡可执行的指令以及循环神经网络模型,所述指令用于执行所述循环神经网络;
样本处理信息接收模块,其被配置为,接收所述服务器下发的样本处理信息,所述样本处理信息包括输入内存的地址和输出内存的地址,所述输入内存和所述输出内存位于所述硬件加速卡;循环神经网络执行模块,其被配置为,执行所述循环神经网络,对所述输入内存中存储的样本执行所述指令,并将计算结果保存到所述输出内存;计算完成消息上报模块,其被配置为,向所述服务器上报计算完成消息。9.根据权利要求8所述的硬件加速卡,其中,所述样本处理信息进一步包括循环次数。10.根据权利要求8所述的硬件加速卡,其中,所述样本处理信息进一步包括实际样本长度或遮蔽矩阵,所述样本处理信息接收模块进一步被配置为,根据所述实际样本长度或所述遮蔽矩阵确定循环次数。11.根据权利要求9或10所述的硬件加速卡,其中,所述循环神经网络执行模块进一步被配置为,判断所述指令已被执行的次数是否达到了所述循环次数;如果所述指令已被执行的次数没有达到循环次数,则将所述指令已被执行的次数增加1,然后再次执行所述指令,直至所述指令已被执行的次数达到了循环次数。12.根据权利要求11所述的硬件加速卡,其中,所述循环神经网络模型为Transformer模型中的编码器,所述循环次数为编码器块的个数,所述循环神经网络执行模块被进一步配置为,第一次循环时的输入是完整的样本,之后每一次循环的输入是上一次循环的输出。13.根据权利要求11所述的硬件加速卡,其中,所述循环神经网络模型为Transform...
【专利技术属性】
技术研发人员:陶洁,李敏丽,秦博,
申请(专利权)人:瀚博半导体上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。