一种基于异步事件的神经网络异构加速方法和系统技术方案

技术编号:18713400 阅读:17 留言:0更新日期:2018-08-21 23:03
本发明专利技术的实施例提供一种神经网络异构加速的方法,包括:主控单元在初始化阶段完成加速器的基本配置;所述主控单元将需要加速器进行处理的数据存储在系统存储器中;所述主控单元将命令描述符存储在所述系统存储器中;所述主控单元将命令字按照队列的方式存放在所述系统存储器中;所述主控单元通知所述加速器需要处理的命令条数;所述加速器基于初始化阶段的配置从所述系统存储器中读取命令字并完成命令字解析,同时从所述系统存储器中读取需要处理的数据;所述加速器将计算结果存储到所述系统存储器的第一存储位置;所述主控单元在执行间隔直接读取所述系统存储器的第一存储位置,得到所述加速器的所述计算结果。

Neural network heterogeneous acceleration method and system based on asynchronous event

An embodiment of the present invention provides a method for heterogeneous acceleration of neural networks, including: the master control unit completes the basic configuration of the accelerator at the initialization stage; the master control unit stores the data to be processed by the accelerator in the system memory; and the master control unit stores the command descriptor in the system memory The master control unit stores the command word in the system memory in a queue manner; the master control unit notifies the accelerator of the number of command bars to be processed; the accelerator reads the command word from the system memory and completes command word resolution based on the configuration of the initialization phase, while storing from the system The accelerator stores the calculation results to the first storage location of the system memory, and the main control unit reads the first storage location of the system memory directly at execution intervals to obtain the calculation results of the accelerator.

【技术实现步骤摘要】
一种基于异步事件的神经网络异构加速方法和系统
本专利技术涉及计算机领域,尤其涉及一种基于异步事件的神经网络异构加速方法和系统。
技术介绍
神经网络的领域非常宽广,且涉及多种学科,吸引了许多不同领域的研究者的兴趣,同时在各个行业领域具有广阔的应用前景,例如,工程学、物理学、神经学、心理学、医学、数学、计算机科学、化学和经济学。同时,它也是人工智能领域的一项非常重要的核心技术。利用神经计算方法解决某些问题有许多优点,例如,容错能力强、具有自学习能力等。目前,神经网络计算数据模型繁多,结构复杂,主流模型含几十个隐含层,每层都在上千上万级的神经元,整个网络更多,其计算量巨大。为了克服巨大计算量的问题,例如,目前用于深度学习的训练计算机大致采用两类方式:第一类是服务器/工作站架构(支持2、4、8块GPU架构),其普遍存在噪音大,无法放置于办公环境,必须放到专门的机房,维护成本高,另外数据存储带宽、延迟、容量也不尽如意的问题;第二类是分布式集群架构,这类方式性能强大,但是存在开发成本太高的问题。异构计算系统是由主处理器和加速器两种体系结构处理器搭建而成的计算机系统。通过协调地使用性能、结构各异的处理单元,能够满足不同的计算需求,以获取最大总体性能方式完成加速计算。因此,异构计算对以上神经网络计算问题的解决提供了较好的思路。现有常见的异构计算系统有CPU+GPU和CPU+MIC(超多核心)组成异构计算系统等。异构计算系统能够有效地获取高性能计算能力,具有可扩展性好、计算资源利用率高、发展潜力巨大等优点,目前已成为并行/分布计算领域中的研究热点之一。中国专利申请CN201710641599.0公开了一种异构计算平台与基于异构计算平台的加速方法。在该专利申请中,异构计算平台可包括主机与多个可编程器件,主机与各个可编程器件分别相连。主机用于初始化可编程器件、各个可编程器件的并行调度、为各个所述可编程器件发送计算数据以及获得计算结果。各个可编程器件并行处理分配给自身的计算数据。主机在完成所述可编程器件的初始化之后,为完成初始化的各个可编程器件发送计算数据;各个可编程器件在收到所述主机发送的计算数据之后,分别结合发送给自身的计算数据进行并行计算,得到计算结果;最后,主机从各个可编程器件获得上述计算结果并进行保存。在现有技术中,由于主机和加速器(如可编程器件)的设计目标和计算性能的不同,异构计算系统的加速过程中计算数据的发送和搬运都需要主机来执行,因此需要花费大量的主机时间和等待时间。此外,完成计算后主机从加速器系统内部存储中获得计算结果,并进行保存也会带来大量的系统时间损耗,从而严重影响了整个异构系统的计算效率。因此,本领域需要一种新型的人工智能AI异构计算机,通过充分利用加速器和主处理器的计算潜能,最大化异构计算系统的计算效率,提升整体系统的并发处理能来和响应速度,从而满足神经网络的计算的要求。
技术实现思路
针对现有技术中存在的问题,本专利技术的一个实施例中提供一种神经网络异构加速的方法,包括:主控单元在初始化阶段完成加速器的基本配置;所述主控单元将需要加速器进行处理的数据存储在系统存储器中;所述主控单元将命令描述符存储在所述系统存储器中;所述主控单元将命令字按照队列的方式存放在所述系统存储器中;所述主控单元通知所述加速器需要处理的命令条数;所述加速器基于初始化阶段的配置从所述系统存储器中读取命令字并完成命令字解析,同时从所述系统存储器中读取需要处理的数据;所述加速器将计算结果存储到所述系统存储器的第一存储位置;所述主控单元在执行间隔直接读取所述系统存储器的第一存储位置,得到所述加速器的所述计算结果。在本专利技术的一个实施例中,所述加速器为神经网络加速器。在本专利技术的一个实施例中,所述基本配置包括在系统存储器中输入数据的基地址,权重的基地址以及当前加速结果输出的基地址。在本专利技术的一个实施例中,在所述命令描述符中指定需要神经网络加速器进行的操作,并在所述命令描述符中指定所述系统存储器中的数据位置。在本专利技术的一个实施例中,通过单次寄存器访问通知所述神经网络加速器需要处理的命令条数。在本专利技术的一个实施例中,在由主控单元通知所述加速器需要处理的命令条数之后,切换所述主控单元以执行其它任务。在本专利技术的一个实施例中,在加速器将计算结果存储到所述系统存储器的第一存储位置后,更新系统存储器中在硬件初始化阶段指定的第二存储位置的信息。在本专利技术的一个实施例中,主控单元基于硬件初始化阶段指定的第二存储位置的信息的变化判断加速器是否完成加速计算。在本专利技术的一个实施例中,在加速器将计算结果存储到所述系统存储器的第一存储位置之后,所述加速器等待所述主控单元下发新任务。本专利技术的另一个实施例中提供一种异构计算系统,包括:主控单元;一个或多个加速器;以及系统存储器,其中所述主控单元用于:在初始化阶段完成加速器的基本配置,将需要加速器进行处理的数据存储在系统存储器中,将命令描述符存储在所述系统存储器中,将命令字按照队列的方式存放在所述系统存储器中,通知所述加速器需要处理的命令条数,所述加速器用于:基于初始化阶段的配置主动的从所述系统存储器中读取命令字并完成命令字解析,同时从系统存储器中读取需要处理的数据,在加速计算完成后将计算结果存储到所述系统存储器的第一存储位置,所述主控单元用于:在执行间隔直接读取所述系统存储器的第二存储位置的信息,判断加速是否完成,从系统存储器的第一存储位置获取所述加速器的所述计算结果。在本专利技术的另一个实施例中,所述主控单元是一个或多个主控中央处理单元CPU。在本专利技术的另一个实施例中,所述主控单元是一个多核CPU的一个或多个核。在本专利技术的另一个实施例中,所述加速器为神经网络加速器.在本专利技术的另一个实施例中,所述基本配置包括在系统存储器中输入数据的基地址,权重的基地址以及当前加速结果输出的基地址。在本专利技术的另一个实施例中,所述主控单元通过单次寄存器访问通知所述神经网络加速器需要处理的命令条数。在本专利技术的另一个实施例中,在由主控单元通知所述加速器需要处理的命令条数之后,切换所述主控单元以执行其它任务。在本专利技术的另一个实施例中,在加速器将计算结果存储到所述系统存储器的第一存储位置之后,所述加速器等待所述主控单元下发新任务。因此,通过本专利技术提供的加速系统和方法,可以使异构计算系统中的各个硬件单元或VM可独立并行运行,避免了主控单元在每次运算过程中都要主动去搬移数据和指定操作。这种情况下,整个异构计算平台的运行速度大致相当于并行运行的几个硬件单元的运行速度之和,从而提高了异构计算系统的并行度与运行速度,进而提高了异构计算系统的运行速度。故利用本专利技术提供的加速系统和方法,将极大提升主控单元的效率,可以更好地满足复杂算法与海量数据对异构计算系统的运行速度的需求。附图说明为了进一步阐明本专利技术的各实施例的以上和其它优点和特征,将参考附图来呈现本专利技术的各实施例的更具体的描述。可以理解,这些附图只描绘本专利技术的典型实施例,因此将不被认为是对其范围的限制。在附图中,为了清楚明了,相同或相应的部件将用相同或类似的标记表示。图1示出根据本专利技术的一些实施例的异构计算系统100的框图。图2示出基于寄存器的同步控制进行神经网络异构加速过程的流程图。图3示出根据本专利技术的一个实本文档来自技高网
...

【技术保护点】
1.一种神经网络异构加速的方法,包括:主控单元在初始化阶段完成加速器的基本配置;所述主控单元将需要加速器进行处理的数据存储在系统存储器中;所述主控单元将命令描述符存储在所述系统存储器中;所述主控单元将命令字按照队列的方式存放在所述系统存储器中;所述主控单元通知所述加速器需要处理的命令条数;所述加速器基于初始化阶段的配置从所述系统存储器中读取命令字并完成命令字解析,同时从所述系统存储器中读取需要处理的数据;所述加速器将计算结果存储到所述系统存储器的第一存储位置;所述主控单元在执行间隔直接读取所述系统存储器的第一存储位置,得到所述加速器的所述计算结果。

【技术特征摘要】
1.一种神经网络异构加速的方法,包括:主控单元在初始化阶段完成加速器的基本配置;所述主控单元将需要加速器进行处理的数据存储在系统存储器中;所述主控单元将命令描述符存储在所述系统存储器中;所述主控单元将命令字按照队列的方式存放在所述系统存储器中;所述主控单元通知所述加速器需要处理的命令条数;所述加速器基于初始化阶段的配置从所述系统存储器中读取命令字并完成命令字解析,同时从所述系统存储器中读取需要处理的数据;所述加速器将计算结果存储到所述系统存储器的第一存储位置;所述主控单元在执行间隔直接读取所述系统存储器的第一存储位置,得到所述加速器的所述计算结果。2.如权利要求1所述的方法,其特征在于,所述加速器为神经网络加速器。3.如权利要求1所述的方法,其特征在于,所述基本配置包括在系统存储器中输入数据的基地址,权重的基地址以及当前加速结果输出的基地址。4.如权利要求2所述的方法,其特征在于,在所述命令描述符中指定需要神经网络加速器进行的操作,并在所述命令描述符中指定所述系统存储器中的数据位置。5.如权利要求2所述的方法,其特征在于,通过单次寄存器访问通知所述神经网络加速器需要处理的命令条数。6.如权利要求1所述的方法,其特征在于,在由主控单元通知所述加速器需要处理的命令条数之后,切换所述主控单元以执行其它任务。7.如权利要求1所述的方法,其特征在于,在加速器将计算结果存储到所述系统存储器的第一存储位置后,更新系统存储器中在硬件初始化阶段指定的第二存储位置的信息。8.如权利要求1所述的方法,其特征在于,主控单元基于硬件初始化阶段指定的第二存储位置的信息的变化判断加速器是否完成加速计算。9.如权利要求1所述的方法,其特征在于,在加速器将计算结果存储到所述系统存储器的第一存储位置之...

【专利技术属性】
技术研发人员:陈亮纪竞舟黄宇扬
申请(专利权)人:上海熠知电子科技有限公司
类型:发明
国别省市:上海,31

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

1