一种神经网络处理器及其控制方法技术

技术编号:24252325 阅读:51 留言:0更新日期:2020-05-22 23:58
本申请属于芯片技术领域,尤其涉及一种神经网络处理器及其控制方法。所述神经网络处理器包括由多个单核神经网络处理器和外围模块构成的神经网络处理器簇;所述外围模块包括主控单元和DMA模块;所述DMA模块用于将第一任务描述符搬运至所述主控单元;所述主控单元用于对所述第一任务描述符进行解析,根据解析结果确定分配至各个选定处理器中的子任务;对所述第一任务描述符进行修改,得到与各个所述选定处理器分别对应的第二任务描述符;将各个第二任务描述符配置给对应的各个所述选定处理器,并启动各个所述选定处理器处理对应的子任务。通过主控单元对各个单核神经网络处理器的统一调度管理,使得神经网络处理器可以充分发挥其运算性能。

A neural network processor and its control method

【技术实现步骤摘要】
一种神经网络处理器及其控制方法
本申请属于芯片
,尤其涉及一种神经网络处理器及其控制方法。
技术介绍
随着人工智能技术的飞速发展,在各种应用场景下对于神经网络处理器的算力要求也越来越高,单核的神经网络处理器已经难以满足现有的应用需求。在这种情况下,多核的神经网络处理器应运而生,通过多个单核神经网络处理器的并行运算,极大提升了整体算力。但是,在现有技术中,各个单核神经网络处理器之间往往缺乏有效的协调控制,极易导致任务重复配置、漏配以及配置不均的情况出现,难以充分发挥多核神经网络处理器的性能。
技术实现思路
有鉴于此,本申请实施例提供了一种神经网络处理器及其控制方法,以解决在现有的多核神经网络处理器中,各个单核神经网络处理器之间往往缺乏有效的协调控制,极易导致任务重复配置、漏配以及配置不均的情况出现,难以充分发挥其性能的问题。本申请实施例的第一方面提供了一种神经网络处理器,所述神经网络处理器包括由N个单核神经网络处理器和外围模块构成的神经网络处理器簇,N为大于1的整数;所述外围模块包括主控单元和DMA模块;所述DMA模块用于将第一任务描述符搬运至所述主控单元,所述第一任务描述符用于描述分配至所述神经网络处理器中的任务的信息;所述主控单元用于对所述第一任务描述符进行解析,根据解析结果确定分配至各个选定处理器中的子任务;对所述第一任务描述符进行修改,得到与各个所述选定处理器分别对应的第二任务描述符;将各个第二任务描述符配置给对应的各个所述选定处理器,并启动各个所述选定处理器处理对应的子任务;所述选定处理器为从N个所述单核神经网络处理器中选取的用于执行所述任务的处理器,所述第二任务描述符用于描述分配至所述选定处理器中的子任务的信息。进一步地,所述外围模块还可以包括簇接口、信箱模块、总线转发模块、程序存储器和数据存储器;所述簇接口为所述神经网络处理器簇的从接口,用于所述神经网络处理器簇的外部CPU访问和配置所述外围模块以及每个单核神经网络处理器的内部资源;所述信箱模块用于存放所述单核神经网络处理器或者所述神经网络处理器簇的配置信息以及运行过程中的状态信息;所述总线转发模块为所述神经网络处理器簇的顶层AXI请求的收集分发模块,用于收集各个单核神经网络处理器以及所述神经网络处理器簇顶层的主控单元的AXI请求,并将请求经过处理之后发到芯片顶层;所述程序存储器用于存放所述主控单元的程序;所述数据存储器用于存放所述主控单元运行过程中产生的数据。进一步地,所述单核神经网络处理器包括:单核接口、单核信箱模块和总线模块;所述单核接口为所述单核神经网络处理器的从接口,用于所述神经网络处理器簇的外部CPU或者所述主控单元访问和配置所述单核神经网络处理器的内部资源;所述单核信箱模块用于存放所述单核神经网络处理器的配置信息以及所述单核神经网络处理器运行过程中的状态信息;所述总线模块为所述单核神经网络处理器的AXI总线。进一步地,所述单核神经网络处理器还包括共享参数搬运模块,所述共享参数搬运模块用于将共享的参数从所述单核神经网络处理器外部搬运至所述单核神经网络处理器内部的数据存储器中;所述总线转发模块中包括与各个单核神经网络处理器分别对应的参数共享逻辑模块,所述参数共享逻辑模块用于进行所述单核神经网络处理器之间参数共享逻辑的判断以及流程控制;所述参数共享逻辑模块包括命令缓存和数据缓存,所述命令缓存用于缓存所述单核神经网络处理器发出的参数读取命令,所述数据缓存用于缓存所述参数共享逻辑模块读回的数据。所述神经网络处理器执行预设的计算机程序时实现如下步骤:获取第一任务描述符,所述第一任务描述符用于描述分配至所述神经网络处理器中的任务的信息;对所述第一任务描述符进行解析,根据解析结果确定分配至各个选定处理器中的子任务,所述选定处理器为从N个所述单核神经网络处理器中选取的用于执行所述任务的处理器;对所述第一任务描述符进行修改,得到与各个所述选定处理器分别对应的第二任务描述符,所述第二任务描述符用于描述分配至所述选定处理器中的子任务的信息;将各个第二任务描述符配置给对应的各个所述选定处理器,并启动各个所述选定处理器处理对应的子任务。进一步地,在确定分配至各个所述单核神经网络处理器中的子任务之后,还可以包括:选取一个所述选定处理器作为主核处理器,并将除所述主核处理器之外的其它所述选定处理器均作为从核处理器;进一步地,在启动各个所述选定处理器处理对应的子任务之后,还可以包括:将所述主核处理器读取的参数共享至各个所述从核处理器。进一步地,所述将所述主核处理器读取的参数共享至各个所述从核处理器可以包括:若接收到所述主核处理器发出的参数读取命令,则将所述参数读取命令缓存至所述主核处理器对应的命令缓存中,并将所述主核处理器对应的标志位设置为第一数值;当所述参数读取命令之前的命令均发出之后,将所述参数读取命令发送至总线;若接收到任一所述从核处理器发出的参数读取命令,则将所述参数读取命令缓存至所述从核处理器对应的命令缓存中,并将所述从核处理器对应的标志位设置为第二数值;将读回的参数缓存至所述主核处理器对应的数据缓存中,并将所述主核处理器对应的标志位设置为所述第二数值;当各个所述选定处理器对应的标志位均为所述第二数值时,从所述主核处理器对应的数据缓存中读取所述参数,并将所述参数广播至各个所述选定处理器。本申请实施例的第二方面提供了一种神经网络处理器的控制方法,所述方法应用于多核神经网络处理器中,所述多核神经网络处理器包括N个单核神经网络处理器,N为大于1的整数,所述神经网络处理器为多核神经网络处理器,其中包括N个单核神经网络处理器(NeuralNetworkProcessor,NNP),N为大于1的整数,所述方法可以包括:获取第一任务描述符,所述第一任务描述符用于描述分配至所述多核神经网络处理器中的任务的信息;对所述第一任务描述符进行解析,根据解析结果确定分配至各个选定处理器中的子任务,所述选定处理器为从N个所述单核神经网络处理器中选取的用于执行所述任务的处理器;对所述第一任务描述符进行修改,得到与各个所述选定处理器分别对应的第二任务描述符,所述第二任务描述符用于描述分配至所述选定处理器中的子任务的信息;将各个第二任务描述符配置给对应的各个所述选定处理器,并启动各个所述选定处理器处理对应的子任务。进一步地,所述对所述第一任务描述符进行修改可以包括:若所述第一任务描述符中指示的处理模式为多核单批模式,则将所述第一任务描述符中的第一分片信息地址分别修改为各个第二分片信息地址,所述第一分片信息地址为所述多核神经网络处理器的分片信息的地址,所述第二分片信息地址为所述选定处理器的分片信息的地址。进一步地,在将所述第一任务描述符中的第一分片信息地址分别修改为各个第二分片信息地址之前,所述本文档来自技高网...

【技术保护点】
1.一种神经网络处理器,其特征在于,所述神经网络处理器包括由N个单核神经网络处理器和外围模块构成的神经网络处理器簇,N为大于1的整数;/n所述外围模块包括主控单元和DMA模块;/n所述DMA模块用于将第一任务描述符搬运至所述主控单元,所述第一任务描述符用于描述分配至所述神经网络处理器中的任务的信息;/n所述主控单元用于对所述第一任务描述符进行解析,根据解析结果确定分配至各个选定处理器中的子任务;对所述第一任务描述符进行修改,得到与各个所述选定处理器分别对应的第二任务描述符;将各个第二任务描述符配置给对应的各个所述选定处理器,并启动各个所述选定处理器处理对应的子任务;所述选定处理器为从N个所述单核神经网络处理器中选取的用于执行所述任务的处理器,所述第二任务描述符用于描述分配至所述选定处理器中的子任务的信息。/n

【技术特征摘要】
1.一种神经网络处理器,其特征在于,所述神经网络处理器包括由N个单核神经网络处理器和外围模块构成的神经网络处理器簇,N为大于1的整数;
所述外围模块包括主控单元和DMA模块;
所述DMA模块用于将第一任务描述符搬运至所述主控单元,所述第一任务描述符用于描述分配至所述神经网络处理器中的任务的信息;
所述主控单元用于对所述第一任务描述符进行解析,根据解析结果确定分配至各个选定处理器中的子任务;对所述第一任务描述符进行修改,得到与各个所述选定处理器分别对应的第二任务描述符;将各个第二任务描述符配置给对应的各个所述选定处理器,并启动各个所述选定处理器处理对应的子任务;所述选定处理器为从N个所述单核神经网络处理器中选取的用于执行所述任务的处理器,所述第二任务描述符用于描述分配至所述选定处理器中的子任务的信息。


2.根据权利要求1所述的神经网络处理器,其特征在于,所述外围模块还可以包括簇接口、信箱模块、总线转发模块、程序存储器和数据存储器;
所述簇接口为所述神经网络处理器簇的从接口,用于所述神经网络处理器簇的外部CPU访问和配置所述外围模块以及每个单核神经网络处理器的内部资源;
所述信箱模块用于存放所述单核神经网络处理器或者所述神经网络处理器簇的配置信息以及运行过程中的状态信息;
所述总线转发模块为所述神经网络处理器簇的顶层AXI请求的收集分发模块,用于收集各个单核神经网络处理器以及所述神经网络处理器簇顶层的主控单元的AXI请求,并将请求经过处理之后发到芯片顶层;
所述程序存储器用于存放所述主控单元的程序;
所述数据存储器用于存放所述主控单元运行过程中产生的数据。


3.根据权利要求1所述的神经网络处理器,其特征在于,所述单核神经网络处理器包括:单核接口、单核信箱模块和总线模块;
所述单核接口为所述单核神经网络处理器的从接口,用于所述神经网络处理器簇的外部CPU或者所述主控单元访问和配置所述单核神经网络处理器的内部资源;
所述单核信箱模块用于存放所述单核神经网络处理器的配置信息以及所述单核神经网络处理器运行过程中的状态信息;
所述总线模块为所述单核神经网络处理器的AXI总线。


4.根据权利要求1至3中任一项所述的神经网络处理器,其特征在于,所述单核神经网络处理器还包括共享参数搬运模块,所述共享参数搬运模块用于将共享的参数从所述单核神经网络处理器外部搬运至所述单核神经网络处理器内部的数据存储器中;
所述总线转发模块中包括与各个单核神经网络处理器分别对应的参数共享逻辑模块,所述参数共享逻辑模块用于进行所述单核神经网络处理器之间参数共享逻辑的判断以及流程控制;
所述参数共享逻辑模块包括命令缓存和数据缓存,所述命令缓存用于缓存所述单核神经网络处理器发出的参数读取命令,所述数据缓存用于缓存所述参数共享逻辑模块读回的数据。


5.一种神经网络处理器的控制方法,其特征在于,所述方法应用于多核神经网络处理器中,所述多核神经网络处理器包括N个单核神经网络处理器,N为大于1的整数,所述方法包括:
获取第一任务描述符,所述第一任务描述符用于描述分配至所述多核神经网络处理器中的任务的信息;
对所述第一任务描述符进行解析,...

【专利技术属性】
技术研发人员:李炜曹庆新王和国黎立煌李爱军陈宁
申请(专利权)人:深圳云天励飞技术有限公司
类型:发明
国别省市:广东;44

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

1