一种分布式处理系统、任务调度方法、参数确定方法
- 国知局
- 2024-07-31 22:41:07
本发明涉及人工智能,具体涉及一种分布式处理系统、任务调度方法、参数确定方法及装置。
背景技术:
1、随着人工智能技术的方法,机器学习模型得到越来越广泛的应用,机器学习算法可以应用于自然语言处理、图像识别、设备故障预测等。
2、transformer是一种神经网络模型结构,能够应用于回答问题、文本生成等应用场景。transformer模型的计算过程中,主要计算模式为矩阵-向量乘法,上述计算模式在图形处理器(graphics processing unit,简称gpu)上运行时效率很低。为了提高计算效率通常会将多个请求打包为一个矩阵,与参数矩阵进行矩阵-矩阵乘法运算。随着打包大小的增加,gpu的运行效率逐步提升,但由于gpu的内存容量有限,能够存储的数据有限,在进行模型计算时,限制了gpu的计算效率。
技术实现思路
1、针对现有技术中的问题,本发明实施例提供一种分布式处理系统、任务调度方法、参数确定方法及装置,能够至少部分地解决现有技术中存在的问题。
2、第一方面,本发明提出一种分布式处理系统,包括第一模块和第二模块,其中:
3、所述第一模块与每个第二模块通信连接;所述第一模块包括神经网络加速器,所述第二模块包括至少一个处理单元;
4、所述神经网络加速器用于根据序列生成任务的输入特征向量计算获得第一特征向量并将所述第一特征向量发送给所述至少一个处理单元;所述神经网络加速器还用于根据第二特征向量计算获得对应的输出结果;
5、所述至少一个处理单元用于存储第一特征向量,根据所述第一特征向量计算获得第二特征向量并将所述第二特征向量发送给所述神经网络加速器。
6、进一步地,所述神经网络加速器的数量为多个。
7、进一步地,所述神经网络加速器采用图形处理器。
8、进一步地,所述处理单元采用中央处理器、现场可编程逻辑门阵列或者图形处理器。
9、第二方面,本发明提出一种基于上述任一实施例所述的分布式处理系统的任务调度方法,包括:
10、接收至少一个序列生成任务;
11、根据所述序列生成任务的序列数量将所述序列生成任务划分为第一部分任务和第二部分任务;
12、对神经网络加速器和所述至少一个处理单元进行任务调度,使得所述神经网络加速器和所述至少一个处理单元交替并行处理第一部分任务和第二部分任务。
13、第三方面,本发明提出一种基于上述任一实施例所述的分布式处理系统的任务调度方法,包括:
14、接收多个序列生成任务;根据所述序列生成任务的序列数量将每个序列生成任务平均划分为第一序列集和第二序列集;
15、根据所述序列生成任务的生成长度、所述序列生成任务的序列数量和调度参数,获得拆分数量;其中,所述调度参数是预设的;所述序列生成任务的生成长度是预设的;根据所述调度参数和拆分数量对所述神经网络加速器和所述至少一个处理单元的当前处理序列进行调度,以缩短所述神经网络加速器和所述至少一个处理单元在交替并行处理所述多个序列生成任务的第一序列集和第二序列集的等待时间。
16、进一步地,所述根据所述序列生成任务的生成长度、所述序列生成任务的序列数量和调度参数,获得拆分数量包括:
17、根据公式c=[bf/(2s)],计算获得拆分数量c,其中,[]表示取整,b表示序列生成任务的序列数量,f表示调度参数,s表示生成长度。
18、第四方面,本发明提出一种基于上述任一实施例所述的分布式处理系统的参数确定方法,包括:
19、根据所述神经网络加速器对应的单次计算时长函数、生成长度、总延迟时间和序列数量的约束条件,获得序列生成任务的序列数量;其中,所述神经网络加速器对应的单次计算时长函数是测试所述第一模块单独处理单个序列生成任务的计算时长获得的;所述神经网络加速器对应的单次计算时长函数是序列生成任务的计算时长与序列数量的关系函数;
20、根据所述序列数量、所述生成长度、单位计算时长和所述神经网络加速器对应的单次计算时长函数,获得所述处理单元的数量;其中,所述单位计算时长是通过测试单个处理单元处理序列长度为1的单个元素的计算时长获得的。
21、进一步地,所述序列数量的约束条件为:t(b)<l/(2ns),其中,b表示所述序列数量,t(b)表示所述神经网络加速器对应的单次计算时长函数,n表示模型的层数,s表示生成长度。
22、进一步地,所述根据所述序列数量、所述生成长度、单位计算时长和所述神经网络加速器对应的单次计算时长函数,获得所述处理单元的数量包括:
23、根据公式m=(bsr)/(2t(b)),计算获得所述处理单元的数量m,其中,b表示所述序列数量,s表示生成长度,r单位计算时长,t(b)表示所述神经网络加速器对应的单次计算时长函数。
24、第五方面,本发明提出一种任务调度装置,包括:
25、第一接收单元,用于接收至少一个序列生成任务;
26、划分单元,用于根据所述序列生成任务的序列数量将所述序列生成任务划分为第一部分任务和第二部分任务;
27、第一调度单元,用于对神经网络加速器和所述至少一个处理单元进行任务调度,使得所述神经网络加速器和所述至少一个处理单元交替并行处理第一部分任务和第二部分任务。
28、第六方面,本发明提出一种任务调度装置,包括:
29、第二接收单元,用于接收批量序列生成任务;
30、第一获得单元,用于根据所述批量序列生成任务的生成长度、每个序列生成任务的序列数量和调度参数,获得拆分数量;其中,所述调度参数是预设的;所述批量序列生成任务的生成长度是预设的;
31、第二调度单元,用于根据所述调度参数和拆分数量对所述神经网络加速器和所述至少一个处理单元进行任务调度,以缩短所述神经网络加速器的和所述至少一个处理单元的等待时间。
32、第七方面,本发明提出一种参数确定装置,包括:
33、第二获得单元,用于根据所述神经网络加速器对应的单次计算时长函数、生成长度、总延迟时间和序列数量的约束条件,获得序列生成任务的序列数量;其中,所述神经网络加速器对应的单次计算时长函数是测试所述第一模块单独处理单个序列生成任务的计算时长获得的;所述神经网络加速器对应的单次计算时长函数是序列生成任务的计算时长与序列数量的关系函数;
34、第三获得单元,用于根据所述序列数量、所述生成长度、单位计算时长和所述神经网络加速器对应的单次计算时长函数,获得所述处理单元的数量;其中,所述单位计算时长是通过测试单个处理单元处理序列长度为1的单个元素的计算时长获得的。
35、第八方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述程序以实现上述任一实施例所述的方法。
36、第九方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一实施例所述的方法。
37、第十方面,本发明提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一实施例所述的方法。
38、本发明实施例提供的分布式处理系统、任务调度方法、参数确定方法及装置,包括第一模块和第二模块,所述第一模块与每个第二模块通信连接;所述第一模块包括神经网络加速器,所述第二模块包括至少一个处理单元;所述神经网络加速器用于根据序列生成任务的输入特征向量计算获得第一特征向量并将所述第一特征向量发送给所述至少一个处理单元;所述神经网络加速器还用于根据第二特征向量计算获得对应的输出结果;所述至少一个处理单元用于存储第一特征向量,根据所述第一特征向量计算获得第二特征向量并将所述第二特征向量发送给所述神经网络加速器,由于第一特征向量存储到处理单元,节省了神经网络加速器的内存占用,提高了单批次能够处理的序列生成任务的序列数量,提高了分布式处理系统的计算效率。
本文地址:https://www.jishuxx.com/zhuanli/20240730/194118.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。