循环任务的生成、执行方法、装置、AI芯片及存储介质与流程

文档序号:28622364发布日期:2022-01-22 13:33阅读:165来源:国知局
循环任务的生成、执行方法、装置、AI芯片及存储介质与流程
循环任务的生成、执行方法、装置、ai芯片及存储介质
技术领域
1.本发明实施例涉及计算机深度学习技术,尤其涉及一种循环任务的生成、执行方法、装置、ai芯片及存储介质。


背景技术:

2.在深度学习领域,需要大量的数据来对网络进行训练,也就是使用特定的神经网络算法,对数据进行多轮的运算,从而生成一个可以使用的推理网络。由于通用cpu(central processing unit,中央处理器)并不擅长处理这种数据量较大,逻辑较单一的运算,所以神经网络中的训练,通常是使用gpu(graphics processing unit,图形处理器)或者专用的ai(artificial intelligence,人工智能)芯片来做运算。
3.在图1a中示出了现有技术中不同器件的硬件架构演进图,如图1a所示,cpu的alu(arithmetic and logic unit,算数逻辑单元)较少,有control(控制)逻辑,可以做更多更灵活的控制;gpu则通常会有大量alu,也会有大块的dram(dynamic random access memory,动态随机存取存储器);ai芯片则通常是大量的alu加多级的内存系统l。当然除了架构不同,ai芯片的alu会集成更多深度学习中需要的张量指令,对深度学习更加友好。ai芯片为了加速数据处理,添加了多级存储,离alu越近的存储,速度也越快,相对的容量也会越小。这势必会带来一个问题,那就是如何将数据在不同层级存储之间搬运。通常ai芯片会包含一个调度数据搬运请求的硬件设备,由这个设备再将请求配置到执行请求的硬件中。
4.现有的处理数据搬运的方法,就是ai软件程序不停的向调度请求的硬件设备发送这种请求来完成。而这种处理请求的方法,使处理调度的硬件设备解析请求的时间较长,当数据量很大且集中的时候,请求会堆积,处理请求的硬件设备难以及时处理请求,导致本该连续的数据处理操作会有很多间隙,影响最终性能。


技术实现要素:

5.本发明提供一种循环任务的生成、执行方法、装置、ai芯片及存储介质,极大简化ai软件程序发送请求的操作,减轻搬运请求调度设备的解析负担,提升了深度学习算法的整体运行效率。
6.第一方面,本发明实施例提供了一种循环任务的生成方法,由ai芯片中的软件栈执行,该方法包括:在检测到对目标数据块的数据搬运请求,创建目标循环任务;根据所述数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务;如果确定所述数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任务之间的依赖关系;将各所述重复执行任务和所述依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求。
7.第二方面,本发明实施例还提供了一种循环任务的执行方法,由ai芯片中的搬运请求调度设备执行,该方法包括:在接收到循环任务处理请求时,对所述循环任务处理请求中包括的循环任务进行解析;根据解析结果中的各重复执行任务,对ai芯片中的各执行节点进行搬运任务配置;根据解析结果中各相邻数据搬运层级的重复执行任务之间的依赖关系,配置不同执行节点间的数据搬运配合方式;触发各执行节点按照所配置的数据搬运配合方式,执行所配置的搬运任务。
8.第三方面,本发明实施例还提供了一种循环任务生成装置,由ai芯片中的软件栈执行,该装置包括:目标循环任务创建模块,用于在检测到对目标数据块的数据搬运请求,创建目标循环任务;重复执行任务形成模块,用于根据所述数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务;依赖关系建立模块,用于如果确定所述数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任务之间的依赖关系;循环任务处理请求发送模块,用于将所述重复执行任务和所述依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求。
9.第四方面,本发明实施例还提供了一种循环任务的执行装置,由ai芯片中的搬运请求调度设备执行,该装置包括:循环任务解析模块,用于在接收到循环任务处理请求时,对所述循环任务处理请求中包括的循环任务进行解析;搬运任务配置模块,用于根据解析结果中的各重复执行任务,对ai芯片中的各执行节点进行搬运任务配置;数据搬运配合方式配置模块,用于根据解析结果中各相邻数据搬运层级的重复执行任务之间的依赖关系,配置不同执行节点间的数据搬运配合方式;执行节点触发模块,用于触发各执行节点按照所配置的数据搬运配合方式,执行所配置的搬运任务。
10.第五方面,本发明实施例还提供了一种ai芯片,包括:软件栈、搬运请求调度设备以及至少一个执行节点;所述软件栈,用于执行如本发明任意实施例所述的由软件栈执行的循环任务的生成方法;所述搬运请求调度设备,用于执行如本发明任意实施例所述的由搬运请求调度设备执行的循环任务的执行方法。
11.第五方面,本发明实施例还提供了一种计算机可执行指令的存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如本发明任意实施例所述的由软件栈执
行的循环任务的生成方法,或者,实现如本发明任意实施例所述的由搬运请求调度设备执行的循环任务的执行方法。
12.本发明实施例通过在检测到对目标数据块的数据搬运请求,创建目标循环任务;根据数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务;如果确定数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任务之间的依赖关系;将各重复执行任务和依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求的技术手段,解决现有技术中当数据搬运请求量大且集中时,ai软件程序一个个不停的向处理调度的硬件设备发送请求,导致处理调度的硬件设备解析请求的时间较长,使请求堆积而难以及时处理请求的问题,极大简化ai软件程序发送请求的操作,减轻搬运请求调度设备的解析负担,提升了深度学习算法的整体运行效率。
附图说明
13.图1a为现有技术中不同器件的硬件架构演进图;图1b为本发明实施例一提供了一种循环任务的生成方法的流程图;图1c为本发明实施例一提供了一种建立依赖关系的具体应用场景;图1d为本发明实施例一提供了一种循环任务的生成方法的具体应用场景;图2a为本发明实施例二提供了一种循环任务的执行方法的流程图;图2b为本发明实施例二提供了一种循环任务的执行方法的具体应用场景;图3为本发明实施例三提供了一种循环任务的生成装置的结构示意图;图4为本发明实施例四提供了一种循环任务的执行装置的结构示意图;图5为本发明实施例五提供了一种ai芯片的结构示意图。
具体实施方式
14.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
15.实施例一图1b为本发明实施例一提供的一种循环任务的生成方法的流程图,本实施例可适用于数据搬运量大且集中的情况,该方法可以由ai芯片中的软件栈执行,该方法可以由循环任务的生成装置来执行,该装置可以通过软件和/或硬件的方式实现,并一般可以集成在ai芯片中,具体包括如下步骤:s110、在检测到对目标数据块的数据搬运请求,创建目标循环任务。
16.其中,目标数据块可以是指需要从一个存储区域搬运到一个或者多个存储区域的数据。数据搬运请求可以是指对目标数据块提出搬运要求。例如,某一目标数据块需要从第一级存储区域搬运至第三级存储区域,那么将该目标数据块从第一级存储区域被搬运至第三级存储区域,即为对该目标数据块的数据搬运请求。目标循环任务可以是指针对目标数据块的循环性的数据搬运请求所建立的任务。
17.具体的,检测到对目标数据块的搬运请求时,可以创建与搬运请求对应的循环任
务。
18.在本实施例的一个可选的实施方式中,可以在所述目标数据块的数据大小超过等于预设的数据量门限值时,创建与搬运请求对应的循环任务。
19.其中,数据量门限值可以是指被搬运的目标数据块的数据大小的下限值。可以理解,在目标数据块的数据大小很大的时候,有必要多次拆分进行搬运, 如果不太大的话,可以构建一个或者几个基本的搬运请求实现,例如,需要搬运的数据块,仅需要一个基础请求就能完成,则不需要拆分请求实现搬运。
20.在本实施例的另一个可选的实施方式中,可以在需要将同一目标数据块搬运至ai芯片内多个不同的位置时,创建与搬运请求对应的循环任务。
21.可以理解的是,当在需要将同一目标数据块搬运至ai芯片内多个不同的位置时,需要对同一目标数据块进行输入地址相同的一次搬运,将数据放置到下一步存储的多个不同的输出地址上,如果搬运设备不支持广播模式,也需要循环执行多个单次搬运任务。
22.s120、根据所述数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务。
23.其中,数据搬运层级数可以是指目标数据块被搬运的层数。数据搬运层级可以是指目标数据块从一级存储区域被搬运至相邻的另一级存储区域之间的层级差。例如,某一目标数据块需要从第一级存储区域搬运至第二级存储区域再搬运至第三级存储区域,那么该数据搬运请求中的数据搬运层级数为2,从第一级存储区域搬运至第二级存储区域为一个数据搬运层级。搬运描述参数可以是指在每个数据搬运层级下对目标数据块的搬运情况的描述信息,例如,目标数据块从哪里搬运、目标数据块被搬入哪里等描述信息。重复执行任务可以是指于每个数据搬运层级分别对应的数据搬运任务,各重复执行任务之间可以仅是目标数据块搬出与搬入地址的差异。
24.具体的,可以根据数据搬运请求中包含的数据搬运层级数,结合与每个数据搬运层级对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务。执行一个重复执行任务,当前处理的目标数据块可以被搬运一个数据搬运层级。
25.在本发明的一个可选实施例中,根据所述数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务,可以包括:根据与各数据搬运层级对应的输入输出地址范围、输入输出维度范围和层级单次基准数据搬运量,确定与各数据搬运层级对应的首个单次搬运任务的任务参数、重复搬运次数和至少一个任务参数的递增步长;根据与各数据搬运层级对应的首个基准任务的任务参数、重复搬运次数和至少一个任务参数的递增步长,形成与每个数据搬运层级对应的重复执行任务。
26.其中,输入输出地址范围可以是指目标数据块在初始被搬出的存储区域与最终被搬入的存储区域中的地址区间。输入输出维度范围可以是目标数据块被搬出和被搬入时的数据维度区间。层级单次基准数据搬运量可以是指在单个数据搬运层级中搬运的数据量。单次搬运任务可以是指目标数据块中符合层级单次基准数据搬运量的数据从一个存储区域被搬运至相邻另一个存储区域的工作。
27.可以理解的是,一个数据搬运层级对应一个重复执行任务,一个重复执行任务中,
包括有多个单次搬运任务,上述多个单次搬运任务可以通过首个单次搬运任务的任务参数、重复搬运次数和至少一个任务参数的递增步长共同描述。
28.任务参数可以是描述单次搬运任务的信息,任务参数可以包括:输入地址、输入维度、单次数据搬运量、输出地址以及输出维度。单次数据搬运量可以是单次搬运任务对应的数据搬运量。重复搬运次数可以是指在每个数据搬运层级中,目标数据块从被搬出地址至被搬入地址之间,所经历的全部单次搬运任务的次数,每一个重复搬运次数对应的层级数可以为单个数据搬运层级。递增步长可以是指针对同一数据搬运层级数的重复执行任务来说,后一个单次搬运任务相对于前一个单次搬运任务,任务参数依次增加的量。
29.一般情况下,单次搬运任务的输入地址、输入维度、输出地址和输出维度等任务参数均可以设置相应的递增步长。基准任务可以理解为一个参照任务,基准任务可以为首个单次搬运任务。
30.具体的,可以根据与各数据搬运层级对应的输入输出地址范围、输入输出维度范围和层级单次基准数据搬运量,确定与各数据搬运层级对应的首个单次搬运任务的任务参数、重复搬运次数和至少一个任务参数的递增步长;根据与各数据搬运层级对应的首个基准任务的任务参数、重复搬运次数和至少一个任务参数的递增步长,形成与每个数据搬运层级对应的重复执行任务。
31.s130、如果确定所述数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任务之间的依赖关系。
32.其中,依赖关系可以是指相邻数据搬运层级分别对应的重复执行任务之间的逻辑影响关系,可以理解为,相邻两个重复执行任务中的前一个重复执行任务的进度与后一个重复执行任务的进度相互影响。
33.可选的,如果确定数据搬运请求中的数据搬运层级数为多个,可以在与每个数据搬运层级分别对应的,多个重复执行任务的各相邻重复任务之间建立影响关系(即,依赖关系)。
34.在本发明的一个可选实施例中,建立各相邻数据搬运层级的重复执行任务之间的依赖关系,可以包括:获取与相邻的第一数据搬运层级和第二数据搬运层级分别对应的第一重复执行任务和第二重复执行任务;其中,第二重复执行任务用于搬运第一重复执行任务的搬运后结果;将第一重复执行任务加入至第二重复执行任务的生产者请求列表中,并标注生产次数,和生产数据大小;将第二重复执行任务加入至第一重复执行任务的消费者请求列表中,并标注消费次数和消费数据大小,以形成第一重复执行任务和第二重复执行任务之间的依赖关系。
35.其中,第一数据搬运层级和第二数据搬运层级可以是指每相邻的两个数据搬运层级中的前一个数据搬运层级和后一个数据搬运层级。第一重复执行任务和第二重复执行任务可以是指与第一数据搬运层级和第二数据搬运层级分别对应的重复执行任务。生产者请求列表可以是指第二重复执行任务的搬运来源列表,第二重复执行任务的搬运来源可以是第一重复执行任务的搬运后结果。生产次数可以是指第一重复执行任务搬运数据的次数。生产数据大小可以是指第一重复执行任务所搬运数据的大小。消费者请求列表可以是指第一重复执行任务搬运后数据的去向列表,第一重复执行任务的搬运后结果可以被第二重复
执行任务搬运。消费次数可以是第二重复执行任务从第一重复执行任务的搬运后结果中搬运数据的次数。消费数据大小可以是第二重复执行任务从第一重复执行任务的搬运后结果中搬运数据的大小。
36.具体的,以两个相邻的数据搬运层级为一组进行说明,获取与两个相邻的数据搬运层级分别对应的第一重复执行任务和第二重复执行任务;可以将第一重复执行任务添加至第二重复执行任务的生产者请求列表中(即,第一重复执行任务的搬运后结果为第二重复执行任务提供搬运来源),标注第一重复执行任务的生产次数和生产数据大小;可以将第二重复执行任务添加至第一重复执行任务的消费者请求列表中(即,第二重复执行任务从第一重复执行任务的搬运后结果中搬运数据),标注第二重复执行任务对第一重复执行任务的搬运后结果的消费次数和消费数据大小;从而建立起第一重复执行任务和第二重复执行任务之间的依赖关系。需要说明,可以根据第一重复执行任务标注的生产次数和预设的生产次数阈值,第二重复执行任务自动触发消费操作。
37.示例性的,图1c为本发明实施例一提供的一种建立依赖关系的具体应用场景。对于生产请求a和消费请求b,将a生产数据块1,而b从数据块1中消费数据块1-1、数据块1-2、数据块1-3和数据块1-4;从而a与b的依赖关系建立成功。
38.s140、将各所述重复执行任务和所述依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求。
39.其中,循环任务处理请求可以是指与目标循环任务对应的对目标数据块的循环搬运任务的请求。
40.可选的,可以将各重复执行任务和与各重复任务之间的依赖关系,封装于一个循环任务中作为目标循环任务,从而可以将目标循环任务以循环任务请求的形式发送给ai芯片中的搬运请求调度设备。
41.本实施例的技术方案,通过在检测到对目标数据块的数据搬运请求,创建目标循环任务;根据数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务;如果确定数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任务之间的依赖关系;将各重复执行任务和依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求的技术手段,解决了现有技术中当数据搬运请求量大且集中时,ai软件程序一个个不停的向处理调度的硬件设备发送请求,导致处理调度的硬件设备解析请求的时间较长,使请求堆积而难以及时处理请求的问题,极大简化ai软件程序发送请求的操作,减轻搬运请求调度设备的解析负担,提升了深度学习算法的整体运行效率。
42.示例性的,图1d为本发明实施例一提供的一种循环任务的生成方法的具体应用场景。创建循环任务,重复生成多个单级请求;建立各单级请求间的依赖关系,将全部单级请求绑定到循环任务中生成循环任务处理请求;从而发送循环任务处理请求至执行设备。
43.其中,一个单级请求是指与一个数据搬运层级对应的重复执行任务。如果需要对一个数据块进行多级搬运(也即,存在多个数据搬运层级),则需要相应重复生成多个单级请求。
44.实施例二图2a为本发明实施例二提供的一种循环任务的执行方法的流程图,本实施例在上
述各实施例的基础上,本实施例可适用于存在大量数据搬运请求且请求集中的情况,该方法可以由ai芯片中的搬运请求调度设备执行。该方法可以由循环任务的执行装置来执行,该装置可以通过软件和/或硬件的方式实现,并一般可以集成在ai芯片中,具体包括如下步骤:s210、在接收到循环任务处理请求时,对所述循环任务处理请求中包括的循环任务进行解析。
45.具体的,ai芯片中的搬运请求调度设备接收到软件栈发送的循环任务处理请求时,可以对请求中包括的循环任务进行解析。
46.s220、根据解析结果中的各重复执行任务,对ai芯片中的各执行节点进行搬运任务配置。
47.其中,执行节点可以是指用于执行各搬运任务的节点,例如,算术逻辑单元(arithmetic and logic unit,alu)。
48.在本实施例中,一个重复执行任务中一般包括有:首个基准任务的任务参数、重复搬运次数和至少一个任务参数的递增步长。
49.在一种情况下,如果执行节点自身支持执行重复任务,则可以直接使用重复执行任务中的重复搬运次数以及任务参数的递增步长对执行节点进行统一配置,进而,该执行节点可以依次执行与该重复执行任务对应的多个单次搬运任务。
50.在另一种情况下,如果执行节点自身不支持执行重复任务,则需要搬运请求调度设备形成与解析结果中每个重复执行任务对应的多个单次搬运任务,并将与同一重复执行任务对应的多个单次搬运任务配置到ai芯片中的同一执行节点中。
51.在另一种情况下,当待配置的执行节点的硬件支持广播功能时,可以将该执行节点所需执行的,将一个数据块搬运至多个位置的循环搬运任务,直接配置给该执行节点,由该执行节点通过广播的方式,将这一循环搬运任务广播该多个位置进行相同数据块的搬运过程;在另一种情况下,当待配置的执行节点的硬件不支持广播功能时,可以将该执行节点所需执行的,将一个数据块搬运至多个位置的循环搬运任务,拆分为多个单次搬运任务,并通过将上述多个单次搬运任务分别配置在该执行节点上的方式,使得该执行节点执行向多个位置搬运相同数据块的搬运操作。
52.在本实施例的一个可选实施方式中,根据解析结果中的各重复执行任务对ai芯片中的各执行节点进行搬运任务配置,可以包括:形成与解析结果中每个重复执行任务对应的多个单次搬运任务;将与同一重复执行任务对应的多个单次搬运任务配置到ai芯片中的同一执行节点中。
53.可选的,可以根据对循环任务处理请求的解析结果,形成与解析结果中每个重复执行任务对应的多个单次搬运任务,并将与同一重复执行任务对应的多个单次搬运任务配置到ai芯片中同一执行节点中。另外,由于同一个重复执行任务对应的多个单次搬运任务的很多配置是复用的(例如输入维度、输出维度和单次数据搬运量),所以通常第一次配置的单次搬运任务是配置任务参数最多的,后续的单次搬运任务只需要配置需要改动的任务参数就可以(比如输入地址和输出地址会变,需要依次配置,但是输入维度、输出维度和单次数据搬运量参数如果不改变,就不需要重复配置),这样设置的好处在于可以节省执行节
点的配置时间,提高工作效率。
54.在本发明的一个可选实施例中,形成与解析结果中每个重复执行任务对应的多个单次搬运任务,可以包括:在所述解析结果中,提取与当前处理的目标重复执行任务对应的首个单次搬运任务的任务参数、重复搬运次数和至少一个任务参数的递增步长;获取所述首个单次搬运任务的任务参数作为任务构建参数;根据任务构建参数,建立单次搬运任务,并更新得到当前的单次搬运任务总数量;根据所述至少一个任务参数的递增步长,更新所述任务构建参数;返回执行根据任务构建参数,建立单次搬运任务,并更新得到当前的单次搬运任务总数量的操作,直至当前的单次搬运任务总数量达到重复搬运次数。
55.其中,目标重复执行任务可以是指从全部重复执行任务中选定的某个或者某些执行任务。任务构建参数可以是指用于构建单次搬运任务的参数,任务构建参数可以选择首个单次搬运任务的任务参数。单次搬运任务总数量可以是指一个重复执行任务构建的单次搬运任务的总数量,单次搬运任务总数量一般与重复搬运次数一致。
56.可选的,在对循环任务处理请求的解析结果中,提取出与当前处理的重复执行任务对应的首个单次搬运任务的任务参数、重复搬运次数和至少一个任务参数的递增步长;将首个单次搬运任务的任务参数作为后续单次搬运任务的构建参数,从而建立后续的单次搬运任务,从而可以更新得到当前的单次搬运任务总数量;进一步的,根据至少一个任务参数的递增步长,更新任务构建参数(尤其是输入地址和输出地址),可以重新根据更新后的任务构建参数,再次建立一个单次搬运任务,并更新得到当前的单次搬运任务总数量;重复执行根据不断更新的任务构建参数,建立单次搬运任务的操作,直至当前的单次搬运任务总数量达到当前处理的重复执行任务的重复搬运次数。
57.s230、根据解析结果中各相邻数据搬运层级的重复执行任务之间的依赖关系,配置不同执行节点间的数据搬运配合方式。
58.其中,数据搬运配合方式可以是与相邻数据搬运层级的重复执行任务之间依赖关系对应的数据搬运方式。
59.具体的,搬运请求调度设备可以根据解析结果中的依赖关系,配置不同执行节点间数据搬运配合方式。例如,相邻执行节点中前一个执行节点执行某个重复执行任务搬运数据的次数达到预设阈值,那么后一个执行节点可以自动触发从前一个执行节点的搬运后结果中开始搬运数据。
60.s240、触发各执行节点按照所配置的数据搬运配合方式,执行所配置的搬运任务。
61.具体的,各执行节点按照与依赖关系对应的数据搬运配合方式,执行与每个执行节点分别匹配的搬运任务。
62.本实施例的技术方案,通过在接收到循环任务处理请求时,对循环任务处理请求中包括的循环任务进行解析;根据解析结果中的各重复执行任务,对ai芯片中的各执行节点进行搬运任务配置;根据解析结果中各相邻数据搬运层级的重复执行任务之间的依赖关系,配置不同执行节点间的数据搬运配合方式;触发各执行节点按照所配置的数据搬运配合方式,执行所配置的搬运任务的技术手段,解决了现有技术中当数据搬运请求量大且集中时,处理调度的硬件设备解析请求的时间较长,使请求堆积而处理调度的硬件设备难以及时处理请求,导致本该连续的数据处理操作会有很多间隙,影响最终性能的问题,极大节
省搬运请求调度设备解析搬运请求的时间,充分利用了ai设备的性能,提升了深度学习算法的整体运行效率。
63.示例性的,图2b为本发明实施例二提供的一种循环任务的执行方法的具体应用场景。接收到循环任务处理请求后,创建线程用来处理这个请求;解析循环任务处理请求,获取多个单级请求,进而解析单级请求,根据解析结果,重复将循环任务处理请求中所有单级请求都配置到硬件设备中;分析各单级请求间的依赖关系,将依赖关系配置到软硬件的同步逻辑中;启动第一个单级请求,后面的单级请求会通过依赖关系,自动触发执行。
64.实施例三图3为本发明实施例三提供的一种循环任务的生成装置的结构示意图,该装置由ai芯片中的软件栈执行。该装置可以包括:目标循环任务创建模块310、重复执行任务形成模块320、依赖关系建立模块330和循环任务处理请求发送模块340。其中:目标循环任务创建模块310,用于在检测到对目标数据块的数据搬运请求,创建目标循环任务;重复执行任务形成模块320,用于根据所述数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务;依赖关系建立模块330,用于如果确定所述数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任务之间的依赖关系;循环任务处理请求发送模块340,用于将所述重复执行任务和所述依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求。
65.本实施例的技术方案,通过在检测到对目标数据块的数据搬运请求,创建目标循环任务;根据数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务;如果确定数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任务之间的依赖关系;将各重复执行任务和依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求的技术手段,解决了现有技术中当数据搬运请求量大且集中时,ai软件程序一个个不停的向处理调度的硬件设备发送请求,导致处理调度的硬件设备解析请求的时间较长,使请求堆积而难以及时处理请求的问题,极大简化ai软件程序发送请求的操作,减轻搬运请求调度设备的解析负担,提升了深度学习算法的整体运行效率。
66.上述装置中,可选的是,重复执行任务形成模块320,可以具体用于:根据与各数据搬运层级对应的输入输出地址范围、输入输出维度范围和层级单次基准数据搬运量,确定与各数据搬运层级对应的首个单次搬运任务的任务参数、重复搬运次数和至少一个任务参数的递增步长;根据与各数据搬运层级对应的首个基准任务的任务参数、重复搬运次数和至少一个任务参数的递增步长,形成与每个数据搬运层级对应的重复执行任务。
67.上述装置中,可选的是,所述任务参数包括:输入地址、输入维度、单次数据搬运量、输出地址以及输出维度。
68.上述装置中,可选的是,依赖关系建立模块330,可以具体用于:
获取与相邻的第一数据搬运层级和第二数据搬运层级分别对应的第一重复执行任务和第二重复执行任务;其中,第二重复执行任务用于搬运第一重复执行任务的搬运后结果;将第一重复执行任务加入至第二重复执行任务的生产者请求列表中,并标注生产次数,和生产数据大小;将第二重复执行任务加入至第一重复执行任务的消费者请求列表中,并标注消费次数和消费数据大小,以形成第一重复执行任务和第二重复执行任务之间的依赖关系。
69.本发明实施例所提供的循环任务的生成装置可执行本发明任意实施例所提供的循环任务的生成方法,具备执行方法相应的功能模块和有益效果。
70.实施例四图4为本发明实施例四提供的一种循环任务的执行装置的结构示意图,该装置由ai芯片中的搬运请求调度设备执行,该装置可以包括:循环任务解析模块410、搬运任务配置模块420、数据搬运配合方式配置模块430和执行节点触发模块440。其中:循环任务解析模块410,用于在接收到循环任务处理请求时,对所述循环任务处理请求中包括的循环任务进行解析;搬运任务配置模块420,用于根据解析结果中的各重复执行任务,对ai芯片中的各执行节点进行搬运任务配置;数据搬运配合方式配置模块430,用于根据解析结果中各相邻数据搬运层级的重复执行任务之间的依赖关系,配置不同执行节点间的数据搬运配合方式;执行节点触发模块440,用于触发各执行节点按照所配置的数据搬运配合方式,执行所配置的搬运任务。
71.本实施例的技术方案,通过在接收到循环任务处理请求时,对循环任务处理请求中包括的循环任务进行解析;根据解析结果中的各重复执行任务,对ai芯片中的各执行节点进行搬运任务配置;根据解析结果中各相邻数据搬运层级的重复执行任务之间的依赖关系,配置不同执行节点间的数据搬运配合方式;触发各执行节点按照所配置的数据搬运配合方式,执行所配置的搬运任务的技术手段,解决了现有技术中当数据搬运请求量大且集中时,处理调度的硬件设备解析请求的时间较长,使请求堆积而处理调度的硬件设备难以及时处理请求,导致本该连续的数据处理操作会有很多间隙,影响最终性能的问题,极大节省搬运请求调度设备解析搬运请求的时间,充分利用了ai设备的性能,提升了深度学习算法的整体运行效率。
72.上述装置中,可选的是,搬运任务配置模块420,可以包括:单次搬运任务形成单元,用于形成与解析结果中每个重复执行任务对应的多个单次搬运任务;执行节点配置单元,用于将与同一重复执行任务对应的多个单次搬运任务配置到ai芯片中的同一执行节点中。
73.上述装置中,可选的是,单次搬运任务形成单元,可以具体用于:在所述解析结果中,提取与当前处理的目标重复执行任务对应的首个单次搬运任务的任务参数、重复搬运次数和至少一个任务参数的递增步长;获取所述首个单次搬运任务的任务参数作为任务构建参数;
根据任务构建参数,建立单次搬运任务,并更新得到当前的单次搬运任务总数量;根据所述至少一个任务参数的递增步长,更新所述任务构建参数;返回执行根据任务构建参数,建立单次搬运任务,并更新得到当前的单次搬运任务总数量的操作,直至当前的单次搬运任务总数量达到重复搬运次数。
74.本发明实施例所提供的循环任务的执行装置可执行本发明任意实施例所提供的循环任务的执行方法,具备执行方法相应的功能模块和有益效果。
75.实施例五图5为本发明实施例五提供的一种人工智能ai芯片的结构示意图,如图5所示,该芯片可以包括软件栈、搬运请求调度设备以及至少一个执行节点。
76.所述软件栈,用于执行如本发明任意实施例所述的由软件栈执行的循环任务的生成方法;所述搬运请求调度设备,用于执行如本发明任意实施例所述的由搬运请求调度设备执行的循环任务的执行方法。
77.其中,由软件栈执行的循环任务的生成方法可以包括:在检测到对目标数据块的数据搬运请求,创建目标循环任务;根据所述数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务;如果确定所述数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任务之间的依赖关系;将各所述重复执行任务和所述依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求。
78.由搬运请求调度设备执行的循环任务的执行方法可以包括:在接收到循环任务处理请求时,对所述循环任务处理请求中包括的循环任务进行解析;根据解析结果中的各重复执行任务,对ai芯片中的各执行节点进行搬运任务配置;根据解析结果中各相邻数据搬运层级的重复执行任务之间的依赖关系,配置不同执行节点间的数据搬运配合方式;触发各执行节点按照所配置的数据搬运配合方式,执行所配置的搬运任务。
79.实施例六本发明实施例六还提供一种计算机可执行指令的存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如本发明任意实施例所述的由软件栈执行的循环任务的生成方法,或者,实现如本发明任意实施例所述的由搬运请求调度设备执行的循环任务的执行方法。
80.其中,由搬运请求调度设备执行的循环任务的生成方法可以包括:在检测到对目标数据块的数据搬运请求,创建目标循环任务;根据所述数据搬运请求中的数据搬运层级数,以及与每个数据搬运层级分别对应的搬运描述参数,形成与每个数据搬运层级分别对应的重复执行任务;如果确定所述数据搬运层级数为多个,则建立各相邻数据搬运层级的重复执行任
务之间的依赖关系;将各所述重复执行任务和所述依赖关系,封装于目标循环任务中,并向ai芯片中的搬运请求调度设备发送与目标循环任务匹配的循环任务处理请求。
81.由搬运请求调度设备执行的循环任务的执行方法可以包括:在接收到循环任务处理请求时,对所述循环任务处理请求中包括的循环任务进行解析;根据解析结果中的各重复执行任务,对ai芯片中的各执行节点进行搬运任务配置;根据解析结果中各相邻数据搬运层级的重复执行任务之间的依赖关系,配置不同执行节点间的数据搬运配合方式;触发各执行节点按照所配置的数据搬运配合方式,执行所配置的搬运任务。
82.当然,本发明实施例所提供的一种计算机可执行指令的存储介质,其上存储有计算机程序,该程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的循环任务的生成方法,或者,循环任务的执行方法中的相关操作。
83.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
84.值得注意的是,上述循环任务的生成装置和循环任务的执行装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
85.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1