CN114691561A - 数据处理电路、数据处理方法及相关产品 - Google Patents

数据处理电路、数据处理方法及相关产品 Download PDF

Info

Publication number
CN114691561A
CN114691561A CN202011566136.0A CN202011566136A CN114691561A CN 114691561 A CN114691561 A CN 114691561A CN 202011566136 A CN202011566136 A CN 202011566136A CN 114691561 A CN114691561 A CN 114691561A
Authority
CN
China
Prior art keywords
data
index
circuit
elements
way
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011566136.0A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Anhui Cambricon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anhui Cambricon Information Technology Co Ltd filed Critical Anhui Cambricon Information Technology Co Ltd
Priority to CN202011566136.0A priority Critical patent/CN114691561A/zh
Publication of CN114691561A publication Critical patent/CN114691561A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本披露公开了一种数据处理电路、数据处理方法及相关产品。该数据处理电路可以实现为计算装置包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本披露的方案提供了数据融合相关操作的硬件实现,其可以简化处理,提高机器的处理效率。

Description

数据处理电路、数据处理方法及相关产品
技术领域
本披露一般地涉及数据处理领域。更具体地,本披露涉及数据处理电路、数据处理方法、芯片和板卡。
背景技术
近年来,随着深度学习的迅猛发展,使得计算机视觉、自然语言处理等一系列领域的算法性能都有了跨越式的进展。然而深度学习算法是一种计算密集型和存储密集型的工具,随着信息处理任务的日趋复杂,对算法实时性和准确性要求不断增高,神经网络往往会被设计得越来越深,使得其计算量和存储空间需求越来越大,导致现存的基于深度学习的人工智能技术难以直接应用在硬件资源受限的手机、卫星或嵌入式设备上。
因此,深度神经网络模型的压缩、加速、优化变得格外重要。大量的研究试着在不影响模型精度的前提下,减少神经网络的计算和存储需求,对深度学习技术在嵌入端、移动端的工程化应用具有十分重要的意义。稀疏化正是模型轻量化方法之一。
网络参数稀疏化是通过适当的方法减少较大网络中的冗余成分,以降低网络对计算量和存储空间的需求。现有的硬件和/或指令集不能有效地支持稀疏化处理和/或与稀疏化后相关的处理。
发明内容
为了至少部分地解决背景技术中提到的一个或多个技术问题,本披露的方案提供了一种数据处理电路、数据处理方法、芯片和板卡。
在第一方面中,本披露公开一种数据处理电路,包括控制电路、存储电路和运算电路,其中:所述控制电路配置用于控制所述存储电路和所述运算电路对多路待融合的数据执行归并排序累加处理;所述存储电路配置用于存储信息,所述信息至少包括处理前和/或处理后的信息;以及所述运算电路配置用于在所述控制电路的控制下,将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合数据,所述融合数据中具有相同索引的数据元素合并为一个融合数据元素。
在第二方面中,本披露提供一种芯片,包括前述第一方面任一实施例的数据处理电路。
在第三方面中,本披露提供一种板卡,包括前述第二方面任一实施例的芯片。
在第四方面中,本披露提供一种使用数据处理电路来处理数据的方法,所述数据处理电路包括控制电路、存储电路和运算电路,所述方法包括:所述控制电路从所述存储电路读取多路待融合的数据;所述运算电路将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合数据,所述融合数据中具有相同索引的数据元素合并为一个融合数据元素;以及将所述融合数据输出给所述存储电路。
通过如上所提供的数据处理电路、使用数据处理电路来处理数据的方法、芯片和板卡,本披露实施例提供了一种支持数据融合操作的硬件电路,用于对多路数据执行归并排序累加处理。在一些实施例中,该数据处理电路可以将多路有序的数据按索引顺序合并为一路有序的融合数据,并且索引相同的数据可以累加。通过提供专门的数据融合相关操作的硬件实现,可以简化并加速处理,由此提高机器的处理效率。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出本披露实施例的板卡的结构图;
图2是示出本披露实施例的组合处理装置的结构图;
图3是示出本披露实施例的单核或多核计算装置的处理器核的内部结构示意图;
图4是示出根据本披露实施例的数据融合处理的示例性原理图;
图5是示出本披露实施例的数据处理装置的结构示意图;
图6是示出本披露一个实施例的用于数据融合处理的示例性电路图;以及
图7是示出本披露实施例的数据处理方法的示例性流程图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中可能出现的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
下面结合附图来详细描述本披露的具体实施方式。
图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和存储装置204。
计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。
接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。
处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。
存储装置204用以存储待处理的数据,其可以是DRAM,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。
图3示出了计算装置201为单核或多核装置时处理器核的内部结构示意图。计算装置301用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,计算装置301包括三大模块:控制模块31、运算模块32及存储模块33。
控制模块31用以协调并控制运算模块32和存储模块33的工作,以完成深度学习的任务,其包括取指单元(instruction fetch unit,IFU)311及指令译码单元(instructiondecode unit,IDU)312。取指单元311用以获取来自处理装置203的指令,指令译码单元312则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块32和存储模块33。
运算模块32包括向量运算单元321及矩阵运算单元322。向量运算单元321用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元322负责深度学习算法的核心计算,即矩阵乘及卷积。
存储模块33用来存储或搬运相关数据,包括神经元存储单元(neuron RAM,NRAM)331、参数存储单元(weight RAM,WRAM)332、直接内存访问模块(direct memory access,DMA)333。NRAM 331用以存储输入神经元、输出神经元和计算后的中间结果;WRAM 332则用以存储深度学习网络的卷积核,即权值;DMA 333通过总线34连接DRAM 204,负责计算装置301与DRAM 204间的数据搬运。
本披露的实施例基于前述硬件环境,提供一种数据处理电路,支持数据融合操作。如背景技术所提到的,网络参数稀疏化可以有效降低网络对计算量和存储空间的需求。但是网络参数稀疏化之后对后续的处理也会带来一系列影响。例如,在稀疏矩阵乘法运算中,可能需要对运算中间得到的向量进行排序累加,以获得预期运算结果。鉴于此,本披露的实施例提供了一种数据融合处理的硬件方案,以简化并加速此类处理。
图4示出根据本披露实施例的数据融合处理的示例性原理。图中示例性示出了4路待融合的数据,每路数据包括6个数据元素。数据元素可以是标量、向量或更高维度的张量,图中示例性示出为标量数值。每个数据元素具有关联的索引,用于指示该数据元素在对应的一路数据中的位置信息。例如,原始的一路数据可能包括1000个数据元素,但是仅部分位置上的数据元素是有效的,此时,可以将这些有效元素提取出来形成上述待融合数据,同时提取这些有效元素对应的索引以指示其在原始数据中的位置,这些索引形成上述待融合索引。
图中示意性示出了对应的4路待融合的索引,每路索引对应一路待融合的数据。第1路索引用于标识第1路数据中各数据元素的位置信息,第2路索引用于标识第2路数据中各数据元素的位置信息,以此类推。进一步地,每路索引中的索引元素均有序存储,并与对应的一路数据中的数据元素一一对应。在图中示例中,各路索引中的索引元素均按照第一顺序(例如,从小到大的顺序)排列,每路数据中的数据元素也按照对应索引的顺序有序排列。例如,第1路索引中的第1个索引元素指示第1路数据中的第1个数据元素的索引为0,也即首个元素;第1路索引中的第2个索引元素指示第1路数据中的第2个数据元素的索引为2,也即第3个元素;以此类推。
经过数据融合后,这4路数据按照其对应的索引,归并为一路有序的融合数据,并且具有相同索引的数据元素合并成一个融合数据元素。如图所示,融合后的索引包括16个索引元素,按照第二顺序(例如,从小到大的顺序)排列,其中去除了待融合索引中重复的索引元素,如图中深色方块所示。相应地,融合后的数据也包括16个数据元素,按照对应索引的顺序有序排列,并且具有相同索引的数据元素合并成一个融合数据元素,如图中深色方块所示。在此示例中,通过累加方式,将相同索引的数据元素合并成一个融合数据元素。例如,对于融合后索引元素“0”,其对应的融合数据元素为“25”,也即各路数据的首个数据元素之和(2+1+10+12=25)。又例如,对于融合后索引元素“9”,其对应的融合数据元素为“7”,是第1路第5个数据元素与第4路第3个数据元素之和(1+6=7)。
本领域技术人员可以理解,上面提到的第一顺序与第二顺序可以相同,也可以不同,并且二者都可以选自以下任一:从小到大的顺序,或从大到小的顺序。本领域技术人员还可以理解,尽管在图中示出各路数据具有相等的数据元素个数,但是各路数据中的数据元素个数可以相同,也可以不同,本披露在此方面没有限制。
在本披露的一些实施例中,数据元素是标量,因此,包括若干数据元素的一路数据可以称为一个数据向量,向量长度等于所包含的数据元素的个数。
图5示出根据本披露实施例的数据处理电路500的结构框图。数据处理电路500例如可以实现在图2的计算装置201中。如图所示,数据处理电路500可以包括控制电路510、存储电路520和运算电路530。
控制电路510的功能可以类似于图3的控制模块31,其例如可以包括取指单元,用以获取来自例如图2的处理装置203的指令,以及指令译码单元,用于将获取的指令进行译码,并将译码结果作为控制信息发送给运算电路530和存储电路520。
在一个实施例中,控制电路510可以配置用于控制存储电路520和运算电路530,以对多路待融合的数据执行归并排序累加处理。
存储电路520可以配置用于存储各种信息,这些信息至少包括归并排序累加处理前和/或归并排序累加处理后的信息。存储电路例如可以是图3的WRAM 332。
运算电路530可以配置用于在控制电路的控制下,将多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合数据,其中融合数据中具有相同索引的数据元素合并为一个融合数据元素。
在一个实施例中,运算电路530还可以包括运算处理电路(未示出),其可以配置成根据运算指令对运算电路执行运算前的数据进行预处理或者对运算后的数据进行后处理。在一些应用场景中,前述的预处理和后处理可以例如包括数据拆分和/或数据拼接操作。
可以采取多种方式来实施运算电路。图6示出根据本披露一个实施例的用于数据融合处理的示例性电路图。
如图所示,在一个实施例中,存储电路可以示例性划分为两部分:第一存储电路622和第二存储电路624。
第一存储电路622可以配置用于存储待融合的K路数据和这K路数据对应的K路索引,K>1。这K路索引中的索引元素指示K路数据中对应的数据元素的索引信息,也即索引元素与数据元素具有一一对应的关系。此外,这K路索引中每路索引的索引元素均按第一顺序有序排列,并且K路数据中每路数据的数据元素按照对应索引的顺序有序排列。图中示例性示出了图4所示的4路索引以及对应的4路数据,图中各个数据元素用符号D来标识,未示出具体数值。在一些实施例中,每路索引可以是连续存储的,例如作为一个向量进行存储,从而可以根据每路索引的起始地址或向量的起始地址来访问该路索引/索引向量。对应地,每路数据也可以是连续存储的,例如作为一个向量进行存储,从而可以根据每路数据的起始地址或向量的起始地址来访问该路数据/数据向量。
第二存储电路624可以配置用于存储运算电路输出的融合数据和融合数据对应的融合索引,其中融合索引中的融合索引元素按第二顺序有序排列,并且融合数据中的融合数据元素按照融合索引的顺序有序排列。从图中示例可以看出,待融合的4路数据变成了一路融合数据,相应的4路索引也变成了一路融合索引,其中融合索引元素按照从小到大的顺序排列,大小相同的索引元素被去除。与之对应的融合数据元素按照融合索引的顺序排列,并且具有相同索引的数据元素进行累加,作为融合数据元素。
在一些实施例中,运算电路可以包括排序电路632和累加电路636,以协同实现排序累加功能。具体地,排序电路632用于将K路索引按照索引元素的大小排序,并有序输出给累加电路636。累加电路636则在从排序电路接收到相同的索引元素时,将相同的索引元素对应的数据元素进行累加处理,并去除重复的索引元素。
在一些实施例中,排序电路632可以包括比较电路631和缓冲电路633。比较电路631实现比较功能,其对多路待融合的索引中的索引元素的大小进行比较,并提交比较结果给控制电路610以供排序。控制电路610根据比较结果确定索引元素在缓冲电路633中的插入位置。缓冲电路633用于缓存已比较的索引元素以及与其对应的数据元素的信息,并按索引元素的大小顺序缓存。
具体地,比较电路631可以配置用于将待融合索引中的索引元素与缓冲电路633中未输出的索引元素进行比较,并输出比较结果给控制电路610。而缓冲电路633可以配置用于根据控制电路610的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
在一些实施例中,缓冲电路633可以配置成缓存K个索引元素,这K个索引元素按照大小排序。本领域技术人员可以理解,缓冲电路也可以配置成缓存更多的索引元素,本披露实施例在此方面没有限制。取决于缓冲电路633中的排序方式以及期望输出的排序方式,诸如从小到大,或从大到小,每次可以按照指定顺序输出当前序列中的首个索引元素或末个索引元素。例如,在图中的示例中,缓冲电路633从左到右按照从大到小的顺序缓存索引元素,每次输出最右边的一个索引元素,也即当前序列中最小的索引元素,例如“7”。
在这些实施例中,比较电路631可以包括K-1路比较器,配置用于将待融合的索引元素分别与缓冲电路633中未输出的索引元素进行比较,也即与当前序列输出首个或末个索引元素后剩余的K-1个索引元素进行比较,生成比较结果并输出给控制电路610。
例如,对于待融合的4路数据,图中示出了3路比较器,其将从第一存储电路622接收的指定索引元素(此时为9)与缓冲电路633中当前未输出的3个索引元素进行比较,图中为左边的三个索引元素100、10和9。
在一些实施例中,比较器的比较结果可以使用位图来表示。例如,如果待融合的索引元素(例如,9)大于等于缓冲电路中的索引元素,则比较器可以输出“1”,否则,输出“0”;反过来也可以。在图中的示例中,待融合的索引元素(9)与缓冲电路中的各个索引元素(100、10和9)的比较结果为“001”,输出给控制电路610。
控制电路610可以配置用于根据接收的比较结果,确定该待融合的索引元素在缓冲电路633的当前序列中的插入位置。具体地,控制电路610可以进一步配置用于根据位图中比特位的变化位置,确定插入位置。在图中的示例中,比较结果为“001”,说明当前待融合的索引元素小于缓冲电路中左起第1个和第2个索引元素,大于等于左起第3个索引元素,则插入位置在第2个索引元素与第3个索引元素之间,也即在“10”和“9”之间。
在一些实施例中,缓冲电路633可以配置用于根据控制电路610的指示,在插入位置中插入该待融合的索引元素。在图中示例中,缓冲电路633中插入该索引元素之后的序列变为“100,10,9,9”。
为了使得在归并排序累加处理中能够获取到索引对应的数据,在一些实施例中,缓冲电路633可以进一步配置用于:按索引元素的值顺序,有序存储已比较的索引元素以及与其对应的数据元素。如图所示,缓冲电路633除了缓存索引元素,还缓存与其对应的数据元素的信息。因此,每次对索引元素进行比较确定插入位置之后,可以将与该索引元素对应的数据元素信息也一并插入到缓存电路中。本领域技术人员可以理解,数据元素的信息可以是数据元素本身,例如图中示例性示出的D32、D23等等;数据元素的信息也可以是指向该数据元素的地址,本披露实施例在此方面没有限制。
接着,缓冲电路633可以输出最右端的索引元素“9”。此时,控制电路610可以进一步配置用于根据缓冲电路中输出的索引元素,确定待融合的下一索引元素的访存信息。具体地,控制电路根据输出的索引元素在K路索引中属于哪一路索引,从该路索引中取出下一待融合的索引元素,送到比较电路631进行比较。
进一步地,在有序输出时,缓冲电路633可以配置成按索引元素的值顺序(例如,从小到大),有序输出已比较的索引元素作为融合索引,并同步输出与其对应的数据元素作为融合数据。输出的数据提供给累加电路636做进一步处理。
为了清楚起见,图中还示出了缓冲电路633中随排序进度缓存过的索引序列。如图所示,初始地,K路索引中各路的首个索引元素按照从大到小的顺序存储在缓冲电路633中。在一些实现中,这4个索引元素可以一次性取出、排序并存储在缓冲电路中。在另一些实现中,可以将缓冲电路中的数据初始化为负数,按顺序(例如,按照从第1路到第4路的顺序)逐个取出各路索引的首个索引元素,与缓冲电路中的数据进行比较,并放入合适位置。在此示例中,4路索引的首个索引元素都是0,因此可以根据取数的顺序,按照各路索引的序号排列,例如第1路的“0”放置在最右边,第2路的“0”放置在右边第2位置,以此类推。
接着,缓冲电路中最右边的属于第1路的“0”被输出。根据这个输出的索引元素属于哪一路索引,从对应的该路索引中取出下一待融合的索引元素,也即第1路第2个索引元素“2”。“2”被送入比较电路与缓冲电路中剩余的三个“0”进行比较,比较结果为“111”,也即比缓冲电路中现有的三个数“0”都大,因此“2”被插入在序列最尾端,此时缓冲电路中的序列变为“2,0,0,0”。
接着,缓冲电路中最右边的属于第2路的“0”被输出,因此取出第2路第2个元素“3”与缓冲电路中剩余的“2,0,0”进行比较,比较结果为“111”,因此“3”被插入在序列最尾端,此时缓冲电路中的序列变为“3,2,0,0”。
接着,缓冲电路中最右边的属于第3路的“0”被输出,因此取出第3路第2个元素“100”与缓冲电路中剩余的“2,0,0”进行比较,比较结果为“111”,因此“100”被插入在序列最尾端,此时缓冲电路中的序列变为“100,3,2,0”。
接着,输出缓冲电路最右边的属于第4路的“0”,取出第4路第2个元素“2”与缓冲电路中剩余的“100,3,2”进行比较,比较结果为“001”,因此“2”被插入在序列最右边第1个元素之后,此时缓冲电路中的序列变为“100,3,2,2”。
依次类推,可以逐个将K路索引中的索引元素进行比较,并根据大小排序插入到缓冲电路中的合适位置,再由缓冲电路输出。例如,缓冲电路每次输出的最小索引元素可以按顺序输出给累加电路636。本领域技术人员可以理解,如果缓冲电路的空间足够,也可以在排序完成之后再统一输出归并排序后的元素。
从输出的归并排序后的索引元素可以看出,当存在大小相同的索引元素时,排序电路632仍然保留这些大小相同的索引元素,不会进行去重操作,而是提供给累加电路636进行处理。
在一些实施例中,累加电路636可以包括比较器637、缓冲器635和加法器639。
比较器637可以配置用于将从排序电路632有序输出的索引元素与上一个融合索引元素进行比较并输出比较结果。比较结果可以是“1”指示相同,“0”指示不相同;反之亦然。
缓冲器635可以配置用于根据比较器637的比较结果来控制输出索引元素。在一些实施例中,缓冲器635可以仅当比较结果指示不相同时,输出当前索引元素作为新的融合索引元素。换言之,当比较结果指示相同时,缓冲器635不输出当前索引元素,也即丢弃与上一个融合索引元素重复的索引元素。如图所示,第二存储电路624中的融合索引不存在重复的融合索引元素。
加法器639可以配置用于根据比较器637的比较结果,来控制数据元素的累加。具体地,当比较结果指示不相同时,直接输出与当前索引元素对应的数据元素作为新的融合数据元素;当比较结果指示相同时,将当前索引元素对应的数据元素累加到上一个融合索引元素所对应的融合数据元素上。
通过在每次接收到排序电路632的输出时,将当前索引元素与上一个融合索引元素进行比较,可以针对相同的索引元素进行区别处理,从而实现索引去重和数据累加功能。
图7示出了根据本披露实施例的利用上述数据处理电路执行的数据处理方法700的示例性流程图。
如图7所示,在步骤710中,控制电路从存储电路中读取多路待融合的数据。接着,在步骤720中,运算电路将多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合数据,其中融合数据中具有相同索引的数据元素合并为一个融合数据元素。最后,在步骤730中,运算电路将融合数据输出给存储电路。尽管在图中将方法步骤按顺序示出,但是这些步骤会逐个数据元素循环起来,在这些循环中,有些步骤是同时发生的。例如,当运算电路输出数据时,控制电路会同时去访问存储电路,以读取下一待融合的数据元素。
在一些实施例中,存储电路可以包括第一存储电路和第二存储电路。第一存储电路配置用于存储待融合的K路数据和K路数据对应的K路索引,K>1,其中K路索引中的索引元素指示K路数据中对应的数据元素的索引信息,K路索引中每路索引的索引元素均按第一顺序有序排列,K路数据中每路数据的数据元素按照对应索引的顺序有序排列。第二存储电路配置用于存储运算电路输出的融合数据和融合数据对应的融合索引,其中融合索引中的融合索引元素按第二顺序有序排列,融合数据中的融合数据元素按照融合索引的顺序有序排列。
在一些实施例中,第一顺序与第二顺序可以相同或不同,并且第一顺序和第二顺序选自以下任一:从小到大的顺序,或从大到小的顺序。例如,可以将各路按从小到大顺序排列的多路索引,融合为一路按从大到小顺序排列的融合索引,或者融合为一路按从小到大顺序排列的融合索引。
在一些实施例中,运算电路可以包括排序电路和累加电路。此时,方法可以进一步包括:排序电路将K路索引按照索引元素的大小排序并有序输出给累加电路;以及当从排序电路接收到相同的索引元素时,累加电路将相同的索引元素对应的数据元素进行累加处理,并去除重复的索引元素。
在一些实施例中,排序电路可以包括比较电路和缓冲电路。此时,方法可以进一步包括:比较电路将K路索引中待排序的索引元素与缓冲电路中未输出的索引元素进行比较,并输出比较结果给控制电路;以及缓冲电路根据控制电路的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
在一些实施例中,比较电路可以包括K-1路比较器。此时,方法可以进一步包括:K-1路比较器将K路索引中待排序的索引元素分别与缓冲电路中当前序列的K-1个索引元素进行比较,生成比较结果并输出给控制电路。
在一些实施例中,方法进一步包括:控制电路根据比较结果,确定待排序的索引元素在缓冲电路中当前序列中的插入位置。
在一些实施例中,比较结果使用位图来表示,并且方法进一步包括:控制电路根据位图中比特位的变化位置,确定插入位置。
在一些实施例中,方法进一步包括:缓冲电路根据控制电路的指示,在插入位置中插入待排序的索引元素以及与其对应的数据元素的信息。
在一些实施例中,方法进一步包括:缓冲电路按指定顺序输出当前序列中的首个或末个索引元素以及与其对应的数据元素的信息。
在一些实施例中,方法进一步包括:控制电路根据缓冲电路中输出的索引元素,确定待排序的下一索引元素的访存信息。
在一些实施例中,累加电路包括比较器、缓冲器和加法器。此时,方法可以进一步包括:比较器将从排序电路输出的索引元素与上一个融合索引元素进行比较并输出比较结果;缓冲器仅当比较结果指示不相同时,输出索引元素作为新的融合索引元素;并且当比较结果指示不相同时,加法器直接输出与索引元素对应的数据元素作为新的融合数据元素,以及当比较结果指示相同时,将索引元素对应的数据元素累加到上一个融合索引元素所对应的融合数据元素上。
在一些实施例中,该多路待融合的数据中的数据元素是稀疏矩阵中的有效数据元素,并且索引指示这些有效数据元素在稀疏矩阵中的位置信息。
本领域技术人员可以理解,上述方法的各个步骤分别对应于前面结合示例电路图描述的各个电路,因此前面描述的特征可以同样地适用于方法步骤,在此不再重复。
从上面描述可知,本披露实施例提供了一种硬件电路,用于执行与归并排序累加处理相关的数据融合操作。通过用硬件实现归并排序累加,可以加快处理速度,从而更好地支持与稀疏化后的处理相关的操作,例如稀疏矩阵乘等运算。在一些实施例中,该硬件电路可以将多路有序的数据合并为一路有序的融合数据,并且索引相同的数据可以累加。通过提供专门的数据融合相关操作的硬件实现,可以简化并加速处理,由此提高机器的处理效率。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款1、一种数据处理电路,包括控制电路、存储电路和运算电路,其中:
所述控制电路配置用于控制所述存储电路和所述运算电路对多路待融合的数据执行归并排序累加处理;
所述存储电路配置用于存储信息,所述信息至少包括处理前和/或处理后的信息;以及
所述运算电路配置用于在所述控制电路的控制下,将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合数据,所述融合数据中具有相同索引的数据元素合并为一个融合数据元素。
条款2、根据条款1所述的数据处理电路,其中所述存储电路包括第一存储电路和第二存储电路,
所述第一存储电路配置用于存储所述待融合的K路数据和所述K路数据对应的K路索引,K>1,其中所述K路索引中的索引元素指示所述K路数据中对应的数据元素的索引信息,所述K路索引中每路索引的索引元素均按第一顺序有序排列,所述K路数据中每路数据的数据元素按照对应索引的顺序有序排列;并且
所述第二存储电路配置用于存储所述运算电路输出的所述融合数据和所述融合数据对应的融合索引,其中所述融合索引中的融合索引元素按第二顺序有序排列,所述融合数据中的融合数据元素按照融合索引的顺序有序排列。
条款3、根据条款2所述的数据处理电路,其中所述第一顺序与第二顺序相同或不同,并且所述第一顺序和第二顺序选自以下任一:从小到大的顺序,或从大到小的顺序。
条款4、根据条款2-3任一所述的数据处理电路,其中所述运算电路包括排序电路和累加电路,其中
所述排序电路配置用于将所述K路索引按照索引元素的大小排序并有序输出给所述累加电路;并且
所述累加电路配置用于当从所述排序电路接收到相同的索引元素时,将相同的索引元素对应的数据元素进行累加处理,并去除重复的索引元素。
条款5、根据条款4所述的数据处理电路,其中所述排序电路包括比较电路和缓冲电路,其中:
所述比较电路配置用于将所述K路索引中待排序的索引元素与所述缓冲电路中未输出的索引元素进行比较,并输出比较结果给所述控制电路;并且
所述缓冲电路配置用于根据所述控制电路的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
条款6、根据条款5所述的数据处理电路,其中所述比较电路包括:
K-1路比较器,配置用于将所述K路索引中待排序的索引元素分别与所述缓冲电路中当前序列的K-1个索引元素进行比较,生成比较结果并输出给所述控制电路。
条款7、根据条款6所述的数据处理电路,其中所述控制电路配置用于根据所述比较结果,确定所述待排序的索引元素在所述缓冲电路中当前序列中的插入位置。
条款8、根据条款7所述的数据处理电路,其中所述比较结果使用位图来表示,并且所述控制电路进一步配置用于:根据所述位图中比特位的变化位置,确定所述插入位置。
条款9、根据条款7-8任一所述的数据处理电路,其中所述缓冲电路配置用于根据所述控制电路的指示,在所述插入位置中插入所述待排序的索引元素以及与其对应的数据元素的信息。
条款10、根据条款5-9任一所述的数据处理电路,其中所述缓冲电路进一步配置用于按指定顺序输出当前序列中的首个或末个索引元素以及与其对应的数据元素的信息。
条款11、根据条款10所述的数据处理电路,其中所述控制电路进一步配置用于:根据所述缓冲电路中输出的索引元素,确定待排序的下一索引元素的访存信息。
条款12、根据条款4-11任一所述的数据处理电路,其中所述累加电路包括比较器、缓冲器和加法器,其中:
所述比较器配置用于将从所述排序电路输出的索引元素与上一个融合索引元素进行比较并输出比较结果;
所述缓冲器配置用于仅当所述比较结果指示不相同时,输出所述索引元素作为新的融合索引元素;并且
所述加法器配置用于当所述比较结果指示不相同时,直接输出与所述索引元素对应的数据元素作为新的融合数据元素,以及当所述比较结果指示相同时,将所述索引元素对应的数据元素累加到上一个融合索引元素所对应的融合数据元素上。
条款13、根据条款1-12任一所述的数据处理电路,其中所述多路待融合的数据中的数据元素是稀疏矩阵中的有效数据元素,并且所述索引指示所述有效数据元素在稀疏矩阵中的位置信息。
条款14、一种芯片,包括根据条款1-13任一所述的数据处理电路。
条款15、一种板卡,包括根据条款14所述的芯片。
条款16、一种使用数据处理电路来处理数据的方法,所述数据处理电路包括控制电路、存储电路和运算电路,所述方法包括:
所述控制电路从所述存储电路读取多路待融合的数据;
所述运算电路将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合数据,所述融合数据中具有相同索引的数据元素合并为一个融合数据元素;以及
将所述融合数据输出给所述存储电路。
条款17、根据条款16所述的方法,其中所述存储电路包括第一存储电路和第二存储电路,
所述第一存储电路配置用于存储所述待融合的K路数据和所述K路数据对应的K路索引,K>1,其中所述K路索引中的索引元素指示所述K路数据中对应的数据元素的索引信息,所述K路索引中每路索引的索引元素均按第一顺序有序排列,所述K路数据中每路数据的数据元素按照对应索引的顺序有序排列;并且
所述第二存储电路配置用于存储所述运算电路输出的所述融合数据和所述融合数据对应的融合索引,其中所述融合索引中的融合索引元素按第二顺序有序排列,所述融合数据中的融合数据元素按照融合索引的顺序有序排列。
条款18、根据条款17所述的方法,其中所述第一顺序与第二顺序相同或不同,并且所述第一顺序和第二顺序选自以下任一:从小到大的顺序,或从大到小的顺序。
条款19、根据条款17-18任一所述的方法,其中所述运算电路包括排序电路和累加电路,并且所述方法进一步包括:
所述排序电路将所述K路索引按照索引元素的大小排序并有序输出给所述累加电路;以及
当从所述排序电路接收到相同的索引元素时,所述累加电路将相同的索引元素对应的数据元素进行累加处理,并去除重复的索引元素。
条款20、根据条款19所述的方法,其中所述排序电路包括比较电路和缓冲电路,并且所述方法进一步包括:
所述比较电路将所述K路索引中待排序的索引元素与所述缓冲电路中未输出的索引元素进行比较,并输出比较结果给所述控制电路;以及
所述缓冲电路根据所述控制电路的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
条款21、根据条款20所述的方法,其中所述比较电路包括K-1路比较器,并且所述方法包括:
所述K-1路比较器将所述K路索引中待排序的索引元素分别与所述缓冲电路中当前序列的K-1个索引元素进行比较,生成比较结果并输出给所述控制电路。
条款22、根据条款21所述的方法,进一步包括:
所述控制电路根据所述比较结果,确定所述待排序的索引元素在所述缓冲电路中当前序列中的插入位置。
条款23、根据条款22所述的方法,其中所述比较结果使用位图来表示,并且所述方法进一步包括:所述控制电路根据所述位图中比特位的变化位置,确定所述插入位置。
条款24、根据条款22-23任一所述的方法,进一步包括:
所述缓冲电路根据所述控制电路的指示,在所述插入位置中插入所述待排序的索引元素以及与其对应的数据元素的信息。
条款25、根据条款20-24任一所述的方法,进一步包括:
所述缓冲电路按指定顺序输出当前序列中的首个或末个索引元素以及与其对应的数据元素的信息。
条款26、根据条款25所述的方法,进一步包括:
所述控制电路根据所述缓冲电路中输出的索引元素,确定待排序的下一索引元素的访存信息。
条款27、根据条款19-26任一所述的方法,其中所述累加电路包括比较器、缓冲器和加法器,并且所述方法包括:
所述比较器将从所述排序电路输出的索引元素与上一个融合索引元素进行比较并输出比较结果;
所述缓冲器仅当所述比较结果指示不相同时,输出所述索引元素作为新的融合索引元素;并且
当所述比较结果指示不相同时,所述加法器直接输出与所述索引元素对应的数据元素作为新的融合数据元素,以及当所述比较结果指示相同时,将所述索引元素对应的数据元素累加到上一个融合索引元素所对应的融合数据元素上。
条款28、根据条款20-27任一所述的方法,其中所述多路待融合的数据中的数据元素是稀疏矩阵中的有效数据元素,并且所述索引指示所述有效数据元素在稀疏矩阵中的位置信息。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。

Claims (28)

1.一种数据处理电路,包括控制电路、存储电路和运算电路,其中:
所述控制电路配置用于控制所述存储电路和所述运算电路对多路待融合的数据执行归并排序累加处理;
所述存储电路配置用于存储信息,所述信息至少包括处理前和/或处理后的信息;以及
所述运算电路配置用于在所述控制电路的控制下,将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合数据,所述融合数据中具有相同索引的数据元素合并为一个融合数据元素。
2.根据权利要求1所述的数据处理电路,其中所述存储电路包括第一存储电路和第二存储电路,
所述第一存储电路配置用于存储所述待融合的K路数据和所述K路数据对应的K路索引,K>1,其中所述K路索引中的索引元素指示所述K路数据中对应的数据元素的索引信息,所述K路索引中每路索引的索引元素均按第一顺序有序排列,所述K路数据中每路数据的数据元素按照对应索引的顺序有序排列;并且
所述第二存储电路配置用于存储所述运算电路输出的所述融合数据和所述融合数据对应的融合索引,其中所述融合索引中的融合索引元素按第二顺序有序排列,所述融合数据中的融合数据元素按照融合索引的顺序有序排列。
3.根据权利要求2所述的数据处理电路,其中所述第一顺序与第二顺序相同或不同,并且所述第一顺序和第二顺序选自以下任一:从小到大的顺序,或从大到小的顺序。
4.根据权利要求2-3任一所述的数据处理电路,其中所述运算电路包括排序电路和累加电路,其中
所述排序电路配置用于将所述K路索引按照索引元素的大小排序并有序输出给所述累加电路;并且
所述累加电路配置用于当从所述排序电路接收到相同的索引元素时,将相同的索引元素对应的数据元素进行累加处理,并去除重复的索引元素。
5.根据权利要求4所述的数据处理电路,其中所述排序电路包括比较电路和缓冲电路,其中:
所述比较电路配置用于将所述K路索引中待排序的索引元素与所述缓冲电路中未输出的索引元素进行比较,并输出比较结果给所述控制电路;并且
所述缓冲电路配置用于根据所述控制电路的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
6.根据权利要求5所述的数据处理电路,其中所述比较电路包括:
K-1路比较器,配置用于将所述K路索引中待排序的索引元素分别与所述缓冲电路中当前序列的K-1个索引元素进行比较,生成比较结果并输出给所述控制电路。
7.根据权利要求6所述的数据处理电路,其中所述控制电路配置用于根据所述比较结果,确定所述待排序的索引元素在所述缓冲电路中当前序列中的插入位置。
8.根据权利要求7所述的数据处理电路,其中所述比较结果使用位图来表示,并且所述控制电路进一步配置用于:根据所述位图中比特位的变化位置,确定所述插入位置。
9.根据权利要求7-8任一所述的数据处理电路,其中所述缓冲电路配置用于根据所述控制电路的指示,在所述插入位置中插入所述待排序的索引元素以及与其对应的数据元素的信息。
10.根据权利要求5-9任一所述的数据处理电路,其中所述缓冲电路进一步配置用于按指定顺序输出当前序列中的首个或末个索引元素以及与其对应的数据元素的信息。
11.根据权利要求10所述的数据处理电路,其中所述控制电路进一步配置用于:根据所述缓冲电路中输出的索引元素,确定待排序的下一索引元素的访存信息。
12.根据权利要求4-11任一所述的数据处理电路,其中所述累加电路包括比较器、缓冲器和加法器,其中:
所述比较器配置用于将从所述排序电路输出的索引元素与上一个融合索引元素进行比较并输出比较结果;
所述缓冲器配置用于仅当所述比较结果指示不相同时,输出所述索引元素作为新的融合索引元素;并且
所述加法器配置用于当所述比较结果指示不相同时,直接输出与所述索引元素对应的数据元素作为新的融合数据元素,以及当所述比较结果指示相同时,将所述索引元素对应的数据元素累加到上一个融合索引元素所对应的融合数据元素上。
13.根据权利要求1-12任一所述的数据处理电路,其中所述多路待融合的数据中的数据元素是稀疏矩阵中的有效数据元素,并且所述索引指示所述有效数据元素在稀疏矩阵中的位置信息。
14.一种芯片,包括根据权利要求1-13任一所述的数据处理电路。
15.一种板卡,包括根据权利要求14所述的芯片。
16.一种使用数据处理电路来处理数据的方法,所述数据处理电路包括控制电路、存储电路和运算电路,所述方法包括:
所述控制电路从所述存储电路读取多路待融合的数据;
所述运算电路将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合数据,所述融合数据中具有相同索引的数据元素合并为一个融合数据元素;以及
将所述融合数据输出给所述存储电路。
17.根据权利要求16所述的方法,其中所述存储电路包括第一存储电路和第二存储电路,
所述第一存储电路配置用于存储所述待融合的K路数据和所述K路数据对应的K路索引,K>1,其中所述K路索引中的索引元素指示所述K路数据中对应的数据元素的索引信息,所述K路索引中每路索引的索引元素均按第一顺序有序排列,所述K路数据中每路数据的数据元素按照对应索引的顺序有序排列;并且
所述第二存储电路配置用于存储所述运算电路输出的所述融合数据和所述融合数据对应的融合索引,其中所述融合索引中的融合索引元素按第二顺序有序排列,所述融合数据中的融合数据元素按照融合索引的顺序有序排列。
18.根据权利要求17所述的方法,其中所述第一顺序与第二顺序相同或不同,并且所述第一顺序和第二顺序选自以下任一:从小到大的顺序,或从大到小的顺序。
19.根据权利要求17-18任一所述的方法,其中所述运算电路包括排序电路和累加电路,并且所述方法进一步包括:
所述排序电路将所述K路索引按照索引元素的大小排序并有序输出给所述累加电路;以及
当从所述排序电路接收到相同的索引元素时,所述累加电路将相同的索引元素对应的数据元素进行累加处理,并去除重复的索引元素。
20.根据权利要求19所述的方法,其中所述排序电路包括比较电路和缓冲电路,并且所述方法进一步包括:
所述比较电路将所述K路索引中待排序的索引元素与所述缓冲电路中未输出的索引元素进行比较,并输出比较结果给所述控制电路;以及
所述缓冲电路根据所述控制电路的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
21.根据权利要求20所述的方法,其中所述比较电路包括K-1路比较器,并且所述方法包括:
所述K-1路比较器将所述K路索引中待排序的索引元素分别与所述缓冲电路中当前序列的K-1个索引元素进行比较,生成比较结果并输出给所述控制电路。
22.根据权利要求21所述的方法,进一步包括:
所述控制电路根据所述比较结果,确定所述待排序的索引元素在所述缓冲电路中当前序列中的插入位置。
23.根据权利要求22所述的方法,其中所述比较结果使用位图来表示,并且所述方法进一步包括:所述控制电路根据所述位图中比特位的变化位置,确定所述插入位置。
24.根据权利要求22-23任一所述的方法,进一步包括:
所述缓冲电路根据所述控制电路的指示,在所述插入位置中插入所述待排序的索引元素以及与其对应的数据元素的信息。
25.根据权利要求20-24任一所述的方法,进一步包括:
所述缓冲电路按指定顺序输出当前序列中的首个或末个索引元素以及与其对应的数据元素的信息。
26.根据权利要求25所述的方法,进一步包括:
所述控制电路根据所述缓冲电路中输出的索引元素,确定待排序的下一索引元素的访存信息。
27.根据权利要求19-26任一所述的方法,其中所述累加电路包括比较器、缓冲器和加法器,并且所述方法包括:
所述比较器将从所述排序电路输出的索引元素与上一个融合索引元素进行比较并输出比较结果;
所述缓冲器仅当所述比较结果指示不相同时,输出所述索引元素作为新的融合索引元素;并且
当所述比较结果指示不相同时,所述加法器直接输出与所述索引元素对应的数据元素作为新的融合数据元素,以及当所述比较结果指示相同时,将所述索引元素对应的数据元素累加到上一个融合索引元素所对应的融合数据元素上。
28.根据权利要求20-27任一所述的方法,其中所述多路待融合的数据中的数据元素是稀疏矩阵中的有效数据元素,并且所述索引指示所述有效数据元素在稀疏矩阵中的位置信息。
CN202011566136.0A 2020-12-25 2020-12-25 数据处理电路、数据处理方法及相关产品 Pending CN114691561A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011566136.0A CN114691561A (zh) 2020-12-25 2020-12-25 数据处理电路、数据处理方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011566136.0A CN114691561A (zh) 2020-12-25 2020-12-25 数据处理电路、数据处理方法及相关产品

Publications (1)

Publication Number Publication Date
CN114691561A true CN114691561A (zh) 2022-07-01

Family

ID=82129488

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011566136.0A Pending CN114691561A (zh) 2020-12-25 2020-12-25 数据处理电路、数据处理方法及相关产品

Country Status (1)

Country Link
CN (1) CN114691561A (zh)

Similar Documents

Publication Publication Date Title
CN109104876B (zh) 一种运算装置及相关产品
CN109543832B (zh) 一种计算装置及板卡
CN109522052B (zh) 一种计算装置及板卡
CN110163358B (zh) 一种计算装置及方法
CN114691561A (zh) 数据处理电路、数据处理方法及相关产品
CN114691559A (zh) 数据处理电路、数据处理方法及相关产品
CN114691560A (zh) 数据处理电路、数据处理方法及相关产品
CN114692844A (zh) 数据处理装置、数据处理方法及相关产品
CN114692074A (zh) 矩阵乘法电路、方法及相关产品
CN112766475A (zh) 处理部件及人工智能处理器
CN114692847B (zh) 数据处理电路、数据处理方法及相关产品
CN113469365B (zh) 基于神经网络模型的推理和编译方法及其相关产品
CN114692838A (zh) 数据处理装置、数据处理方法及相关产品
CN114692846A (zh) 数据处理装置、数据处理方法及相关产品
CN114692839A (zh) 数据处理装置、数据处理方法及相关产品
CN115221104A (zh) 数据处理装置、数据处理方法及相关产品
CN111047024A (zh) 一种计算装置及相关产品
CN114692845A (zh) 数据处理装置、数据处理方法及相关产品
CN114692840A (zh) 数据处理装置、数据处理方法及相关产品
CN114691593A (zh) 基于多核处理器的数据处理方法及相关产品
CN114691083A (zh) 矩阵乘法电路、方法及相关产品
CN114596184A (zh) 一种累加图像数据的方法、装置以及存储介质
CN114692850A (zh) 对神经元数据执行Winograd卷积正变换的装置与板卡
CN114692841A (zh) 数据处理装置、数据处理方法及相关产品
CN114692849A (zh) 逆变换Winograd卷积的对位乘数据的逆变换单元、装置与板卡

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination