联合计算系统和方法、存储介质及电子设备与流程

文档序号:30270068发布日期:2022-06-02 07:53阅读:88来源:国知局
联合计算系统和方法、存储介质及电子设备与流程

1.本公开涉及数据处理领域,特别是涉及联合计算系统和方法、存储介质及电子设备。


背景技术:

2.随着人工智能技术的不断发展,智能计算系统的应用愈发广泛。在对摄像头采集到的图像数据帧进行处理时,图像数据帧通常以一帧一帧的串行方式经过图像处理模块,这会导致整个智能计算系统的延时较大。
3.公开内容
4.本公开的目的之一在于提供一种联合计算系统和方法、存储介质及电子设备,用于解决智能计算系统延时较大的问题。
5.为实现上述目的及其他相关目的,本公开的第一方面提供一种联合计算系统。所述联合计算系统包括:第一处理模块,被配置为以分块的方式对输入数据进行第一处理以分别生成多个第一分块数据,并且输出与各个所述第一分块数据相对应的第一数据读取通知;神经网络加速器模块,耦合到所述第一处理模块,被配置为响应于所述第一数据读取通知从所述第一处理模块分别读取多个所述第一分块数据,采用神经网络模型对各个所述第一分块数据进行第二处理以分别生成多个第二分块数据,并且输出与各个所述第二分块数据相对应的第二数据读取通知;以及第二处理模块,耦合到所述神经网络加速器模块,被配置为响应于所述第二数据读取通知从所述神经网络加速器模块分别读取多个所述第二分块数据,并且对各个所述第二分块数据进行第三处理以分别生成多个第三分块数据。
6.于所述第一方面的一实施例中,所述第一处理模块被配置为采用横向分块和/或纵向分块的方式对所述输入数据进行所述第一处理。
7.于所述第一方面的一实施例中,所述神经网络模型被切分成与多个所述第一分块数据分别相匹配的多个子网络模型,所述神经网络加速器模块被配置为采用各所述子网络模型来处理对应的所述第一分块数据。
8.于所述第一方面的一实施例中,所述神经网络模型包括卷积运算操作层和激活操作层,所述神经网络加速器模块被配置为基于多个所述卷积运算操作层分别对多个所述第一分块数据进行卷积运算操作以生成多个中间分块数据,并且基于多个所述激活操作层分别对多个所述中间分块数据进行激活操作以生成多个所述第二分块数据。
9.于所述第一方面的一实施例中,所述神经网络加速器模块被配置为响应于读取到所述第一分块数据中的预定数量的数据而启动对所述预定数量的数据的所述第二处理。
10.于所述第一方面的一实施例中,所述第一处理模块包括前处理加速器,所述第二处理模块包括后处理加速器。
11.于所述第一方面的一实施例中,所述第一处理模块包括图像处理加速器,所述第二处理模块包括图形渲染处理器。
12.于所述第一方面的一实施例中,所述第一处理模块、所述神经网络加速器模块和
所述第二处理模块被配置为以并行方式分别进行所述第一处理、所述第二处理和所述第三处理。
13.于所述第一方面的一实施例中,所述第一处理模块被配置为在第一操作周期生成第一组所述第一分块数据,所述神经网络加速器模块被配置为在第二操作周期读取第一组所述第一分块数据并且生成第一组所述第二分块数据,并且所述第一处理模块被配置为在所述第二操作周期生成第二组所述第一分块数据,所述第二处理模块被配置为在第三操作周期读取第一组所述第二分块数据并且生成第一组所述第三分块数据,所述神经网络加速器模块被配置为在所述第三操作周期读取第二组所述第一分块数据并且生成第二组所述第二分块数据,并且所述第一处理模块被配置为在所述第三操作周期生成第三组所述第一分块数据。
14.于所述第一方面的一实施例中,所述第二处理模块被配置为在第四操作周期读取第二组所述第二分块数据并且生成第二组所述第三分块数据,所述神经网络加速器模块被配置为在所述第四操作周期读取第三组所述第一分块数据并且生成第三组所述第二分块数据,并且所述第一处理模块被配置为在所述第四操作周期生成第四组所述第一分块数据。
15.于所述第一方面的一实施例中,所述第一处理模块进一步被配置为根据接收到的指令获取分块的大小、数量和/或间隔。
16.于所述第一方面的一实施例中,所述第一处理模块被配置为在所述第一处理完成时以中断的形式输出所述第一数据读取通知,和/或所述神经网络加速器模块被配置为在所述第二处理完成时以中断的形式输出所述第二数据读取通知。
17.本公开的第二方面提供一种联合计算方法。所述联合计算方法包括:以分块的方式对输入数据进行第一处理以分别生成多个第一分块数据,并且输出与各个所述第一分块数据相对应的第一数据读取通知;响应于所述第一数据读取通知分别读取多个所述第一分块数据,采用神经网络模型对各个所述第一分块数据进行第二处理以分别生成多个第二分块数据,并且输出与各个所述第二分块数据相对应的第二数据读取通知;以及响应于所述第二数据读取通知分别读取多个所述第二分块数据,并且对各个所述第二分块数据进行第三处理以分别生成多个第三分块数据。
18.本公开的第三方面提供一种计算机可读存储介质。在所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现根据本公开第二方面所述的联合计算方法。
19.本公开的第四方面提供一种电子设备。所述电子设备包括:存储器,被配置为存储计算机程序;以及处理器,被配置为调用所述计算机程序以执行根据本公开第二方面所述的联合计算方法。
20.如上所述,本公开一个或多个实施例中所述联合计算系统能够对输入数据进行分块并行处理,有利于降低系统中的时延以及系统的运行内存。
附图说明
21.图1显示为本公开所述联合计算系统于一具体实施例中的结构示意图。
22.图2显示为本公开所述联合计算系统于一具体实施例中神经网络子模型的示意图。
23.图3显示为本公开所述联合计算系统于一具体实施例中神经网络模型的示例图。
24.图4显示为本公开所述联合计算系统于一具体实施例中中断触发的示意图。
25.图5显示为本公开所述联合计算系统于一具体实施例中的结构示意图。
26.图6显示为本公开所述联合计算方法于一具体实施例中的流程图。
27.图7显示为本公开所述电子设备于一具体实施例中的结构示意图。
具体实施方式
28.以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
29.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图示中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。此外,在本文中,诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
30.已有的智能计算系统包括中央处理器(cpu)、只读存储器(rom)、随机存储器(ram)、摄像头、图像处理加速器(ipu)、神经网络加速器(npu)。cpu加载rom中存储的初始化和智能模型等数据初始化各个系统设备。cpu控制摄像头采集外界图像数据帧,数据帧存储在ram中进行共享。数据帧传递给ipu,经过图像处理、格式转换等操作。经过ipu的数据帧传递给npu执行智能应用操作,并输出相关智能结果。gpu绘制相关智能结果并渲染到显示屏中。在该智能计算系统中,从摄像头输入到显示,数据帧在经过ipu和npu时通常是一帧一帧地被串行执行。因此,会叠加ipu和npu处理图像帧的耗时,导致整个智能系统的延时较大。
31.为了解决至少上述技术问题,本公开提出了一种联合计算的改进方案,其中npu与其他模块联合计算。npu主要基于神经网络模型进行加速运算,而其他模块为一个或多个硬件处理模块,与npu进行前面或后面的耦合,包括图像处理加速器(ipu)、图形渲染处理器(gpu)、视频输出单元(vop)等硬件模块。以ipu作为系统中的其他模块为例,ipu通过对图像进行分块处理,当ipu处理完一个分块后,将产生专门的中断或信号通知npu进行数据预取,与此同时,ipu执行下一个分块。当数据预取达到可计算条件时npu启动计算,如此反复,使得原本串行的流水线转变为并行的流水线。
32.根据本公开的方案,通过硬件和软件上的设计进行改进,使它们支持分块的执行方式,分块包括横向或纵向的分块,其大小、数量、间隔等可以通过软件进行配置。在ipu执行完每个数据块之后立刻触发一个中断或信号对npu进行快速通知,npu就可以提前拿到ipu部分处理完成的图像帧数据块以用于进行处理。与此同时,ipu接着执行下一块的数据任务。以此通过改进ipu和npu的硬件和软件的处理方式,对每一个图像帧内各个数据块的处理进行了并行,降低系统延时,从而提高智能系统的响应。
33.下文中,将参考附图通过示例性实施例描述本公开的具体实施方式。
34.图1是示出根据本公开的实施例的联合计算系统的框图。如图1所示,联合计算系统1包括第一处理模块11、神经网络加速器模块12和第二处理模块13。
35.所述第一处理模块11被配置为以分块的方式对输入数据进行第一处理以分别生成多个第一分块数据,并且输出与各个所述第一分块数据相对应的第一数据读取通知。
36.所述神经网络加速器模块12耦合到所述第一处理模块11,被配置为响应于所述第一数据读取通知从所述第一处理模块11分别读取多个所述第一分块数据,采用神经网络模型对各个所述第一分块数据进行第二处理以分别生成多个第二分块数据,并且输出与各个所述第二分块数据相对应的第二数据读取通知。
37.所述第三处理模块13耦合到所述神经网络加速器模块12,被配置为响应于所述第二数据读取通知从所述神经网络加速器模块12分别读取多个所述第二分块数据,并且对各个所述第二分块数据进行第三处理以分别生成多个第三分块数据。
38.可选地,所述第一处理模块11被配置为采用横向分块和/或纵向分块的方式对所述输入数据进行所述第一处理。其中横向分块是指以图像数据帧的宽度方向进行分块,纵向分块是指以图像数据帧的高度方向进行分块。
39.可选地,所述神经网络模型被切分成与多个所述第一分块数据分别相匹配的多个子网络模型,所述神经网络加速器模块12被配置为采用各所述子网络模型来处理对应的所述第一分块数据。具体地,所述神经网络模型为多个处理层组成的有向无环图结构,在对所述神经网络进行切分时需要对其中的每个层进行分割。例如,单个卷积层可以根据输入或输出的切分块进行递推或反推,从而得到多个子卷积层,该多个子卷积层之间相互独立,且每个子卷积层都会得到一个分块输出,多个分块输出共同组成该卷积层的完整输出。该多个分块输出又将应用到下一个处理层中,以此递推,整个神经网络模型将会被切分成多个子网络模型。
40.图2是示出根据本公开的实施例的神经网络模型切分结果的示例图。如图2所示,对所述神经网络模型的每个切分操作都将形成一个完整的子网络模型,且各子网络模型之间相互独立。各子网络模型的输入通过对接所述第一处理模块11输出的各个第一分块数据即可完成对各个所述第一分块数据的并行操作,重复此过程即可使得原本串行的流水线转变为并行的流水线,从而有效增加并行度,降低系统时延。
41.可选地,所述神经网络模型包括卷积运算操作层和激活操作层,所述神经网络加速器模块被配置为基于多个所述卷积运算操作层分别对多个所述第一分块数据进行卷积运算操作以生成多个中间分块数据,并且基于多个所述激活操作层分别对多个所述中间分块数据进行激活操作以生成多个所述第二分块数据。
42.图3是示出根据本公开的实施例的神经网络模型的示例图。如图3所示,所述神经网络模型可以包括主要进行卷积运算操作的conv层以及主要进行激活操作的relu层,这两个层之间会包含三个边,即,conv层的输入、conv层的输出以及relu层的输出。此时,所述第一处理模块11的输出数据将作为conv层的输入,该输出数据经神经网络模型处理后自relu层输出。
43.可选地,所述神经网络加速器模块12被配置为响应于读取到所述第一分块数据中的预定数量的数据而启动对所述预定数量的数据的所述第二处理。
44.可选地,所述第一处理模块11包括前处理加速器,所述第二处理模块13包括后处
理加速器。
45.可选地,所述第一处理模块11包括图像处理加速器,所述第二处理模块13包括图形渲染处理器。
46.可选地,所述第一处理模块11、所述神经网络加速器模块12和所述第二处理模块13被配置为以并行方式分别进行所述第一处理、所述第二处理和所述第三处理。
47.可选地,所述第一处理模块11被配置为在第一操作周期生成第一组所述第一分块数据。所述神经网络加速器模块12被配置为在第二操作周期读取第一组所述第一分块数据并且生成第一组所述第二分块数据,并且所述第一处理模块11被配置为在所述第二操作周期生成第二组所述第一分块数据。所述第二处理模块13被配置为在第三操作周期读取第一组所述第二分块数据并且生成第一组所述第三分块数据,所述神经网络加速器模块12被配置为在所述第三操作周期读取第二组所述第一分块数据并且生成第二组所述第二分块数据,并且所述第一处理模块11被配置为在所述第三操作周期生成第三组所述第一分块数据。
48.可选地,所述第二处理模块13被配置为在第四操作周期读取第二组所述第二分块数据并且生成第二组所述第三分块数据,所述神经网络加速器模块12被配置为在所述第四操作周期读取第三组所述第一分块数据并且生成第三组所述第二分块数据,并且所述第一处理模块11被配置为在所述第四操作周期生成第四组所述第一分块数据。
49.可选地,所述第一处理模块11进一步被配置为根据接收到的指令获取分块的大小、数量和/或间隔。此时,用户可以通过软件对所述第一处理模块11的分块参数进行配置。
50.可选地,所述第一处理模块11被配置为在所述第一处理完成时以中断的形式输出所述第一数据读取通知,和/或所述神经网络加速器模块12被配置为在所述第二处理完成时以中断的形式输出所述第二数据读取通知。
51.图4是示出根据本公开的实施例的发送第一数据读取通知的示例图。如图4所示,所述第一处理模块11可以采用触发中断的方式输出与各个所述第一分块数据相对应的第一数据读取通知。此外,所述第一处理模块11还可以采用发送信号等方式输出与各个所述第一分块数据相对应的第一数据读取通知。需要说明的是,上述两种通知方式仅为本公开的两种可行方案,但本公开并不以此为限。
52.可选地,所述神经网络加速器模块12从所述第一处理模块11中读取到的多个所述第一分块数据存放于缓存中。在启动条件满足时,所述神经网络加速器模块12从所述缓存中读取其中的所述第一分块数据进行第二处理以分别生成多个第二分块数据。
53.可选地,所述联合计算系统1还可以包括数据获取模块,所述数据获取模块用于持续获取数据并将数据发送至所述第一处理模块11。所述数据获取模块例如为摄像头。
54.根据本公开的实施例中,所述联合计算系统1还包括控制模块和存储模块,其中,控制模块用于加载存储模块中预存的数据对所述第一处理模块11、所述神经网络加速器模块12以及所述第二处理模块13进行初始化。
55.可选地,所述控制模块还用于控制数据采集设备采集数据,其中,数据采集设备采集到的数据可以存储于ram中以便各模块进行共享。
56.图5是示出根据本公开的实施例的联合计算系统的示例图。如图5所示,第一处理模块包括图像处理加速器ipu,神经网络加速器模块包括神经网络加速器npu,第二处理模
块包括图形处理单元gpu,控制模块包括中央处理器cpu,存储模块包括随机存储器ram和只读存储器rom。此外,本实施例中,所述联合计算系统还可以包括摄像头以及显示器。
57.本实施例中所述联合计算系统的运行场景为:cpu加载rom中存储的初始化和智能模型等数据初始化各个系统设备;cpu控制摄像头采集外界图像数据帧,摄像头采集到的图像数据帧存储在ram中进行共享;图像数据帧传递给图像处理加速器进行图像处理以及格式转换等操作;图像处理加速器处理完成的图像数据帧传递给神经网络加速器执行智能应用操作,并输出操作结果;gpu绘制相关的操作结果并渲染到显示屏中。
58.本实施例通过改进硬件和软件处理方式,使它们支持分块的执行方式,分块包括横向或纵向的分块,其大小、数量、间隔等可以通过软件进行配置。在ipu执行完每个数据块之后立刻触发一个中断或信号对npu进行快速通知,npu就可以提前拿到ipu部分处理完成的图像帧数据块以用于进行处理。与此同时,ipu接着执行下一块的数据任务。以此通过改进ipu和npu的硬件和软件的处理方式,对每一个图像帧内各个数据块的处理进行了并行,降低系统延时,从而提高智能系统的响应。
59.本公开还提供一种联合计算方法。图6是示出根据本公开的实施例的联合计算方法的流程图。如图6所示,联合计算方法包括以下步骤s61至步骤s63。
60.在步骤s61,以分块的方式对输入数据进行第一处理以分别生成多个第一分块数据,并且输出与各个所述第一分块数据相对应的第一数据读取通知。
61.在步骤s62,响应于所述第一数据读取通知分别读取多个所述第一分块数据,采用神经网络模型对各个所述第一分块数据进行第二处理以分别生成多个第二分块数据,并且输出与各个所述第二分块数据相对应的第二数据读取通知。
62.在步骤s63,响应于所述第二数据读取通知分别读取多个所述第二分块数据,并且对各个所述第二分块数据进行第三处理以分别生成多个第三分块数据。
63.本实施例中,上述步骤s61至步骤s63与如图1所示的联合计算系统1中的相应模块一一对应,此处不做过多赘述。此外,联合计算方法可以包括由联合计算系统1中的相应模块执行的其他操作或动作。
64.本公开还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述的联合计算方法。
65.本公开还提供一种电子设备。图7是示出根据本公开的实施例的电子设备的结构示意图。如图7所示,电子设备700包括存储器710和处理器720。所述存储器710被配置为存储计算机程序。所述处理器720被配置为调用所述计算机程序以执行前述的联合计算方法。
66.可选地,所述电子设备700还可以包括显示器730,所述显示器730被配置为显示所述联合计算方法的相关gui交互界面。
67.本公开所述联合计算方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本公开的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本公开的保护范围内。
68.综上所述,本公开一个或多个实施例中所述的联合计算系统能够对输入数据进行分块并行处理,有利于降低系统中的时延以及系统的运行内存。因此,本公开有效克服了现有技术中的种种缺点而具高度产业利用价值。
69.上述实施例仅例示性说明本公开的原理及其功效,而非用于限制本公开。任何熟
悉此技术的人士皆可在不违背本公开的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本公开所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本公开的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1