数据处理电路、数据处理方法及相关产品与流程

文档序号:30595099发布日期:2022-07-01 20:30阅读:92来源:国知局
数据处理电路、数据处理方法及相关产品与流程

1.本披露一般地涉及数据处理领域。更具体地,本披露涉及数据处理电路、数据处理方法、芯片和板卡。


背景技术:

2.近年来,随着深度学习的迅猛发展,使得计算机视觉、自然语言处理等一系列领域的算法性能都有了跨越式的进展。然而深度学习算法是一种计算密集型和存储密集型的工具,随着信息处理任务的日趋复杂,对算法实时性和准确性要求不断增高,神经网络往往会被设计得越来越深,使得其计算量和存储空间需求越来越大,导致现存的基于深度学习的人工智能技术难以直接应用在硬件资源受限的手机、卫星或嵌入式设备上。
3.因此,深度神经网络模型的压缩、加速、优化变得格外重要。大量的研究试着在不影响模型精度的前提下,减少神经网络的计算和存储需求,对深度学习技术在嵌入端、移动端的工程化应用具有十分重要的意义。稀疏化正是模型轻量化方法之一。
4.网络参数稀疏化是通过适当的方法减少较大网络中的冗余成分,以降低网络对计算量和存储空间的需求。现有的硬件和/或指令集不能有效地支持稀疏化处理和/或与稀疏化后相关的处理。


技术实现要素:

5.为了至少部分地解决背景技术中提到的一个或多个技术问题,本披露的方案提供了一种数据处理电路、数据处理方法、芯片和板卡。
6.在第一方面中,本披露公开一种数据处理电路,包括控制电路、存储电路和运算电路,其中:所述控制电路配置用于控制所述存储电路和所述运算电路对多路待融合的数据执行融合处理;所述存储电路配置用于存储信息,所述信息至少包括处理前和/或处理后的信息;以及所述运算电路配置用于在所述控制电路的控制下,将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合处理后数据,其中具有相同索引的数据元素合并成运算结构体元素,所述数据元素包括标量、向量或更高维数据中任一。
7.在第二方面中,本披露提供一种芯片,包括前述第一方面任一实施例的数据处理电路。
8.在第三方面中,本披露提供一种板卡,包括前述第二方面任一实施例的芯片。
9.在第四方面中,本披露提供一种使用数据处理电路来处理数据的方法,所述数据处理电路包括控制电路、存储电路和运算电路,所述方法包括:所述控制电路从所述存储电路读取多路待融合的数据;所述运算电路将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合处理后数据,其中具有相同索引的数据元素合并成运算结构体元素,所述数据元素包括标量、向量或更高维数据中任一;以及将所述融合处理后数据输出给所述存储电路。
10.通过如上所提供的数据处理电路、使用数据处理电路来处理数据的方法、芯片和
板卡,本披露实施例提供了一种支持数据融合操作的硬件电路,用于对多路数据执行归并排序融合处理。在一些实施例中,该数据处理电路可以将多路有序的数据按索引顺序合并为一路有序的融合数据,并且索引相同的数据元素可以合并,并以运算结构体的形式表示,从而便于后续的计算处理。在一些实施例中,待融合的数据元素可以是向量或更高维数据。例如,待融合的数据中的数据元素可以是基于雷达的物体检测中的稀疏化后的有效数据元素,从而本披露实施例提供的数据融合指令和融合操作可以支持雷达算法中相关的处理。通过提供专门的数据融合相关操作的硬件实现,可以简化并加速处理,由此提高机器的处理效率。
附图说明
11.通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
12.图1是示出本披露实施例的板卡的结构图;
13.图2是示出本披露实施例的组合处理装置的结构图;
14.图3是示出本披露实施例的单核或多核计算装置的处理器核的内部结构示意图;
15.图4是示出根据本披露实施例的数据融合处理的示例性原理图;
16.图5是示出本披露实施例的数据处理电路的结构示意图;
17.图6是示出本披露一个实施例的用于数据融合处理的示例性电路图;
18.图7是示出本披露另一实施例的运算结构体的示例;
19.图8是示出本披露又一实施例的运算结构体的示例;以及
20.图9是示出本披露实施例的数据处理方法的示例性流程图。
具体实施方式
21.下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
22.应当理解,本披露的权利要求、说明书及附图中可能出现的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
23.还应当理解,在本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
24.如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释
为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
25.下面结合附图来详细描述本披露的具体实施方式。
26.图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(system on chip,soc),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
27.芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如pcie接口等。
28.板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(micro controller unit,mcu)。
29.图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和存储装置204。
30.计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。
31.接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。
32.处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。
33.存储装置204用以存储待处理的数据,其可以是dram,为ddr内存,大小通常为16g
或更大,用于保存计算装置201和/或处理装置203的数据。
34.图3示出了计算装置201为单核或多核装置时处理器核的内部结构示意图。计算装置301用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,计算装置301包括三大模块:控制模块31、运算模块32及存储模块33。
35.控制模块31用以协调并控制运算模块32和存储模块33的工作,以完成深度学习的任务,其包括取指单元(instruction fetch unit,ifu)311及指令译码单元(instruction decode unit,idu)312。取指单元311用以获取来自处理装置203的指令,指令译码单元312则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块32和存储模块33。
36.运算模块32包括向量运算单元321及矩阵运算单元322。向量运算单元321用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元322负责深度学习算法的核心计算,即矩阵乘及卷积。
37.存储模块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间的数据搬运。
38.本披露的实施例基于前述硬件环境,提供一种数据处理电路,支持数据融合操作。如背景技术所提到的,网络参数稀疏化可以有效降低网络对计算量和存储空间的需求。但是网络参数稀疏化之后对后续的处理也会带来一系列影响。例如,在稀疏矩阵乘法运算中,可能需要对运算中间得到的向量进行排序累加,以获得预期运算结果。又例如,在雷达算法中,需要对基于雷达的物体检测中稀疏化后的数据进行融合处理。鉴于此,本披露的实施例提供了一种数据融合处理的硬件方案,以简化并加速此类处理。
39.图4示出根据本披露实施例的数据融合处理的示例性原理。图中示例性示出了4路待融合的数据,每路数据包括6个数据元素。数据元素可以是标量、向量或更高维度的张量。图中数据元素示例性示出为向量,例如d11,d12,

d46。这些向量具有统一的向量长度,例如d11为(d1,d2,d3,

,dn),长度为n。每个数据元素具有关联的索引,用于指示该数据元素在对应的一路数据中的位置信息。例如,原始的一路数据可能包括1000个数据元素,但是仅部分位置上的数据元素是有效的,此时,可以将这些有效元素提取出来形成上述待融合数据,同时提取这些有效元素对应的索引以指示其在原始数据中的位置,这些索引形成上述待融合索引。
40.图中示意性示出了对应的4路待融合的索引,每路索引对应一路待融合的数据。第1路索引用于标识第1路数据中各数据元素的位置信息,第2路索引用于标识第2路数据中各数据元素的位置信息,以此类推。进一步地,每路索引中的索引元素均有序存储,并与对应的一路数据中的数据元素一一对应。在图中示例中,各路索引中的索引元素均按照第一顺序(例如,从小到大的顺序)排列,每路数据中的数据元素也按照对应索引的顺序有序排列。例如,第1路索引中的第1个索引元素指示第1路数据中的第1个数据元素的索引为0,也即首个元素;第1路索引中的第2个索引元素指示第1路数据中的第2个数据元素的索引为2,也即第3个元素;以此类推。
41.经过数据融合后,这4路数据按照其对应的索引,归并为一路有序的融合数据,并
且具有相同索引的数据元素合并成一个融合数据元素。如图所示,融合后的索引包括16个索引元素,按照第二顺序(例如,从小到大的顺序)排列,其中去除了待融合索引中重复的索引元素,如图中深色方块所示。相应地,融合后的数据也包括16个数据元素,按照对应索引的顺序有序排列,并且具有相同索引的数据元素进行合并,如图中深色方块所示。由于数据元素可能是向量或更高维度的张量,因此在本披露的一些实施例中,至少针对具有相同索引的数据元素的合并,可以采用运算结构体元素的形式来表示。
42.在此示例中,通过加法算式示意性表示具有相同索引的数据元素的合并。例如,对于融合后索引元素“0”,其对应的融合数据元素为各路数据的首个数据元素之和(d11+d21+d31+d41)。又例如,对于融合后索引元素“9”,其对应的融合数据元素为第1路第5个数据元素与第4路第3个数据元素之和(d15+d43)。当数据元素为向量时,融合数据元素为对应的向量和。融合数据元素的具体表示方式将在后面描述。
43.本领域技术人员可以理解,上面提到的第一顺序与第二顺序可以相同,也可以不同,并且二者都可以选自以下任一:从小到大的顺序,或从大到小的顺序。本领域技术人员还可以理解,尽管在图中示出各路数据具有相等的数据元素个数,但是各路数据中的数据元素个数可以相同,也可以不同,本披露在此方面没有限制。
44.图5示出根据本披露实施例的数据处理电路500的结构框图。数据处理电路500例如可以实现在图2的计算装置201中。如图所示,数据处理电路500可以包括控制电路510、存储电路520和运算电路530。
45.控制电路510的功能可以类似于图3的控制模块31,其例如可以包括取指单元,用以获取来自例如图2的处理装置203的指令,以及指令译码单元,用于将获取的指令进行译码,并将译码结果作为控制信息发送给运算电路530和存储电路520。
46.在一个实施例中,控制电路510可以配置用于控制存储电路520和运算电路530,以对多路待融合的数据执行融合处理。
47.存储电路520可以配置用于存储各种信息,这些信息至少包括融合处理前和/或融合处理后的信息。存储电路例如可以是图3的wram 332。
48.运算电路530可以配置用于在控制电路的控制下,将多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合处理后数据,其中具有相同索引的数据元素合并为运算结构体元素。数据元素可以是标量、向量或更高维数据中的任一。
49.在一个实施例中,运算电路530还可以包括运算处理电路(未示出),其可以配置成根据运算指令对运算电路执行运算前的数据进行预处理或者对运算后的数据进行后处理。在一些应用场景中,前述的预处理和后处理可以例如包括数据拆分和/或数据拼接操作。
50.可以采取多种方式来实施运算电路。图6示出根据本披露一个实施例的用于数据融合处理的示例性电路图。
51.如图所示,在一个实施例中,存储电路可以示例性划分为两部分:第一存储电路622和第二存储电路624。
52.第一存储电路622可以配置用于存储待融合的k路数据和这k路数据对应的k路索引,k》1。这k路索引中的索引元素指示k路数据中对应的数据元素的索引信息,也即索引元素与数据元素具有一一对应的关系。此外,这k路索引中每路索引的索引元素均按第一顺序有序排列,并且k路数据中每路数据的数据元素按照对应索引的顺序有序排列。
53.图中示例性示出了图4所示的4路索引以及对应的4路数据。由于数据元素可能是向量或更高维度的数据,为了简便起见,可以使用这些数据元素的存储地址来代替,图中各个数据元素用符号pt来标识,代表指向对应的数据元素(例如向量、三维张量等)的存储地址的指针。可以理解,具体的数据元素也会存储在存储电路中,为了清楚起见,图中未示出。在一些实施例中,每路索引可以是连续存储的,例如作为一个向量进行存储,从而可以根据每路索引的起始地址或向量的起始地址来访问该路索引/索引向量。对应地,每路数据也可以是连续存储的,例如作为一个向量进行存储,从而可以根据每路数据的起始地址或向量的起始地址来访问该路数据/数据向量,不过此时,数据向量中的向量元素是指向最终的数据元素的指针。
54.第二存储电路624可以配置用于存储运算电路输出的融合处理后数据。这些数据包括:对k路索引排序融合后的融合索引、融合数据、以及运算结构体。融合索引中的融合索引元素按第二顺序有序排列,并且融合数据中的融合数据元素与融合索引元素一一对应,按照融合索引的顺序有序排列。运算结构体至少包括用于表示由相同索引的数据元素构成的融合数据元素的运算结构体元素。
55.从图中示例可以看出,待融合的4路数据变成了一路融合数据,相应的4路索引也变成了一路融合索引,其中融合索引元素按照从小到大的顺序排列,大小相同的索引元素被去除。与之对应的融合数据元素按照融合索引的顺序排列,每个融合数据元素可以是一个地址指针,指向对应的最终数据元素。在一些实施例中,每个最终数据元素的存储空间可以是固定大小的。由此,当这些数据元素连续存储时,可以通过首地址偏移固定量来确定后续的地址。例如,图中示例性示出第1个融合数据元素可以是地址base_addr,不防假设每个最终数据元素占据的地址大小为offset,则第2个融合数据元素可以是地址base_addr+offset,第3个融合数据元素可以是地址base_addr+2*offset,以此类推。
56.在这些地址指向的最终数据元素中,有些因为其索引在待融合索引中是唯一的,不需要累加,因此是原始数据元素;而有些因为存在多个具有相同索引的原始数据元素,因此需要进行累加。在本披露的实施例中,至少对于由具有相同索引的数据元素构成的融合数据元素,其指向的最终数据元素可以不立即运算获得,而是通过运算结构体中关联的运算结构体元素来表示。后面将结合具体电路详细描述运算结构体的方面。
57.在一些实施例中,运算电路可以包括排序电路632和输出电路636,以协同实现排序累加融合功能。具体地,排序电路632用于将k路索引按照索引元素的大小排序,并有序输出给输出电路636。输出电路636则可以至少在从排序电路接收到相同的索引元素时,生成表示该相同的索引元素对应的数据元素的累加运算的运算结构体元素,并去除重复的索引元素。
58.在一些实施例中,排序电路632可以包括比较电路631和缓冲电路633。比较电路631实现比较功能,其对多路待融合的索引中的索引元素的大小进行比较,并提交比较结果给控制电路610以供排序。控制电路610根据比较结果确定索引元素在缓冲电路633中的插入位置。缓冲电路633用于缓存已比较的索引元素以及与其对应的数据元素的信息,并按索引元素的大小顺序缓存。
59.具体地,比较电路631可以配置用于将待融合索引中的索引元素与缓冲电路633中未输出的索引元素进行比较,并输出比较结果给控制电路610。而缓冲电路633可以配置用
于根据控制电路610的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
60.在一些实施例中,缓冲电路633可以配置成缓存k个索引元素,这k个索引元素按照大小排序。本领域技术人员可以理解,缓冲电路也可以配置成缓存更多的索引元素,本披露实施例在此方面没有限制。取决于缓冲电路633中的排序方式以及期望输出的排序方式,诸如从小到大,或从大到小,每次可以按照指定顺序输出当前序列中的首个索引元素或末个索引元素。例如,在图中的示例中,缓冲电路633从左到右按照从大到小的顺序缓存索引元素,每次输出最右边的一个索引元素,也即当前序列中最小的索引元素,例如“7”。
61.在这些实施例中,比较电路631可以包括k-1路比较器,配置用于将待融合的索引元素分别与缓冲电路633中未输出的索引元素进行比较,也即与当前序列输出首个或末个索引元素后剩余的k-1个索引元素进行比较,生成比较结果并输出给控制电路610。
62.例如,对于待融合的4路数据,图中示出了3路比较器,其将从第一存储电路622接收的指定索引元素(此时为9)与缓冲电路633中当前未输出的3个索引元素进行比较,图中为左边的三个索引元素100、10和9。
63.在一些实施例中,比较器的比较结果可以使用位图来表示。例如,如果待融合的索引元素(例如,9)大于等于缓冲电路中的索引元素,则比较器可以输出“1”,否则,输出“0”;反过来也可以。在图中的示例中,待融合的索引元素(9)与缓冲电路中的各个索引元素(100、10和9)的比较结果为“001”,输出给控制电路610。
64.控制电路610可以配置用于根据接收的比较结果,确定该待融合的索引元素在缓冲电路633的当前序列中的插入位置。具体地,控制电路610可以进一步配置用于根据位图中比特位的变化位置,确定插入位置。在图中的示例中,比较结果为“001”,说明当前待融合的索引元素小于缓冲电路中左起第1个和第2个索引元素,大于等于左起第3个索引元素,则插入位置在第2个索引元素与第3个索引元素之间,也即在“10”和“9”之间。
65.在一些实施例中,缓冲电路633可以配置用于根据控制电路610的指示,在插入位置中插入该待融合的索引元素。在图中示例中,缓冲电路633中插入该索引元素之后的序列变为“100,10,9,9”。
66.为了使得在融合处理中能够获取到索引对应的数据,在一些实施例中,缓冲电路633可以进一步配置用于:按索引元素的值顺序,有序存储已比较的索引元素以及与其对应的数据元素。如图所示,缓冲电路633除了缓存索引元素,还缓存与其对应的数据元素的信息。因此,每次对索引元素进行比较确定插入位置之后,可以将与该索引元素对应的数据元素信息也一并插入到缓存电路中。由于数据元素可以是标量、向量或更高维的张量,因此,可以使用指向数据元素的地址来代表该数据元素。例如,在图中的示例中,待融合的k路数据中的每个元素是一个地址,分别指向对应的数据元素,而无论该数据元素是标量、向量还是高维张量。在本文的描述中,数据元素可能指代地址,也可能指代最终的标量、向量或高维张量数据,本领域技术人员基于上下文的描述,可以区分其含义。
67.接着,缓冲电路633可以输出最右端的索引元素“9”。此时,控制电路610可以进一步配置用于根据缓冲电路中输出的索引元素,确定待融合的下一索引元素的访存信息。具体地,控制电路根据输出的索引元素在k路索引中属于哪一路索引,从该路索引中取出下一待融合的索引元素,送到比较电路631进行比较。
68.进一步地,在有序输出时,缓冲电路633可以配置成按索引元素的值顺序(例如,从小到大),有序输出已比较的索引元素作为融合索引,并同步输出与其对应的数据元素作为融合数据。输出的数据提供给输出电路636做进一步处理。
69.为了清楚起见,图中还示出了缓冲电路633中随排序进度缓存过的索引序列。如图所示,初始地,k路索引中各路的首个索引元素按照从大到小的顺序存储在缓冲电路633中。在一些实现中,这4个索引元素可以一次性取出、排序并存储在缓冲电路中。在另一些实现中,可以将缓冲电路中的数据初始化为负数,按顺序(例如,按照从第1路到第4路的顺序)逐个取出各路索引的首个索引元素,与缓冲电路中的数据进行比较,并放入合适位置。在此示例中,4路索引的首个索引元素都是0,因此可以根据取数的顺序,按照各路索引的序号排列,例如第1路的“0”放置在最右边,第2路的“0”放置在右边第2位置,以此类推。
70.接着,缓冲电路中最右边的属于第1路的“0”被输出。根据这个输出的索引元素属于哪一路索引,从对应的该路索引中取出下一待融合的索引元素,也即第1路第2个索引元素“2”。“2”被送入比较电路与缓冲电路中剩余的三个“0”进行比较,比较结果为“111”,也即比缓冲电路中现有的三个数“0”都大,因此“2”被插入在序列最尾端,此时缓冲电路中的序列变为“2,0,0,0”。
71.接着,缓冲电路中最右边的属于第2路的“0”被输出,因此取出第2路第2个元素“3”与缓冲电路中剩余的“2,0,0”进行比较,比较结果为“111”,因此“3”被插入在序列最尾端,此时缓冲电路中的序列变为“3,2,0,0”。
72.接着,缓冲电路中最右边的属于第3路的“0”被输出,因此取出第3路第2个元素“100”与缓冲电路中剩余的“2,0,0”进行比较,比较结果为“111”,因此“100”被插入在序列最尾端,此时缓冲电路中的序列变为“100,3,2,0”。
73.接着,输出缓冲电路最右边的属于第4路的“0”,取出第4路第2个元素“2”与缓冲电路中剩余的“100,3,2”进行比较,比较结果为“001”,因此“2”被插入在序列最右边第1个元素之后,此时缓冲电路中的序列变为“100,3,2,2”。
74.依次类推,可以逐个将k路索引中的索引元素进行比较,并根据大小排序插入到缓冲电路中的合适位置,再由缓冲电路输出。例如,缓冲电路每次输出的最小索引元素可以按顺序输出给输出电路636。本领域技术人员可以理解,如果缓冲电路的空间足够,也可以在排序完成之后再统一输出归并排序后的元素。
75.从输出的归并排序后的索引元素可以看出,当存在大小相同的索引元素时,排序电路632仍然保留这些大小相同的索引元素,不会进行去重操作,而是提供给输出电路636进行处理。
76.在一些实施例中,输出电路636可以包括比较器637、缓冲器635和结构体生成器639。
77.比较器637可以配置用于将从排序电路632有序输出的索引元素与上一个融合索引元素进行比较并输出比较结果。比较结果可以是“1”指示相同,“0”指示不相同;反之亦然。
78.缓冲器635可以配置用于根据比较器637的比较结果来控制输出索引元素。在一些实施例中,缓冲器635可以仅当比较结果指示不相同时,输出当前索引元素作为新的融合索引元素。换言之,当比较结果指示相同时,缓冲器635不输出当前索引元素,也即丢弃与上一
个融合索引元素重复的索引元素。如图所示,第二存储电路624中的融合索引不存在重复的融合索引元素。
79.结构体生成器639可以配置用于根据比较器637的比较结果,来控制数据元素的累加,生成相应的运算结构体元素。具体地,至少当比较结果指示相同时,基于索引元素对应的数据元素,生成运算结构体元素,该运算结构体元素表示将当前数据元素累加到上一次融合索引元素对应的融合数据元素的累加运算。
80.图6的实施例中示出了一种生成运算结构体元素的方式。在此实施例中,除了针对具有相同索引的数据元素融合而成的融合数据元素生成运算结构体元素之外,针对其他融合数据元素也生成运算结构体元素。具体地,在这种实施例中,当比较器637的比较结果指示不相同时,基于当前索引元素对应的数据元素,生成运算结构体元素,其中该运算结构体元素表示将当前数据元素与0相加的累加运算。通过这种方式,可以为所有融合数据元素生成运算结构体元素,从而统一表达方式,简化操作,为后续运算提供灵活处理。
81.图6中示例性示出了当前实施方式下所生成的运算结构体。如图所示,当输出电路636接收到排序电路632输出的第1个“0”时,由于这是首个元素,因此,比较器637会输出例如“0”以指示与上一融合索引元素(例如初始化为负数)不相同。缓冲器635输出索引“0”作为首个融合索引元素。结构体生成器639基于比较器637的结果,为新的融合数据元素分配地址,例如首个融合数据元素的地址为base_addr。此时,即使认为索引不相同,也为该融合数据元素生成关联的运算结构体元素,只不过是当前数据元素与0相加的累加运算,例如{add_zero,pt11,base_addr},其中add_zero表示0值的地址,pt11表示当前数据元素的地址,base_addr表示结果的存放地址,其对应于上面分配的首个融合数据元素的地址。生成的运算结构体元素可以存储在第二存储电路624的运算结构体中。
82.每个运算结构体元素可以包括三个要素,分别指示两个加数和一个加法结果,例如{src0_addr,src1_addr,dst_addr},其中src0_addr表示第1加数的地址,src1_addr表示第2加数的地址,dst_addr表示加法和的地址。
83.接着,排序电路632输出第2个“0”,由于上一个融合索引元素为“0”,因此,比较器637会输出例如“1”以指示与上一融合索引元素(“0”)相同。此时,缓冲器635不输出。结构体生成器639基于比较器637的结果,认为没有产生新的融合数据元素,因此不分配地址,也即融合数据中没有新的元素。此时,结构体生成器639还会生成表示数据元素累加的运算结构体元素,其将数据元素累加到上一融合索引元素对应的融合数据元素中,例如{base_addr,pt21,base_addr},其中base_addr表示上一融合索引元素对应的融合数据元素的地址,也即上一步分配的首个融合数据元素的地址,pt21表示当前数据元素的地址,base_addr表示结果的存放地址,也即将数据元素累加到上面分配的首个融合数据元素上。生成的运算结构体元素同样存储在第二存储电路624的运算结构体中。
84.当排序电路632继续输出第3个、第4个“0”时,融合索引不会增加,相应的融合数据中的融合数据元素也不会增加,结构体生成器会输出关联的结构体运算元素:{base_addr,pt31,base_addr},{base_addr,pt41,base_addr}。
85.接着,排序电路632会输出第1个“2”,参考前面步骤,此时缓冲器635输出索引“2”作为第2个融合索引元素。结构体生成器639基于比较器637的结果,为新的融合数据元素分配地址,例如在首个融合数据元素的地址基础上加上偏移量offset。该偏移量为对应的最
终数据元素(例如标量、向量或高维张量)的存储地址大小。此时,为该新的融合数据元素生成关联的运算结构体元素,例如{add_zero,pt12,base_addr+offset}。生成的运算结构体元素存储在第二存储电路624的运算结构体中。
86.当排序电路632输出第2个“2”时,融合索引不会增加,相应的融合数据中的融合数据元素也不会增加,结构体生成器会输出关联的结构体运算元素:{base_addr+offset,pt42,base_addr+offset}。
87.依照上述描述,本领域技术人员可以类似地推导出其他融合结果,此处不再一一描述。
88.图7示出了根据另一实施例生成的运算结构体元素的示例。在此实施例中,对于在待融合数据中索引不存在重复的数据元素,可以不生成运算结构体元素,从而避免冗余计算。
89.具体的,当比较器637指示当前输出的索引元素与上一融合索引元素相同时,可以生成表示将当前对应的数据元素累加到上一融合索引元素对应的融合数据元素上的运算结构体元素。而当比较器637指示当前输出的索引元素与上一融合索引元素不相同时,可以直接输出当前索引元素作为新的融合索引元素,并且直接为新的融合数据元素分配地址,该地址处存放对应的原始数据元素。
90.下面结合图6的数据示例描述图7中运算结构体元素的生成过程。如图所示,当输出电路636接收到排序电路632输出的第1个“0”时,由于这是首个元素,因此,比较器637会输出例如“0”以指示与上一融合索引元素(例如初始化为负数)不相同。缓冲器635输出索引“0”作为首个融合索引元素。结构体生成器639基于比较器637的结果,为新的融合数据元素分配地址,例如首个融合数据元素的地址为base_addr。此时,由于索引不相同,因此不需要累加,可以直接将该索引元素对应的原始数据元素挪到所分配的地址base_addr处。这种方式可以确保融合数据的地址是连续的,能够为后续的访问提供便利。
91.接着,排序电路632输出第2个“0”,由于上一个融合索引元素为“0”,因此,比较器637会输出例如“1”以指示与上一融合索引元素(“0”)相同。此时,缓冲器635不输出。结构体生成器639基于比较器637的结果,认为没有产生新的融合数据元素,因此不分配地址,也即融合数据中没有新的元素。此时,结构体生成器639会生成表示数据元素累加的运算结构体元素,其将数据元素累加到上一融合索引元素对应的融合数据元素中,例如{base_addr,pt21,base_addr},其中base_addr表示上一融合索引元素对应的融合数据元素的地址,也即上一步分配的首个融合数据元素的地址,请注意,此时base_addr在上一步中已经放入了pt11所指向的数据元素。pt21表示当前数据元素的地址,base_addr表示结果的存放地址,也即将数据元素累加到上面分配的首个融合数据元素上。生成的运算结构体元素存储在第二存储电路的运算结构体中。
92.当排序电路632继续输出第3个、第4个“0”时,融合索引不会增加,相应的融合数据中的融合数据元素也不会增加,结构体生成器会输出关联的结构体运算元素:{base_addr,pt31,base_addr},{base_addr,pt41,base_addr}。
93.接着,排序电路632会输出第1个“2”,参考前面步骤,此时缓冲器635输出索引“2”作为第2个融合索引元素。结构体生成器639基于比较器637的结果,为新的融合数据元素分配地址,例如在首个融合数据元素的地址基础上加上偏移量offset。该偏移量为对应的最
终数据元素(例如标量、向量或高维张量)的存储地址大小。此时,由于索引不相同,因此不需要累加,可以直接将该索引元素对应的原始数据元素(也即pt12指向的数据元素)挪到所分配的地址base_addr+offset处。
94.当排序电路632输出第2个“2”时,融合索引不会增加,相应的融合数据中的融合数据元素也不会增加,结构体生成器会输出关联的结构体运算元素:{base_addr+offset,pt42,base_addr+offset}。
95.依照上述描述,本领域技术人员可以类似地推导出其他融合结果,例如对于融合索引“3”和“5”,不存在索引相同的情况,因此,只需要执行数据搬运,而无需生成运算结构体元素。
96.图7的实施例通过在融合过程中执行数据搬运,确保了融合数据中融合数据元素的地址是连续的,并且对于无需累加的数据元素,不需要运算结构体元素来表示,节省了后续可能的运算量。
97.图8示出了根据又一实施例生成的运算结构体元素的示例。与图7的实施例类似地,在此实施例中,对于在待融合数据中索引不存在重复的数据元素,可以不生成运算结构体元素,从而避免冗余计算。
98.具体的,当比较器637指示当前输出的索引元素与上一融合索引元素相同时,可以生成表示将当前对应的数据元素累加到上一融合索引元素对应的融合数据元素上的运算结构体元素。而当比较器637指示当前输出的索引元素与上一融合索引元素不相同时,可以直接输出当前索引元素作为新的融合索引元素,并且保留对应的数据元素的地址,也即融合数据元素与融合前数据元素相同,都指向相同的地址。
99.下面结合图6的数据示例描述图8中运算结构体元素的生成过程。如图所示,当输出电路636接收到排序电路632输出的第1个“0”时,由于这是首个元素,因此,比较器637会输出例如“0”以指示与上一融合索引元素(例如初始化为负数)不相同。缓冲器635输出索引“0”作为首个融合索引元素。结构体生成器639基于比较器637的结果,将当前索引元素对应的数据元素作为新的融合数据元素,例如此时为pt11。此时,由于索引不相同,因此不需要累加。
100.接着,排序电路632输出第2个“0”,由于上一个融合索引元素为“0”,因此,比较器637会输出例如“1”以指示与上一融合索引元素(“0”)相同。此时,缓冲器635不输出。结构体生成器639基于比较器637的结果,认为没有产生新的融合数据元素,因此对于融合数据元素不做任何操作,仅生成表示数据元素累加的运算结构体元素,其将数据元素累加到上一融合索引元素对应的融合数据元素中,例如{pt11,pt21,pt11},其中pt11表示上一融合索引元素对应的融合数据元素的地址。pt21表示当前数据元素的地址,累加结果仍然放在该融合数据元素的初始地址中,也即pt11。生成的运算结构体元素存储在第二存储电路的运算结构体中。
101.当排序电路632继续输出第3个、第4个“0”时,融合索引不会增加,相应的融合数据中的融合数据元素也不会增加,结构体生成器会输出关联的结构体运算元素:{pt11,pt31,pt11},{pt11,pt41,pt11}。
102.接着,排序电路632会输出第1个“2”,参考前面步骤,此时缓冲器635输出索引“2”作为第2个融合索引元素。结构体生成器639基于比较器637的结果,将当前索引元素对应的
数据元素作为新的融合数据元素,例如此时为pt12。此时,由于索引不相同,因此不需要累加。
103.当排序电路632输出第2个“2”时,融合索引不会增加,相应的融合数据中的融合数据元素也不会增加,结构体生成器会输出关联的结构体运算元素:{pt12,pt42,pt12}。
104.依照上述描述,本领域技术人员可以类似地推导出其他融合结果,例如对于融合索引“3”和“5”,不存在索引相同的情况,因此,只需要将对应的数据元素作为新的融合数据元素即可,例如pt22和pt13,而无需生成运算结构体元素。
105.图8的实施例相比于图7减少了融合过程中的数据搬运,代价是融合数据中融合数据元素的地址是不连续的。此外,对于无需累加的数据元素,不需要运算结构体元素来表示,节省了后续可能的运算量。
106.图9示出了根据本披露实施例的利用上述数据处理电路执行的数据处理方法900的示例性流程图。
107.如图9所示,在步骤910中,控制电路从存储电路中读取多路待融合的数据。接着,在步骤920中,运算电路将这多路待融合的数据中的数据元素按照其对应的索引,归并为一路有序的融合处理后数据,其中具有相同索引的数据元素合并成运算结构体元素。最后,在步骤930中,运算电路将融合处理后数据输出给存储电路。尽管在图中将方法步骤按顺序示出,但是这些步骤会逐个数据元素循环起来,在这些循环中,有些步骤是同时发生的。例如,当运算电路输出数据时,控制电路会同时去访问存储电路,以读取下一待融合的数据元素。
108.本领域技术人员可以理解,上述方法的各个步骤分别对应于前面结合示例电路图描述的各个电路,因此前面描述的特征可以同样地适用于方法步骤,在此不再重复。
109.从上面描述可知,本披露实施例提供了一种硬件电路,用于执行与归并排序融合处理相关的数据融合操作。通过用硬件实现归并排序融合,可以加快处理速度,从而更好地支持与稀疏化后的处理相关的操作,例如支持雷达算法中的运算。在一些实施例中,该硬件电路可以将多路有序的数据合并为一路有序的融合数据,并且索引相同的数据可以合并,并以运算结构体的形式表示,从而便于后续的计算处理。通过提供专门的数据融合相关操作的硬件实现,可以简化并加速处理,由此提高机器的处理效率。
110.根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、pc设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件
信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
111.需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
112.在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
113.在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
114.在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、gpu、fpga、dsp和asic等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(resistive random access memory,rram)、动态随机存取存储器(dynamic random access memory,dram)、静态随机存取存储器(static random access memory,sram)、增强动态随机存取存储器(enhanced dynamic random access memory,edram)、高带宽存储器(high bandwidth memory,hbm)、混合存储器立方体(hybrid memory cube,hmc)、rom和ram等。
115.依据以下条款可更好地理解前述内容:
116.条款1、一种数据处理电路,包括控制电路、存储电路和运算电路,其中:
117.所述控制电路配置用于控制所述存储电路和所述运算电路对多路待融合的数据执行融合处理;
118.所述存储电路配置用于存储信息,所述信息至少包括处理前和/或处理后的信息;
以及
119.所述运算电路配置用于在所述控制电路的控制下,将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合处理后数据,其中具有相同索引的数据元素合并成运算结构体元素,所述数据元素包括标量、向量或更高维数据中任一。
120.条款2、根据条款1所述的数据处理电路,其中所述存储电路包括第一存储电路和第二存储电路,
121.所述第一存储电路配置用于存储所述待融合的k路数据和所述k路数据对应的k路索引,k》1,其中所述k路索引中的索引元素指示所述k路数据中对应的数据元素的索引信息,所述k路索引中每路索引的索引元素均按第一顺序有序排列,所述k路数据中每路数据的数据元素按照对应索引的顺序有序排列;并且
122.所述第二存储电路配置用于存储所述运算电路输出的所述融合处理后数据,包括对所述k路索引排序融合后的融合索引、融合数据、以及运算结构体,其中所述融合索引中的融合索引元素按第二顺序有序排列,所述融合数据中的融合数据元素与所述融合索引元素一一对应,并且至少由相同索引的数据元素构成的融合数据元素通过所述运算结构体中关联的运算结构体元素来表示。
123.条款3、根据条款2所述的数据处理电路,其中所述第一顺序与第二顺序相同或不同,并且所述第一顺序和第二顺序选自以下任一:从小到大的顺序,或从大到小的顺序。
124.条款4、根据条款2-3任一所述的数据处理电路,其中所述运算电路包括排序电路和输出电路,其中
125.所述排序电路配置用于将所述k路索引按照索引元素的大小排序并有序输出给所述输出电路;并且
126.所述输出电路配置用于至少当从所述排序电路接收到相同的索引元素时,生成表示所述相同的索引元素对应的数据元素的累加运算的运算结构体元素,并去除重复的索引元素。
127.条款5、根据条款4所述的数据处理电路,其中所述排序电路包括比较电路和缓冲电路,其中:
128.所述比较电路配置用于将所述k路索引中待排序的索引元素与所述缓冲电路中未输出的索引元素进行比较,并输出比较结果给所述控制电路;并且
129.所述缓冲电路配置用于根据所述控制电路的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
130.条款6、根据条款5所述的数据处理电路,其中所述比较电路包括:
131.k-1路比较器,配置用于将所述k路索引中待排序的索引元素分别与所述缓冲电路中当前序列的k-1个索引元素进行比较,生成比较结果并输出给所述控制电路。
132.条款7、根据条款6所述的数据处理电路,其中所述控制电路配置用于根据所述比较结果,确定所述待排序的索引元素在所述缓冲电路中当前序列中的插入位置。
133.条款8、根据条款7所述的数据处理电路,其中所述比较结果使用位图来表示,并且所述控制电路进一步配置用于:根据所述位图中比特位的变化位置,确定所述插入位置。
134.条款9、根据条款7-8任一所述的数据处理电路,其中所述缓冲电路配置用于根据
所述控制电路的指示,在所述插入位置中插入所述待排序的索引元素以及与其对应的数据元素的信息。
135.条款10、根据条款5-9任一所述的数据处理电路,其中所述缓冲电路进一步配置用于按指定顺序输出当前序列中的首个或末个索引元素以及与其对应的数据元素的信息。
136.条款11、根据条款10所述的数据处理电路,其中所述控制电路进一步配置用于:根据所述缓冲电路中输出的索引元素,确定待排序的下一索引元素的访存信息。
137.条款12、根据条款4-11任一所述的数据处理电路,其中所述输出电路包括比较器、缓冲器和结构体生成器,其中:
138.所述比较器配置用于将从所述排序电路输出的索引元素与上一个融合索引元素进行比较并输出比较结果;
139.所述缓冲器配置用于仅当所述比较结果指示不相同时,输出所述索引元素作为新的融合索引元素;并且
140.所述结构体生成器配置用于当所述比较结果指示相同时,基于所述索引元素对应的数据元素,生成运算结构体元素,所述运算结构体元素表示将所述数据元素累加到上一次融合索引元素对应的融合数据元素的累加运算。
141.条款13、根据条款12所述的数据处理电路,其中所述结构体生成器进一步配置用于,当所述比较结果指示不相同时,基于所述索引元素对应的数据元素,生成运算结构体元素,其中所述运算结构体元素表示将所述数据元素与0相加的累加运算。
142.条款14、根据条款12-13任一所述的数据处理电路,其中每个运算结构体元素包括三个要素,分别指示两个加数和一个加法结果。
143.条款15、根据条款1-14任一所述的数据处理电路,其中所述待融合的数据中每个数据元素指向一个具有预定长度的数据向量,并且所述融合数据中每个融合数据元素指向一个具有所述预定长度的融合数据向量,至少部分所述融合数据向量基于关联的运算结构体元素来确定。
144.条款16、根据条款1-15任一所述的数据处理电路,其中所述待融合的数据中的数据元素是基于雷达的物体检测中的稀疏化后的有效数据元素,并且所述索引指示所述有效数据元素在稀疏化前的数据中的位置信息。
145.条款17、一种芯片,包括根据条款1-16任一所述的数据处理电路。
146.条款18、一种板卡,包括根据条款17所述的芯片。
147.条款19、一种使用数据处理电路来处理数据的方法,所述数据处理电路包括控制电路、存储电路和运算电路,所述方法包括:
148.所述控制电路从所述存储电路读取多路待融合的数据;
149.所述运算电路将所述多路待融合的数据中数据元素按照其对应的索引,归并为一路有序的融合处理后数据,其中具有相同索引的数据元素合并成运算结构体元素,所述数据元素包括标量、向量或更高维数据中任一;以及
150.将所述融合处理后数据输出给所述存储电路。
151.条款20、根据条款19所述的方法,其中所述存储电路包括第一存储电路和第二存储电路,
152.所述第一存储电路配置用于存储所述待融合的k路数据和所述k路数据对应的k路
索引,k》1,其中所述k路索引中的索引元素指示所述k路数据中对应的数据元素的索引信息,所述k路索引中每路索引的索引元素均按第一顺序有序排列,所述k路数据中每路数据的数据元素按照对应索引的顺序有序排列;并且
153.所述第二存储电路配置用于存储所述运算电路输出的所述融合处理后数据,包括对所述k路索引排序融合后的融合索引、融合数据、以及运算结构体,其中所述融合索引中的融合索引元素按第二顺序有序排列,所述融合数据中的融合数据元素与所述融合索引元素一一对应,并且至少由相同索引的数据元素构成的融合数据元素通过所述运算结构体中关联的运算结构体元素来表示。
154.条款21、根据条款20所述的方法,其中所述第一顺序与第二顺序相同或不同,并且所述第一顺序和第二顺序选自以下任一:从小到大的顺序,或从大到小的顺序。
155.条款22、根据条款20-21任一所述的方法,其中所述运算电路包括排序电路和输出电路,并且所述方法进一步包括:
156.所述排序电路将所述k路索引按照索引元素的大小排序并有序输出给所述输出电路;并且
157.至少在从所述排序电路接收到相同的索引元素时,所述输出电路生成表示所述相同的索引元素对应的数据元素的累加运算的运算结构体元素,并去除重复的索引元素。
158.条款23、根据条款22所述的方法,其中所述排序电路包括比较电路和缓冲电路,并且所述方法进一步包括:
159.所述比较电路将所述k路索引中待排序的索引元素与所述缓冲电路中未输出的索引元素进行比较,并输出比较结果给所述控制电路;以及
160.所述缓冲电路根据所述控制电路的控制,有序存储已比较的索引元素以及与其对应的数据元素的信息,以及有序输出已比较的索引元素以及与其对应的数据元素的信息。
161.条款24、根据条款23所述的方法,其中所述比较电路包括k-1路比较器,并且所述方法包括:
162.所述k-1路比较器将所述k路索引中待排序的索引元素分别与所述缓冲电路中当前序列的k-1个索引元素进行比较,生成比较结果并输出给所述控制电路。
163.条款25、根据条款24所述的方法,进一步包括:
164.所述控制电路根据所述比较结果,确定所述待排序的索引元素在所述缓冲电路中当前序列中的插入位置。
165.条款26、根据条款25所述的方法,其中所述比较结果使用位图来表示,并且所述方法进一步包括:所述控制电路根据所述位图中比特位的变化位置,确定所述插入位置。
166.条款27、根据条款25-26任一所述的方法,进一步包括:
167.所述缓冲电路根据所述控制电路的指示,在所述插入位置中插入所述待排序的索引元素以及与其对应的数据元素的信息。
168.条款28、根据条款23-27任一所述的方法,进一步包括:
169.所述缓冲电路按指定顺序输出当前序列中的首个或末个索引元素以及与其对应的数据元素的信息。
170.条款29、根据条款28所述的方法,进一步包括:
171.所述控制电路根据所述缓冲电路中输出的索引元素,确定待排序的下一索引元素
的访存信息。
172.条款30、根据条款22-29任一所述的方法,其中所述输出电路包括比较器、缓冲器和结构体生成器,并且所述方法包括:
173.所述比较器将从所述排序电路输出的索引元素与上一个融合索引元素进行比较并输出比较结果;
174.所述缓冲器仅当所述比较结果指示不相同时,输出所述索引元素作为新的融合索引元素;并且
175.当所述比较结果指示相同时,所述结构体生成器基于所述索引元素对应的数据元素,生成运算结构体元素,所述运算结构体元素表示将所述数据元素累加到上一次融合索引元素对应的融合数据元素的累加运算。
176.条款31、根据条款30所述的方法,进一步包括:
177.当所述比较结果指示不相同时,所述结构体生成器基于所述索引元素对应的数据元素,生成运算结构体元素,其中所述运算结构体元素表示将所述数据元素与0相加的累加运算。
178.条款32、根据条款30-31任一所述的方法,其中每个运算结构体元素包括三个要素,分别指示两个加数和一个加法结果。
179.条款33、根据条款19-32任一所述的方法,其中所述待融合的数据中每个数据元素指向一个具有预定长度的数据向量,并且所述融合数据中每个融合数据元素指向一个具有所述预定长度的融合数据向量,至少部分所述融合数据向量基于关联的运算结构体元素来确定。
180.条款34、根据条款19-22任一所述的方法,其中所述待融合的数据中的数据元素是基于雷达的物体检测中的稀疏化后的有效数据元素,并且所述索引指示所述有效数据元素在稀疏化前的数据中的位置信息。
181.以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1