基于多核处理器的数据处理方法及相关产品技术

技术编号:34015478 阅读:23 留言:0更新日期:2022-07-02 15:38
本披露公开了一种基于多核处理器的数据处理方法、多核处理器、芯片和板卡。该多核处理器可以作为计算装置包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本披露的方案基于多核处理器对排序处理进行优化,提高了运算处理效率。提高了运算处理效率。提高了运算处理效率。

【技术实现步骤摘要】
基于多核处理器的数据处理方法及相关产品


[0001]本披露一般地涉及数据处理领域。更具体地,本披露涉及一种基于多核处理器的数据处理方法、多核处理器、芯片和板卡。

技术介绍

[0002]在数据处理过程中,通常需要在大量数据中选取满足条件的部分数据。例如,在神经网络运算中的TopK算子,需要选取k个(k为正整数)数值最大(或最小或满足其他不等式或其他数值上的约束)的数据或连同索引(index)进行输出。目前,主要以堆排序、快速排序、冒泡排序等排序算法为基础进行数据选取并输出,并且通常基于单个处理核来实现排序算法,数据处理效率较低。
[0003]随着硬件技术的发展,现代智能处理器多采用多核并行的框架。如何在多核并行框架中高效地解决大规模数据的诸如TopK一类的排序问题,有效地降低外部存储电路的访存开销,最大限度地提高数据的并行度,是目前数据处理领域急需解决的问题。

技术实现思路

[0004]为了至少解决如上所提到的一个或多个技术问题,本披露实施例提供了一种基于多核处理器的数据处理方法、多核处理器、芯片和板卡。
[0005]在第一方面中,本披露实施例提供了一种基于多核处理器的数据处理方法,所述多核处理器包括多个处理核,所述方法包括:
[0006]根据配置方案,调度一个或多个处理核对待处理数据执行排序处理,其中所述配置方案指示要使用的处理核数量和所述待处理数据的拆分方式,所述排序处理用于从所述待处理数据的指定的排序维度中筛选出满足第一预定条件的指定数量的数值;以及
[0007]根据所述配置方案,对所调度的一个或多个处理核返回的处理结果选择性进行后处理,以获得最终结果。
[0008]在第二方面中,本披露实施例提供了一种多核处理器,包括多个处理核,所述多核处理器配置用于前述第一方面的方法执行数据处理。
[0009]在第三方面中,本披露实施例提供了一种芯片,其包括前述第二方面的多核处理器。
[0010]在第四方面中,本披露实施例提供了一种板卡,其包括前述第三方面的芯片。
[0011]通过如上所提供的基于多核处理器的数据处理方法、多核处理器、芯片和板卡,本披露实施例的方案能够合理、灵活调度可用处理核来共同执行排序处理,从而匹配待处理数据的规模和可用的处理核资源,充分利用多个处理核的并行处理能力,有效提高数据排序处理速度。
附图说明
[0012]通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目
的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0013]图1示出本披露实施例的板卡的结构图;
[0014]图2示出本披露实施例的组合处理装置的结构图;
[0015]图3a示出了本披露实施例的计算装置中单个处理核的内部结构示意图;
[0016]图3b示出了本披露实施例的计算装置为多核的内部结构简化示意图;
[0017]图4示出了根据本披露实施例的数据筛选阶段中选取第K大的数据的示例性逻辑流程图;
[0018]图5示出了根据本披露实施例的按照第一筛选配置进行数据筛选的示例性逻辑图;
[0019]图6示出了根据本披露实施例的按照第二筛选配置进行数据筛选的示例性逻辑图;
[0020]图7示出了根据本披露实施例的按照第四筛选配置进行数据筛选的示例性逻辑图;以及
[0021]图8示出了根据本披露实施例的基于多核处理器的数据处理方法的示例性流程图。
具体实施方式
[0022]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0023]应当理解,本披露的权利要求、说明书及附图中可能出现的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0024]还应当理解,在本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0025]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
[0026]示例性硬件环境
[0027]图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特
decode unit,IDU)312。取指单元311用以获取来自处理装置203的指令,指令译码单元312则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块32和存储模块33。
[0037]运算模块32包括向量运算单元321及矩阵运算单元322。向量运算单元321用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元322负责深度学习算法的核心计算,即矩阵乘及卷积。
[0038]存储模块33用来存储或搬运相关数据,包括神经元存储单元(neuronRAM,NRAM)331、权值存储单元(weight RAM,WRAM)332、直接内存访问模块(direct memory access,DMA)333。NRAM 331用以存储输入神经元、输出神经元和计算后的中间结果;WRAM 332则用以存储深度学习网络的卷积核,即权值;DMA 333通过总线34连接DRAM 204,负责计算装置301与DRAM 204间的数据搬运。
[0039]图3b示出了计算装置201为多核的内部结构简化示意图。多核计算装置可以用层次化硬件模型来进行抽象。如图所示,多核计算装置可以抽象为四个层级,即板卡级(Card)350、芯片级(Chip)360、处理器簇级 (Cluster)370和处理器核级(Core)380。本披露实施例中主要涉及存储单元的数据传输和计算单元部分,因此附图和描述简要示出和介绍相关的计算结构,省略其他部分。
[0040]在板卡级,每块板本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多核处理器的数据处理方法,所述多核处理器包括多个处理核,所述方法包括:根据配置方案,调度一个或多个处理核对待处理数据执行排序处理,其中所述配置方案指示要使用的处理核数量和所述待处理数据的拆分方式,所述排序处理用于从所述待处理数据的指定的排序维度中筛选出满足第一预定条件的指定数量的数值;以及根据所述配置方案,对所调度的一个或多个处理核返回的处理结果选择性进行后处理,以获得最终结果。2.根据权利要求1所述的方法,其中,所述排序处理包括数据筛选阶段,用于筛选出满足第一预定条件的K个数值,所述配置方案进一步指示所述数据筛选阶段的配置,包括在所述数据筛选阶段使用的处理核数量和所述待处理数据的拆分方式。3.根据权利要求2所述的方法,其中,所述数据筛选阶段的配置包括以下任一或其任意组合:第一筛选配置,其中一个处理核处理一个完整批次的数据,筛选出所述K个数值;第二筛选配置,其中多个处理核共同处理一个完整批次的数据,每个处理核输入一个完整批次的数据,各自筛选出K个数值中对应的一个区块;第三筛选配置,包括初筛配置和复筛配置,在初筛配置中,多个处理核分摊处理一个完整批次的数据,每个处理核输入同一完整批次数据中的不同数据块,筛选出所述数据块中满足第一预定条件的K个数值,在复筛配置中,采用所述第一筛选配置或所述第二筛选配置从所述多个处理核初筛出的数据中筛选出所述K个数值;或第四筛选配置,其中一个处理核处理一个完整批次的数据,按区块输出筛选出的所述K个数值,其中区块之间是有序的,区块内的数值未排序。4.根据权利要求3所述的方法,其中,在所述第一筛选配置中,一个处理核按如下方式从一个完整批次的数据中筛选出所述K个数值:从外部存储电路加载数据,从中选取和存储满足所述第一预定条件的K个数值,以及确定所述第一预定条件的阈值GV;根据所述阈值GV,从外部存储电路筛选出未处理的新数据;将所述新数据与上一次存储的K个数值进行比较,以更新并存储新的K个数值和阈值GV;以及重复所述筛选和所述更新的步骤,直至遍历所述一个完整批次的数据,得到最后更新的K个数值。5.根据权利要求3所述的方法,其中,在所述第二筛选配置中,按如下方式调度多个处理核进行筛选处理:将所述K拆分成Ncore个区块,分配给Ncore个处理核;以及每个处理核输入一个完整批次的数据,并根据所分配区块的上下限,筛选出对应区块的数据。6.根据权利要求3所述的方法,其中,在所述第三筛选配置中,按如下方式调度多个处理核进行初筛处理:在所述待处理数据的指定的排序维度上将所述待处理数据拆分成Ncore个数据块,分配给Ncore个处理核;以及
每个处理核从所分配的数据块中筛选出满足第一预定条件的K个数值。7.根据权利要求3所述的方法,其中,在所述第四筛选配置中,一个处理核按如下方式从一个完整批次的数据中按区块输出筛选出的所述K个数值:在处理核上迭代地对两倍区块量2δ的数据量进行处理:将所述2δ的数据量按其中位数划分为三部分:大于中位数的第一部分、等于中位数的第二部分和小于中位数的第三部分;输出划分后的三部分数据中对应第一预定条件的δ的数据量,以更新外部存储电路的输出存储区域中对应的δ的数据量;其中所述2δ的数据量中的一半来自外部存储电...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:

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

1