一种数据调度方法和设备技术

技术编号:37055575 阅读:14 留言:0更新日期:2023-03-29 19:32
本发明专利技术提供一种数据调度方法,用于服务器将样本下发的硬件加速卡进行计算,以及相应的设备。根据本发明专利技术的硬件加速卡的数据调度方法包括循环神经网络接收步骤、样本处理信息接收步骤、循环神经网络执行步骤、计算完成消息上报步骤。根据本发明专利技术的服务器的数据调度方法包括循环神经网络模型确定步骤、加速卡可执行的指令生成步骤、循环神经网络注册步骤、样本处理信息下发步骤、计算完成消息接收步骤。本发明专利技术的方法和设备能够避免服务器频繁对每个元素的数据进行调度,降低输出延时。降低输出延时。降低输出延时。

【技术实现步骤摘要】
一种数据调度方法和设备


[0001]本专利技术涉及数据调度方法和设备,尤其涉及用于神经网络的数据调度方法和设备。

技术介绍

[0002]机器学习等人工智能算法目前已广泛应用于计算机视觉(CV)、自然语言处理(NLP)、语音识别等领域。然而,人工智能算法所需的数据量大,计算繁重,对部署人工智能算法的硬件提出了非常高的要求。通用型CPU或GPU已日益不能满足人工智能算法对算力的需要。因此,业界开始使用专用的人工智能芯片和人工智能硬件加速卡,以提高人工智能算法的整体运行效率。网络服务提供商常在服务器端部署人工智能加速卡,其完成的功能包括训练和推理等。训练是指训练算法模型的过程,通常要求高精度,对速度的要求不如推理严格。推理是指利用已经训练好的模型推理出结论的过程,可能发生于服务器与用户交互的过程中,因而要求更快的处理速度和更低的延时。
[0003]人工神经网络简称神经网络,是一种常见的机器学习模型。神经网络可以采用多种结构,例如卷积神经网络(CNN)、循环神经网络(RNN)等。其中,循环神经网络中的隐藏层的节点之间具备反馈,更适合于处理时序数据。因此,自然语言处理、语音识别等领域较多应用了循环神经网络。以自然语言处理为例,如果待处理的信息是一个句子,对于一个包括m个词(word)的句子,循环神经网络需要执行m次,m可以称为循环次数。在一次循环中,m个词中的一个作为输入数据输入到输入层,经过一个或多个隐藏层的计算后,由输出层输出。业界已经提出了多种循环神经网络模型,例如简单循环网络(SRN)模型、Transformer模型、长短期记忆网络(LSTM)模型等等,以适应不同的应用场景和要求。
[0004]现有的部署了人工智能加速卡的服务器(host)中,服务器的处理器根据神经网络的模型生成可由加速卡运行的指令,从服务器系统内存中读取待处理的数据,并且将指令与待处理的数据一起通过系统总线发送给人工智能加速卡。加速卡根据接收到的指令对数据进行处理,之后再将结果存储到服务器系统内存。如果运行的模型是循环神经网络,以自然语言处理为例,则在执行m次循环之中的每一次循环(例如处理m个词中的每一个词)时,服务器都需要将对应句子中的第m个词的数据下发到加速卡,计算完成后,加速卡再将对应第m个词的计算结果上报服务器。数据在服务器与加速卡之间传递所耗费的时间远远大于加速卡实际进行计算的时间。这样的数据调度流程导致调度时间长,输入到输出的延时大,严重限制了循环神经网络在要求低延时的领域的应用。

技术实现思路

[0005]鉴于此,本专利技术提供一种数据调度方法,用于服务器将样本下发的硬件加速卡进行计算,以及相应的设备。
[0006]根据本专利技术的一个方面,提供了一种硬件加速卡的数据调度方法,用于所述硬件加速卡从服务器接收样本和向所述服务器上报样本计算结果,所述样本包括多个元素,该
方法包括:循环神经网络接收步骤,其接收所述服务器下发的循环神经网络的信息,所述循环神经网络的信息包括硬件加速卡可执行的指令以及循环神经网络模型,所述指令用于执行所述循环神经网络;样本处理信息接收步骤,其接收所述服务器下发的样本处理信息,所述样本处理信息包括输入内存的地址和输出内存的地址,所述输入内存和所述输出内存位于所述硬件加速卡;循环神经网络执行步骤,其执行所述循环神经网络,对所述输入内存中存储的样本执行所述指令,并将计算结果保存到所述输出内存;计算完成消息上报步骤,其向所述服务器上报计算完成消息。
[0007]根据本专利技术的一个方面,提供了一种硬件加速卡,所述硬件加速卡从服务器接收样本并向所述服务器上报样本计算结果,所述样本包括多个元素,该硬件加速卡包括:循环神经网络接收模块,其被配置为,接收所述服务器下发的循环神经网络的信息,所述循环神经网络的信息包括硬件加速卡可执行的指令以及循环神经网络模型,所述指令用于执行所述循环神经网络;样本处理信息接收模块,其被配置为,接收所述服务器下发的样本处理信息,所述样本处理信息包括输入内存的地址和输出内存的地址,所述输入内存和所述输出内存位于所述硬件加速卡;循环神经网络执行模块,其被配置为,执行所述循环神经网络,对所述输入内存中存储的样本执行所述指令,并将计算结果保存到所述输出内存;计算完成消息上报模块,其被配置为,向所述服务器上报计算完成消息。
[0008]根据本专利技术的一个方面,提供了一种服务器的数据调度方法,所述服务器向硬件加速卡发送样本,所述样本包括多个元素,该方法包括:循环神经网络模型确定步骤,其确定循环神经网络模型;硬件加速卡可执行的指令生成步骤,其编译所述循环神经网络模型,将需要重复执行的指令按一次循环展开,生成硬件加速卡可执行的指令;循环神经网络注册步骤,其将所述指令和所述循环神经网络模型发放到所述硬件加速卡;样本处理信息下发步骤,其将样本处理信息下发到加速卡,并将完整的样本存入输入内存,所述样本处理信息包括所述输入内存的地址和输出内存的地址,所述输入内存和所述输出内存位于所述硬件加速卡;计算完成消息接收步骤,其接收所述硬件加速卡上报的计算完成消息。
[0009]根据本专利技术的一个方面,提供了一种服务器,所述服务器向硬件加速卡发送样本,所述样本包括多个元素,该服务器包括:循环神经网络模型确定模块,其被配置为,确定循环神经网络模型;硬件加速卡可执行的指令生成模块,其被配置为,编译所述循环神经网络模型,生成硬件加速卡可执行的指令;循环神经网络注册模块,其被配置为,将所述硬件加速卡可执行的指令和循环神经网络模型发放到所述硬件加速卡;样本处理信息下发模块,其被配置为,将样本处理信息下发到加速卡,并将完整样本存入输入内存,该样本处理信息包括输入内存和输出内存的地址,所述输入内存和输出内存位于所述硬件加速卡;计算完成消息接收模块,其被配置为,接收所述硬件加速卡上报的计算完成消息。
[0010]根据本专利技术的一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,用于执行上述数据调度方法。
[0011]根据本专利技术的方法和设备能够避免服务器频繁对每个元素的数据进行调度,大大节约了服务器时间,降低了输出延时。此外,由于加速卡可执行的指令按一次循环展开,展开后的指令总长度大幅缩小,避免了很多无效计算,而且指令更有可能保存在加速卡处理器的缓存器中,从而减少了对内存的访问,降低了延时。
附图说明
[0012]附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。
[0013]图1为根据本专利技术的数据调度方法的服务器侧的流程图;图2为根据本专利技术的数据调度方法的加速卡侧的流程图;图3为示出根据本专利技术的数据调度方法的框图。
具体实施方式
[0014]下面将参照附图来详细描述本专利技术的各种示例性实施例。对示例性实施例的描述仅仅是说明性的,并不作为对本专利技术及其应用或使用的任何限制。本专利技术可以以许多不同的形式实现,不限于这里所述的实施例。提供这些实施例是为了使本专利技术透彻且完整,并且向本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:陶洁李敏丽秦博
申请(专利权)人:瀚博半导体上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1