一种数据处理的方法、数据处理装置和电子设备与流程

专利2022-06-29  79


本公开涉及计算机领域,更具体地涉及一种数据处理的方法、数据处理装置和电子设备。



背景技术:

在现有的多核并行方案中需要通过设置模型并行度(mp)、数据并行度(dp)、多线程(multi-thread)、网络结构参数(n)四个参数来实现,现有的多核并行计算的设置方式参数复杂,对用户不够友好。具体情况如下:

例如在图1中示出了现有技术的多核并行的技术方案100。数据提供器102(dataprovider)负责准备输入数据,推理机104(inferencer)进行数据处理,然后把处理完的数据传递出去,即传递给后处理器106(postprocessor)。但是推理机104传递完了之后还要等待后处理器106处理的结果。等后处理器106处理结果出来之后,后处理器106才告诉推理机104数据处理完毕。推理机104然后从数据提供器102再拿数据,继续进行上述的操作。后处理器106负责收集处理结果,处理完以后把处理结果传递回去让推理机104继续向后处理器106传递数据。当前管道模型(pipeline)的问题在于推理机104阶段,调用流(invokestream)后紧跟同步流(syncstream)。导致管道模型中的流水其实在推理机104断档。在同步流期间整个管道模型处于静止状态。即整个管道模型只有一次流水数据。

在图1所示的现有技术的方案中实行多核并行(例如图1中所示的并行管道模型i-iv,另外在推理机104中设置有多核),若需要达到性能最优,需要找到模型并行度、数据并行度、多线程、网络结构参数的最优组合。多线程决定了创建管道模型的数量,数据并行度和网络结构参数决定了一个管道模型一次处理图片的数量(即,数据并行度(dp)×网络结构参数(n)=批尺寸(batchsize)),模型并行度决定将一次的数据量(即,一次处理图片的数量)拆分到多少个核上执行。

现有技术方案存在的缺陷在于,不用多线程性能上不去。为避免管道模型中断必须发起多个管道模型才能保证中央处理器(cpu)和机器学习处理器之间的流水顺畅。一个管道模型一次处理图片数量(批尺寸,batchsize)的大小对于性能的影响差异巨大。因为一个管道模型一次处理图片的数量增大能够减小流水轮回的次数。



技术实现要素:

为了至少解决在上述背景技术部分所描述的问题,以便提高数据处理的总体性能,本公开提出了如下的技术方案及其多个实施例。

根据本公开的第一方面,提供了一种数据处理的方法,可以包括下面的步骤:

将数据提供器、具有多核的推理机、后处理器依次布置在同一管道模型中;

后处理器将具有多核的推理机并行处理后的数据分叉到相应的工作线程进行后处理,并将后处理得到的反馈数据流经由相应的反馈部件反馈至数据提供器。

根据本公开的第二方面,提供了一种数据处理装置,可以包括:

依次布置在同一管道模型中的数据提供器、具有多核的推理机、后处理器;

其中后处理器将具有多核的推理机并行处理后的数据分叉到相应的工作线程进行后处理,并将后处理得到的反馈数据流经由相应的反馈部件反馈至数据提供器。

根据本公开的第三方面,提供了一种电子设备,包括如上所述的数据处理装置。

借助于上述的技术方案,可以避免后处理器向推理机、推理机向数据提供器的逐级反馈,可以在数据处理情况下实现单条管道模型中最大程度的无阻塞,提高数据传递的效率。

附图说明

图1示意性示出了现有技术中多核并行的技术方案。

图2示意性示出了根据本公开一个实施例的数据处理的方法流程图;

图3示意性示出了根据本公开另一个实施例的数据处理装置示意图;

图4示意性示出了根据本公开又一个实施例的数据处理装置示意图;

图5示意性示出了根据本公开一个实施例的电子设备示意图;

图6示意性示出根据本公开一个实施例的一种组合处理装置的结构图;以及

图7示意性示出根据本公开一个实施例的一种板卡的结构示意图。

具体实施方式

下面将结合附图1-7介绍现有技术以及本公开中的详细内容。

图1示意性示出了现有技术中多核并行设备100。如在背景技术部分提到的,数据提供器102负责准备输入数据,例如图1中的数据提供器102接收来自外部的请求101,即,外部向数据提供器102提供的数据(例如图片数据)。推理机104把来自数据提供器102的数据进行处理。推理机104处理完之后,推理机104再把处理完的数据传递出去,即,传递给后处理器106。但是在推理机104把数据处理完之后,还是需要等待后处理器106的处理结果。也就是说,在后处理器106的处理结果出来之后,后处理器106才告诉推理机104数据处理完毕,然后推理机104才可以继续处理数据,并把处理后的其他数据再传递给后处理器106。这里以及下面之所以将图1的内容详细描述一下,是为了帮助本领域技术人员了解现有技术存在的问题以及本公开对此的改进。

例如图1所示的多核并行设备100中,我们可以看出,后处理器106负责收集处理结果,处理器106搜集的处理结果搜集完之后把结果传递回去,即把结果传递给推理机104。推理机104才可以继续向后处理器106传递数据。图1示出了四种管道模型,即,管道模型i、管道模型ii、管道模型iii、管道模型iv,其中管道模型i当中的内容在图1的最表面已经示出,管道模型ii、管道模型iii、管道模型iv的结构与管道模型i的结构基本相似,所以在图1所示的管道模型当中,仅仅示出了管道模型i的具体内容,管道模型ii、管道模型iii、管道模型iv的结构未示出。在图1所示的结构中包括了数据提供器102、推理机104、后处理器106,在数据提供器102、推理机104、后处理器106对应的下方虚线方框内分别示出了“输入”、“计算”、“输出”,这里的三个虚线框,即“输入”、“计算”、“输出”分别表示数据提供器102、推理机104、后处理器106所具有的对应功能。即,数据提供器102实现的是输入功能,推理机104实现的是计算功能,后处理器106实现的是输出功能。进一步的解释是,数据提供器102将来自外部的请求101的数据复制在数据提供器102中(如在数据提供器102方框与虚线框“输入”之间的三条带箭头线“复制在”所示的)。推理机104通过调用流调用来自数据提供器102的数据进行处理(如在推理机104方框与虚线框“计算”之间的两条带箭头线“调用流”和“同步流”所示的),并且在推理机104处理完的时候,借助于输入缓存器110与数据提供器102进行同步。后处理器106是将推理机104处理完的数据拷贝出来,即拷贝到后处理器106中(如在后处理器106方框与虚线框“输出”之间的一条带箭头线“拷贝出”所示的)。图1所示的输出缓存器108实现的功能是将后处理器106处理完数据的信息反馈给推理机104,输入缓存器110实现的功能是将推理机104处理完数据的信息反馈给数据提供器102,从而实现了逐级反馈。

如在前面已经提到的,现有的数据处理机制需要逐级反馈,后处理器106反馈给推理机104,推理机104反馈给数据提供器102。也就是说,必须在保证后面的一个功能块正常的情况下,才能向后面的功能快传递数据。即,推理器104必须在后处理器106空闲的情况下才能向后处理器106传递数据。同样,数据提供器102也必须在推理机104空闲的情况下,才能向推理机104传递数据。这样造成的问题在于,传递效率低下,甚至在数据量大的情况下还会出现堵塞。

图2示意性示出了根据本公开一个实施例的数据处理的方法200流程图,可以包括下面的步骤:

s202,将数据提供器、具有多核的推理机、后处理器依次布置在同一管道模型中;

s204,后处理器将具有多核的推理机并行处理后的数据分叉到相应的工作线程进行后处理,并将后处理得到的反馈数据流经由相应的反馈部件反馈至数据提供器。

例如图3示意性示出了根据本公开另一个实施例的数据处理装置300,其中将数据提供器302、具有多核的推理机304、后处理器306依次布置在同一管道模型l中。在图3中,后处理器306将具有多核的推理机304并行处理后的数据分叉到相应的工作线程a、工作线程b、工作线程c进行后处理,并将后处理得到的反馈数据流经由相应的反馈部件反馈至数据提供器302。例如图3示出,工作线程a、工作线程b、工作线程c都经由反馈部件:流线(stream)312、输出缓存器308、输入缓存器310将后处理得到的反馈数据流经由相应的反馈部件反馈至数据提供器302。至于流线312、输出缓存器308、输入缓存器310的具体功能将在下面的实施例中详述。

推理机304根据其上布置的核的数量将输入数据流拆分至多核的相应核上进行并行处理。在图3所示的结构当中,假设了推理机304具有三个核(未示出),推理机304可以根据自身具有的三个核的数量,将输入数据流302的数据拆分到三个核的每个对应核上进行处理。图3所示推理机304具有三个核虽然没有示出,但是图3所示的推理机304具有三个核仅仅是一个实例,推理机304还可以具有两个核、四个核、五个核、六个核等等,这些本领域技术人员是可以容易理解的,在此不再赘述。例如在图4当中就假设了推理机404具有4个核。

需要指出的是,图3所示的推理机304或者图4所示的推理机404包含的多个核可以包括图形处理器、语音处理器、现场可编程门阵列和/或专用数据处理装置。

在本公开的一个实施例中,推理机304上设置的多核中的任一个核空闲的情况下,将来自数据提供器302的输入数据流的数据进行处理,并且在推理机304上设置的多核中的任一个核处理完成的情况下,将核上处理后的数据传递给后处理器306。

在本公开的一个实施例中,其中数据提供器302和后处理器306可以布置在中央处理器中,具有多核的推理机304可以布置在具有多核的机器学习芯片上(未示出)。

实施例1

具体描述一下图3所示的根据本公开一个实施例的数据处理装置300。

相对于图1所示的现有技术来讲,图3所示的数据提供器302的改动不大。同样,数据提供器302除了负责管理输入数据之外,还负责管理反馈数据流。例如数据提供器302管理了来自请求301的输入数据,这些输入数据可以是图像数据、图片数据、语音数据等等。图3所示的反馈流数据中包括了来自输入缓存器310、输出缓存器308、流线312的反馈数据。来自输入缓存器310的数据是用于将工作线程a、b、c与数据提供器302的输入数据进行同步。来自输出缓存器308的数据是用于将工作线程a、b、c的输出数据与数据提供器302进行同步。图3所示的流线312是用于实现状态的管理。逻辑上位于管道模型l所在层的上层在创建流线实体以后,每个流线主要以五个状态(pending、waitingfinish、waitingevent、activating、exception)来进行管理,其中每个状态都可以以列表的方式来维护,即每个状态列表中保存相应状态的流线实体。首先创建流线实体后是pending状态,流中(管道模型l)没有任何任务,然后根据上层用户调用接口对流操作后,根据任务类型(例如有kernel、sync、delete三种类型),进入相应的waiting状态(例如waitingfinish或waitingevent)。当相关任务完成后,将根据下一个任务的类型,来进行下一次的状态跳转,若无任务则返回到pending状态。若执行了delete任务,则将流线实体进行销毁,不再进行任何操作。在流程中一旦发生错误,将发生异常的流统一放入exception状态列表中,进行统一处理。

图3所示的根据本公开一个实施例的数据处理装置300与图1所示的现有技术进行比较,我们可以发现在本公开数据处理装置300中引入了流线312,这是本公开的其中一个发明点。借助于本公开的流线312,流线312作为资源创建出来,即,一个管道模型l中可以有n条流水线工作。在图3所示的情况下有三条流水线工作。借助于输入缓存器310、输出缓存器308、流线312可以将来自工作线程a、工作线程b、工作线程c的数据与数据提供器302进行同步,避免了现有技术中后处理器306向推理机304的反馈以及推理机304向数据提供器302的逐级反馈,有利于提高数据处理的速度和效率。

在图3所示的结构中在数据提供器302、推理机304、后处理器306对应的下方虚线方框内分别示出了“输入”、“计算”、“输出”,这里的三个虚线框,即“输入”、“计算”、“输出”分别表示数据提供器302、推理机304、后处理器306以及包含的工作线程(a、b、c)所具有的对应功能。即,数据提供器302实现的是输入功能,推理机304实现的是计算功能,后处理器306以及包含的工作线程(a、b、c)实现的是输出功能。进一步的解释是,数据提供器302将来自外部的请求301的数据复制在数据提供器302中(如在数据提供器302方框与虚线框“输入”之间的三条带箭头线“复制在”所示的)。推理机304通过调用流调用来自数据提供器302的数据进行处理(如在推理机304方框与虚线框“计算”之间的三条带箭头线“调用流”所示的)。后处理器306是将推理机304处理完的数据拷贝出来,即拷贝到后处理器306中。例如,后处理器306可以将推理机304处理完的数据分叉到相应的工作线程a、工作线程b、工作线程c,即在工作线程a、工作线程b、工作线程c与实现“计算”功能的推理机304之间通过“同步流”、“拷贝出”而实现了工作线程a、工作线程b、工作线程c与推理机304之间的同步,并且将推理机304处理完的数据分叉到(拷贝到)相应的工作线程a、工作线程b、工作线程c。(如在后处理器306方框与虚线框“输出”之间的六条带箭头线“同步流”、“拷贝出”所示的)。图3所示的输出缓存器308、输入缓存器310实现的功能是将后处理器306的工作线程a、工作线程b、工作线程c的数据与数据提供器302进行同步,流线312实现的功能是可以将工作线程a、工作线程b、工作线程c的状态与数据提供器302的状态进行同步,或者说是将工作线程a、工作线程b、工作线程c上的事件与数据提供器302的事件进行同步。

例如,数据提供器302提供的是输入的批尺寸(batchsize)张图片数据,推理机304使用n条流水线进行处理(n>(16/mp),其中mp为模型并行度)。图3所示的结构中数据提供器302与推理机304之间有三个带有箭头的线条,表示有三条流水线进行处理,也即表示推理机304具有三个核。如在上面提到的,只要数据提供器302中还有未处理完的数据,那么在具有多核的推理机304当中任意一个核空闲的情况下,就会将该核已经处理完的数据传递出去,即传递给后处理器306,并告诉后处理器306数据传递完毕。

其中管道模型l的任务并发度为机器学习芯片上的总核数量除以推理机304上设置的核数量。例如第一种机器学习芯片上的总核数量为16,第二种机器学习芯片上的总核数量为16,第三种机器学习芯片上的总核数量为32。图3所示的推理机304上设置的核数量是3。例如对于第一种机器学习芯片来讲,管道模型l的任务并发度为16/3;对于第二种机器学习芯片来讲,管道模型l的任务并发度为16/3;对于第三种机器学习芯片来讲,管道模型l的任务并发度为32/3。对于特定类型的机器学习芯片来讲,机器学习芯片上面的总核数量是一个常数,或者说是固定的。

推理机304上设置的核数量也称为一个任务需要的核数(corenumberpertask)。该一个任务需要的核数是用户设置的核的数量(corenumber)。

借助于本公开的改进方案,改进的管道模型l可以保证单条流水线达到最大程度的无阻塞,提升了数据处理和传递的总体性能。对输入数据的尺寸例如批尺寸(batchsize)(数据并行度(dp)×网络结构参数(n)=批尺寸)敏感程度减小。例如在残差网络(resnet)50的情况下,在非权值复制场景下批尺寸为8(即,来自请求301的输入数据是8张图片)的每秒帧数(fps)就超过了1000张图片,即每秒处理的图片超过了1000张图片。在权值复制的情况下,批尺寸为4(即,来自请求301的输入数据是4张图片)的每秒帧数(fps)就超过了1000张图片,即每秒处理的图片超过了1000张图片。

实施例2

在图4所示的本公开的一个实施例中,推理机404上设置的多核中的任一个核空闲的情况下,将来自数据提供器402的输入数据流的数据进行处理,并且在推理机404上设置的多核中的任一个核处理完成的情况下,将核上处理后的数据传递给后处理器406。

在本公开的一个实施例中,其中数据提供器402和后处理器406可以布置在中央处理器中,具有多核的推理机404可以布置在具有多核的机器学习芯片上(未示出)。

同样,相对于图1所示的现有技术来讲,图4所示的数据提供器402的改动不大。同样,数据提供器402除了负责管理输入数据之外,还负责管理反馈数据流。例如数据提供器402管理了来自请求401的输入数据,这些输入数据可以是图像数据、图片数据、语音数据等等。图4所示的反馈流数据中包括了来自输入缓存器410、输出缓存器408、流线412的反馈数据。来自输入缓存器410的数据是用于将工作线程d、e、f、g与数据提供器402的输入数据进行同步。来自输出缓存器408的数据是用于将工作线程d、e、f、g的输出数据与数据提供器402进行同步。图4所示的流线412是用于实现状态的管理。逻辑上位于管道模型m所在层的上层在创建流线实体以后,每个流线主要以五个状态(pending、waitingfinish、waitingevent、activating、exception)来进行管理,其中每个状态都可以以列表的方式来维护,即每个状态列表中保存相应状态的流线实体。首先创建流线实体后是pending状态,流中(管道模型m)没有任何任务,然后根据上层用户调用接口对流操作后,根据任务类型(例如有kernel、sync、delete三种类型),进入相应的waiting状态(例如waitingfinish或waitingevent)。当相关任务完成后,将根据下一个任务的类型,来进行下一次的状态跳转,若无任务则返回到pending状态。若执行了delete任务,则将流线实体进行销毁,不再进行任何操作。在流程中一旦发生错误,将发生异常的流统一放入exception状态列表中,进行统一处理。

图4所示的根据本公开一个实施例的数据处理装置400与图1所示的现有技术进行比较,我们可以发现在本公开数据处理装置400中引入了流线412,这是本公开的其中一个发明点。借助于本公开的流线412,流线412作为资源创建出来,即,一个管道模型m中可以有n条流水线工作。在图4所示的情况下有四条流水线工作。借助于输入缓存器410、输出缓存器408、流线412可以将来自工作线程d、工作线程e、工作线程f、工作线程g的数据与数据提供器402进行同步,避免了现有技术中后处理器406向推理机404的反馈以及推理机404向数据提供器402的逐级反馈,有利于提高数据处理的速度和效率。

在图4所示的结构中在数据提供器402、推理机404、后处理器406对应的下方虚线方框内分别示出了“输入”、“计算”、“输出”,这里的三个虚线框,即“输入”、“计算”、“输出”分别表示数据提供器402、推理机404、后处理器406以及包含的工作线程d-g所具有的对应功能。即,数据提供器402实现的是输入功能,推理机404实现的是计算功能,后处理器406以及包含的工作线程d、工作线程e、工作线程f、工作线程g实现的是输出功能。进一步的解释是,数据提供器402将来自外部的请求401的数据复制在数据提供器402中(如在数据提供器402方框与虚线框“输入”之间的四条带箭头线“复制在”所示的)。推理机404通过调用流调用来自数据提供器402的数据进行处理(如在推理机404方框与虚线框“计算”之间的四条带箭头线“调用流”所示的)。后处理器406是将推理机404处理完的数据拷贝出来,即拷贝到后处理器406中。例如,后处理器406可以将推理机404处理完的数据分叉到相应的工作线程d、工作线程e、工作线程f、工作线程g,即在工作线程d、工作线程e、工作线程f、工作线程g与实现“计算”功能的推理机404之间通过“同步流”、“拷贝出”而实现了工作线程d、工作线程e、工作线程f、工作线程g与推理机404之间的同步,并且将推理机404处理完的数据分叉到(拷贝到)相应的工作线程d、工作线程e、工作线程f、工作线程g(如在后处理器406方框与虚线框“输出”之间的八条带箭头线“同步流”、“拷贝出”所示的)。图4所示的输出缓存器408、输入缓存器410实现的功能是将后处理器406的工作线程d、工作线程e、工作线程f、工作线程g的数据与数据提供器402进行同步,流线412实现的功能是可以将工作线程d、工作线程e、工作线程f、工作线程g的状态与数据提供器402的状态进行同步,或者说是将工作线程d、工作线程e、工作线程f、工作线程g上的事件与数据提供器402的事件进行同步。

例如,数据提供器402提供的是输入的批尺寸(batchsize)张图片数据,推理机404使用n条流水线进行处理(n>(16/mp),其中mp为模型并行度)。图4所示的结构中数据提供器402与推理机404之间有四个带有箭头的线条,表示有四条流水线进行处理,也即表示推理机404具有四个核。如在上面提到的,只要数据提供器402中还有未处理完的数据,那么在具有多核的推理机404当中任意一个核空闲的情况下,就会将该核已经处理完的数据传递出去,即传递给后处理器406,并告诉后处理器406数据传递完毕。

其中管道模型m的任务并发度为机器学习芯片上的总核数量除以推理机304上设置的核数量。例如第一种机器学习芯片上的总核数量为16,第二种机器学习芯片上的总核数量为16,第三种机器学习芯片上的总核数量为32。图4所示的推理机404上设置的核数量是4。例如对于第一种机器学习芯片来讲,管道模型m的任务并发度为16/4;对于第二种机器学习芯片来讲,管道模型ml的任务并发度为16/4;对于第一种机器学习芯片来讲,管道模型l的任务并发度为32/4。对于特定类型的机器学习芯片来讲,机器学习芯片上面的总核数量是一个常数,或者说是固定的。

推理机404上设置的核数量也称为一个任务需要的核数(corenumberpertask)。该一个任务需要的核数是用户设置的核的数量(corenumber)。

借助于本公开的改进方案,改进的管道模型m可以保证单条流水线达到最大程度的无阻塞,提升了数据处理和传递的总体性能。对输入数据的尺寸例如批尺寸(batchsize)(数据并行度(dp)×网络结构参数(n)=批尺寸)敏感程度减小。例如在残差网络(resnet)50的情况下,在非权值复制场景下批尺寸为8(即,来自请求301的输入数据是8张图片)的每秒帧数(fps)就超过了1000张图片,即每秒处理的图片超过了1000张图片。在权值复制的情况下,批尺寸为4(即,来自请求301的输入数据是4张图片)的每秒帧数(fps)就超过了1000张图片,即每秒处理的图片超过了1000张图片。

图5是示出根据本公开实施例的电子设备500的结构图。如图所示,该电子设备500可以包括数据处理装置300、数据处理装置400,在一个或多个实施例中,该电子设备500也可以是多核并行的芯片。

图6示意性示出根据本公开一个实施例的一种组合处理装置600的结构图,该组合处理装置600还包括通用互联接口604和其他处理装置606。根据本公开的数据处理装置602可以通过通用互联接口604与其他处理装置606进行交互,共同完成用户指定的操作。

根据本公开的方案,该其他处理装置可以包括中央处理器(“cpu”)、图形处理器(“gpu”)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目可以不做限制而是根据实际需要来确定。在一个或多个实施例中,该其他处理装置可以包括前述的基准硬件平台或基准运算装置,从而其可以与包括测试硬件平台的数据处理装置形成一个测试的系统。在一个或多个实施例中,该其他处理装置可以作为本公开的数据处理装置(其可以具体化为人工智能相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运,完成对本机器学习运算装置的开启、停止等的基本控制;其他处理装置也可以和机器学习相关运算装置协作共同完成运算任务。

根据本公开的方案,该通用互联接口可以用于在数据处理装置与其他处理装置间传输数据和控制指令。例如,该数据处理装置可以经由通用互联接口从其他处理装置中获取所需的输入数据,写入该数据处理装置上的存储装置(或称存储器)。进一步,该数据处理装置可以经由通用互联接口从其他处理装置中获取控制指令,写入数据处理装置上的控制缓存。替代地或可选地,通用互联接口也可以读取数据处理装置的存储模块中的数据并传输给其他处理装置。

可选的,该组合处理装置还可以包括存储装置608,其可以分别与数据处理装置和其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存数据处理装置和其他处理装置的数据,尤其那些在数据处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。

根据应用场景的不同,本公开的组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的soc片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。在此情况下,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件例如摄像头、显示器、鼠标、键盘、网卡或wifi接口。

在一些实施例里,本公开还公开了一种芯片,其包括了上述数据处理装置或组合处理装置。在另一些实施例里,本公开还公开了一种芯片封装结构,其包括了上述芯片。

在一些实施例里,本公开还公开了一种板卡,其包括了上述芯片封装结构。参阅图7,其提供了前述的示例性板卡,上述板卡除了包括上述芯片702以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件704、接口装置706和控制器件708。

存储器件与芯片封装结构内的芯片通过总线连接,用于存储数据。存储器件可以包括多组存储单元710。每一组存储单元与芯片通过总线连接。可以理解,每一组存储单元可以是ddrsdram(“doubledataratesdram,双倍速率同步动态随机存储器”)。

ddr不需要提高时钟频率就能加倍提高sdram的速度。ddr允许在时钟脉冲的上升沿和下降沿读出数据。ddr的速度是标准sdram的两倍。在一个实施例中,存储器件可以包括4组存储单元。每一组存储单元可以包括多个ddr4颗粒(芯片)。在一个实施例中,芯片内部可以包括4个72位ddr4控制器,上述72位ddr4控制器中64bit用于传输数据,8bit用于ecc校验。

在一个实施例中,每一组存储单元包括多个并联设置的双倍速率同步动态随机存储器。ddr在一个时钟周期内可以传输两次数据。在芯片中设置控制ddr的控制器,用于对每个存储单元的数据传输与数据存储的控制。

接口装置与芯片封装结构内的芯片电连接。接口装置用于实现芯片与外部设备712(例如服务器或计算机)之间的数据传输。例如在一个实施例中,接口装置可以为标准pcie接口。比如,待处理的数据由服务器通过标准pcie接口传递至芯片,实现数据转移。在另一个实施例中,接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,接口单元能够实现转接功能即可。另外,芯片的计算结果仍由接口装置传送回外部设备(例如服务器)。

控制器件与芯片电连接。控制器件用于对芯片的状态进行监控。具体地,芯片与控制器件可以通过spi接口电连接。控制器件可以包括单片机(microcontrollerunit,mcu)。在一个或多个实施例中,芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,芯片可以处于多负载和轻负载等不同的工作状态。通过控制装置可以实现对芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。

在一些实施例里,本公开还公开了一种电子设备或装置,其包括了上述板卡。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。交通工具包括飞机、轮船和/或车辆;家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;医疗设备包括核磁共振仪、b超仪和/或心电图仪。

根据应用场景的不同,本公开的数据处理装置、或者含有该数据处理装置的组合处理装置、用于优化填充参数的芯片、以及对应的计算机可读存储介质、用于优化填充参数的集成电路可以应用在数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备等等设备。交通工具包括飞机、轮船和/或车辆;家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;医疗设备包括核磁共振仪、b超仪和/或心电图仪。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本公开所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本公开的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

依据以下条款可更好地理解前述内容:

条款a1、一种数据处理的方法,可以包括:

将数据提供器、具有多核的推理机、后处理器依次布置在同一管道模型中;

后处理器将具有多核的推理机并行处理后的数据分叉到相应的工作线程进行后处理,并将后处理得到的反馈数据流经由相应的反馈部件反馈至数据提供器。

条款a2、根据条款a1的数据处理的方法,推理机根据核的数量将输入数据流拆分至多核的相应核上进行并行处理。

条款a3、根据条款a1-a2中任一项的数据处理的方法,其中推理机上设置的多核中的任一个核空闲的情况下,将来自数据提供器的输入数据流的数据进行处理,并且在推理机上设置的多核中的任一个核处理完成的情况下,将核上处理后的数据传递给后处理器。

条款a4、根据条款a1-a3中任一项的数据处理的方法,其中反馈部件包括:

流线、输出缓存器、输入缓存器。

条款a5、根据条款a1-a4中任一项的数据处理的方法,其中多核包括图形处理器、语音处理器、现场可编程门阵列和/或专用数据处理装置。

条款a6、根据条款a1-a5中任一项的数据处理的方法,其中数据提供器和后处理器布置在中央处理器中,具有多核的推理机布置在具有多核的机器学习芯片上。

条款a7、根据条款a1-a6中任一项的数据处理的方法,其中管道模型的任务并发度为机器学习芯片上的总核数量除以推理机上设置的核数量。

条款a8、一种数据处理装置,可以包括:

处理器,其配置用于执行程序指令;以及

存储器,其配置用于存储程序指令,当程序指令由处理器加载并执行时,使得装置执行根据根据条款a1-a7的任意一项的方法。

条款a9、一种计算机可读存储介质,其中存储有程序指令,程序指令适于由处理器加载并执行根据条款a1-a8的任意一项的方法。

条款a10、一种数据处理装置,可以包括:

依次布置在同一管道模型中的数据提供器、具有多核的推理机、后处理器;

其中后处理器将具有多核的推理机并行处理后的数据分叉到相应的工作线程进行后处理,并将后处理得到的反馈数据流经由相应的反馈部件反馈至数据提供器。

条款a11、根据条款a10的数据处理装置,其中推理机根据核的数量将输入数据流拆分至多核的相应核上进行并行处理。

条款a12、根据条款a10-11任一项的数据处理装置,其中推理机上设置的多核中的任一个核空闲的情况下,将来自数据提供器的输入数据流的数据进行处理,并且在推理机上设置的多核中的任一个核处理完成的情况下,将核上处理后的数据传递给后处理器。

条款a13、根据条款a10-12任一项的数据处理装置,其中反馈部件包括:

流线、输出缓存器、输入缓存器。

条款a14、根据条款a10-13任一项的数据处理装置,其中多核包括图形处理器、语音处理器、现场可编程门阵列和/或专用数据处理装置。

条款a15、根据条款a10-14任一项的数据处理装置,其中数据提供器和后处理器布置在中央处理器中,具有多核的推理机布置在具有多核的机器学习芯片上。

条款a16、根据条款a10-15任一项的数据处理装置,其中管道模型的任务并发度为机器学习芯片上的总核数量除以推理机上设置的核数量。

条款a17、一种电子设备,包括根据条款a10-16任一项的数据处理装置。

以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本公开的限制。

应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上,本说明书内容不应理解为对本公开的限制。


技术特征:

1.一种数据处理的方法,包括:

将数据提供器、具有多核的推理机、后处理器依次布置在同一管道模型中;

所述后处理器将具有多核的所述推理机并行处理后的数据分叉到相应的工作线程进行后处理,并将后处理得到的反馈数据流经由相应的反馈部件反馈至所述数据提供器。

2.根据权利要求1所述的数据处理的方法,所述推理机根据核的数量将输入数据流拆分至所述多核的相应核上进行并行处理。

3.根据权利要求2所述的数据处理的方法,其中所述推理机上设置的所述多核中的任一个核空闲的情况下,将来自所述数据提供器的输入数据流的数据进行处理,并且在所述推理机上设置的所述多核中的任一个核处理完成的情况下,将所述核上处理后的数据传递给所述后处理器。

4.根据权利要求3所述的数据处理的方法,其中所述反馈部件包括:

流线、输出缓存器、输入缓存器。

5.根据权利要求1-4中任一项所述的数据处理的方法,其中所述多核包括图形处理器、语音处理器、现场可编程门阵列和/或专用数据处理装置。

6.根据权利要求5所述的数据处理的方法,其中所述数据提供器和后处理器布置在中央处理器中,所述具有多核的推理机布置在具有多核的机器学习芯片上。

7.根据权利要求6所述的数据处理的方法,其中管道模型的任务并发度为所述机器学习芯片上的总核数量除以所述推理机上设置的核数量。

8.一种数据处理装置,包括:

依次布置在同一管道模型中的数据提供器、具有多核的推理机、后处理器;

其中所述后处理器将具有多核的所述推理机并行处理后的数据分叉到相应的工作线程进行后处理,并将后处理得到的反馈数据流经由相应的反馈部件反馈至所述数据提供器。

9.根据权利要求8所述的数据处理装置,其中所述推理机根据核的数量将输入数据流拆分至所述多核的相应核上进行并行处理。

10.根据权利要求9所述的数据处理装置,其中所述推理机上设置的所述多核中的任一个核空闲的情况下,将来自所述数据提供器的输入数据流的数据进行处理,并且在所述推理机上设置的所述多核中的任一个核处理完成的情况下,将所述核上处理后的数据传递给所述后处理器。

11.根据权利要求10所述的数据处理装置,其中所述反馈部件包括:

流线、输出缓存器、输入缓存器。

12.根据权利要求8-11中任一项所述的数据处理装置,其中所述多核包括图形处理器、语音处理器、现场可编程门阵列和/或专用数据处理装置。

13.根据权利要求12所述的数据处理装置,其中所述数据提供器和后处理器布置在中央处理器中,所述具有多核的推理机布置在具有多核的机器学习芯片上。

14.根据权利要求13所述的数据处理装置,其中管道模型的任务并发度为所述机器学习芯片上的总核数量除以所述推理机上设置的核数量。

15.一种电子设备,包括如权利要求8-14中任一项所述的数据处理装置。

技术总结
本公开涉及一种数据处理的方法、数据处理装置和电子设备。其中该数据处理装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。该数据处理装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与数据处理装置和其他处理装置连接,用于数据处理装置和其他处理装置的数据服务。借助于本公开的内容,可以避免数据处理装置内部的逐级反馈,保证数据处理装置在单条管道模型中实现最大程度的无阻塞。

技术研发人员:不公告发明人
受保护的技术使用者:中科寒武纪科技股份有限公司
技术研发日:2020.01.13
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28122.html

最新回复(0)