数据处理装置、数据处理方法及相关产品与流程

文档序号:30595279发布日期:2022-07-01 20:32阅读:66来源:国知局
数据处理装置、数据处理方法及相关产品与流程

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


背景技术:

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


技术实现要素:

5.为了至少部分地解决背景技术中提到的一个或多个技术问题,本披露的方案提供了一种数据处理装置、数据处理方法、芯片和板卡。
6.在第一方面中,本披露公开一种数据处理装置,包括:控制电路,其配置用于解析稀疏指令,所述稀疏指令指示与结构化稀疏相关的操作;存储电路,其配置用于存储稀疏化前和/或稀疏化后的信息;以及运算电路,其配置用于根据所述稀疏指令执行相应的操作。
7.在第二方面中,本披露提供一种芯片,包括前述第一方面任一实施例的数据处理装置。
8.在第三方面中,本披露提供一种板卡,包括前述第二方面任一实施例的芯片。
9.在第四方面中,本披露提供一种数据处理方法,该方法包括:解析稀疏指令,所述稀疏指令指示与结构化稀疏相关的操作;根据所述稀疏指令读取相应的操作数;对所述操作数执行所述与结构化稀疏相关的操作;以及输出操作结果。
10.通过如上所提供的数据处理装置、数据处理方法、集成电路芯片和板卡,本披露实施例提供了一种稀疏指令,用于执行与结构化稀疏相关的操作。在一些实施例中,稀疏指令中可以包括操作模式位来指示稀疏指令的不同操作模式,从而执行不同的操作。在另一些实施例中,可以包括多条稀疏指令,每条指令对应一种或多种不同的操作模式,从而执行与结构化稀疏相关的各种操作。通过提供专门的稀疏指令来执行与结构化稀疏相关的操作,可以简化处理,由此提高机器的处理效率。
附图说明
11.通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
12.图1是示出本披露实施例的板卡的结构图;
13.图2是示出本披露实施例的组合处理装置的结构图;
14.图3是示出本披露实施例的单核计算装置的内部结构示意图;
15.图4是示出本披露实施例的多核计算装置的内部结构示意图;
16.图5是示出本披露实施例的处理器核的内部结构示意图;
17.图6是示出本披露实施例的数据处理装置的结构示意图;
18.图7a是示出本披露实施例的结构化稀疏处理的示例性流水运算电路;
19.图7b是示出本披露另一实施例的结构化稀疏处理的示例性流水运算电路;以及
20.图8是示出本披露实施例的数据处理方法的示例性流程图。
具体实施方式
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.图4示出了计算装置201为多核的内部结构示意图。多核计算装置41采用分层结构设计,多核计算装置41作为一个片上系统,其包括至少一个集群(cluster),每个集群又包括多个处理器核,换言之,多核计算装置41是以片上系统-集群-处理器核的层次所构成的。
39.以片上系统的层级来看,如图4所示,多核计算装置41包括外部存储控制器401、外设通信模块402、片上互联模块403、同步模块404以及多个集群405。
40.外部存储控制器401可以有多个,在图中示例性地展示2个,其用以响应处理器核发出的访问请求,访问外部存储设备,例如图2中的dram204,从而自片外读取数据或是将数据写入。外设通信模块402用以通过接口装置202接收来自处理装置203的控制信号,启动计算装置201执行任务。片上互联模块403将外部存储控制器401、外设通信模块402及多个集群405连接起来,用以在各个模块间传输数据和控制信号。同步模块404是一种全局同步屏障控制器(global barrier controller,gbc),用以协调各集群的工作进度,确保信息的同步。多个集群405是多核计算装置41的计算核心,在图中示例性地展示4个,随着硬件的发展,本披露的多核计算装置41还可以包括8个、16个、64个、甚至更多的集群405。集群405用以高效地执行深度学习算法。
41.以集群的层级来看,如图4所示,每个集群405包括多个处理器核(ipu core)406及一个存储核(mem core)407。
42.处理器核406在图中示例性地展示4个,本披露不限制处理器核406的数量。其内部架构如图5所示。每个处理器核406类似于图3的单核计算装置301,同样包括三大模块:控制模块51、运算模块52及存储模块53。控制模块51、运算模块52及存储模块53的功用及结构大致与控制模块31、运算模块32及存储模块33相同,不再赘述。需特别说明的是,存储模块53包括输入/输出直接内存访问模块(input/output direct memory access,iodma)533、搬运直接内存访问模块(move direct memory access,mvdma)534。iodma 533通过广播总线409控制nram 531/wram 532与dram 204的访存;mvdma 534则用以控制nram 531/wram 532与存储单元(sram)408的访存。
43.回到图4,存储核407主要用以存储和通信,即存储处理器核406间的共享数据或中间结果、以及执行集群405与dram 204之间的通信、集群405间彼此的通信、处理器核406间彼此的通信等。在其他实施例中,存储核407具有标量运算的能力,用以执行标量运算。
44.存储核407包括sram 408、广播总线409、集群直接内存访问模块(cluster direct memory access,cdma)410及全局直接内存访问模块(global direct memory access,gdma)411。sram 408承担高性能数据中转站的角色,在同一个集群405内不同处理器核406之间所复用的数据不需要通过处理器核406各自向dram 204获得,而是经sram 408在处理器核406间中转,存储核407只需要将复用的数据从sram 408迅速分发给多个处理器核406即可,以提高核间通讯效率,亦大大减少片上片外的输入/输出访问。
45.广播总线409、cdma 410及gdma 411则分别用来执行处理器核406间的通信、集群405间的通信和集群405与dram 204的数据传输。以下将分别说明。
46.广播总线409用以完成集群405内各处理器核406间的高速通信,此实施例的广播总线409支持核间通信方式包括单播、多播与广播。单播是指点对点(例如单一处理器核至单一处理器核)的数据传输,多播是将一份数据从sram 408传输到特定几个处理器核406的通信方式,而广播则是将一份数据从sram 408传输到所有处理器核406的通信方式,属于多播的一种特例。
47.cdma 410用以控制在同一个计算装置201内不同集群405间的sram 408的访存。
48.gdma 411与外部存储控制器401协同,用以控制集群405的sram 408到dram 204的访存,或是将数据自dram 204读取至sram 408中。从前述可知,dram 204与nram 431或wram 432间的通信可以经由2个渠道来实现。第一个渠道是通过iodam 433直接联系dram 204与nram 431或wram 432;第二个渠道是先经由gdma 411使得数据在dram 204与sram 408间传输,再经过mvdma 534使得数据在sram 408与nram 431或wram 432间传输。虽然表面上看来第二个渠道需要更多的元件参与,数据流较长,但实际上在部分实施例中,第二个渠道的带宽远大于第一个渠道,因此dram 204与nram 431或wram 432间的通信通过第二个渠道可能更有效率。本披露的实施例可根据本身硬件条件选择数据传输渠道。
49.在其他实施例中,gdma 411的功能和iodma 533的功能可以整合在同一部件中。本披露为了方便描述,将gdma 411和iodma 533视为不同部件,对于本领域技术人员来说,只要其实现的功能以及达到的技术效果与本披露类似,即属于本披露的保护范围。进一步地,gdma 411的功能、iodma 533的功能、cdma 410的功能、mvdma 534的功能亦可以由同一部件来实现。
50.本披露的一个实施例基于前述的硬件环境,提供一种数据处理方案,根据专门的稀疏指令来执行与结构化稀疏相关的操作。
51.图6示出根据本披露实施例的数据处理装置600的结构框图。数据处理装置600例如可以实现在图2的计算装置201中。如图所示,数据处理装置600可以包括控制电路610、存储电路620和运算电路630。
52.控制电路610的功能可以类似于图3的控制模块31或图5的控制模块51,其例如可以包括取指单元,用以获取来自例如图2的处理装置203的指令,以及指令译码单元,用于将获取的指令进行译码,并将译码结果作为控制信息发送给运算电路630和存储电路620。
53.在一个实施例中,控制电路610可以配置用于解析稀疏指令,其中稀疏指令指示与结构化稀疏相关的操作。
54.存储电路620可以配置用于存储稀疏化前和/或稀疏化后的信息。在一个实施例中,稀疏指令的操作数是神经网络中的数据,例如权值、神经元等。在此实施例中,存储电路例如可以是图3的wram 332、nram 331或图5的wram 532、nram531。
55.运算电路630可以配置用于根据稀疏指令执行相应的操作。
56.在一些实施例中,运算电路630可以包括一组或多组流水运算电路631,其中每组流水运算电路631可以包括一个或多个运算器。当每组流水运算电路包括多个运算器时,这多个运算器可以配置成执行多级流水运算,也即构成一条多级运算流水线。
57.在一些应用场景中,本披露的流水运算电路可以支持与结构化稀疏相关的操作。
例如,在执行结构化稀疏处理时,可以采用由比较器等电路构成的多级流水运算电路来执行从每m个数据元素中提取n个数据元素作为有效数据元素的操作,其中m》n。在一个实现中,m=4,n=2。在另一些实现中,n也可以取其他值,例如1或3。
58.在一个实施例中,运算电路630还可以包括运算处理电路632,其可以配置成根据运算指令对流水运算电路631执行运算前的数据进行预处理或者对运算后的数据进行后处理。在一些应用场景中,前述的预处理和后处理可以例如包括数据拆分和/或数据拼接操作。在结构化稀疏处理中,运算处理电路可以将待稀疏化数据按照每m个数据元素进行分段拆分,然后送给流水运算电路631进行处理。
59.图7a示出了根据本披露一个实施例的结构化稀疏处理的示例性运算流水线。在图7a的实施例中,示出了当m=4,n=2时,从4个数据元素a、b、c和d中筛选出2个绝对值较大的数据元素的结构化稀疏处理。
60.如图7a所示,可以利用由求绝对值运算器、比较器构成的4级流水运算电路来执行上述结构化稀疏处理。
61.第一级流水运算电路可以包括4个求绝对值运算器710,用于同步地分别对4个输入的数据元素a、b、c和d进行求绝对值操作。
62.第二级流水运算电路可以包括两个比较器,用于对上一级输出的4个绝对值进行分组比较。例如,第一比较器721可以对数据元素a和b的绝对值进行比较并输出较大值max00,第二比较器722可以对数据元素c和d的绝对值进行比较并输出较大值max10。
63.第三级流水运算电路可以包括一个第三比较器730,对上一级输出的2个较大值max00和max10进行比较并输出较大值max0。此较大值max0即为这4个数据元素中绝对值最大的值。
64.第四级流水运算电路可以包括一个第四比较器740,对上一级中的较小值min0与最大值max0所在分组中的另一值进行比较并输出较大值max1。此较大值max1即为这4个数据元素中绝对值次大的值。
65.由此,通过4级流水运算电路可以实现四选二的结构化稀疏处理。
66.图7b示出了根据本披露另一实施例的结构化稀疏处理的示例性运算流水线。同样地,在图7b的实施例中,示出了当m=4,n=2时,从4个数据元素a、b、c和d中筛选出2个绝对值较大的数据元素的结构化稀疏处理。
67.如图7b所示,可以利用由求绝对值运算器、比较器等构成的多级流水运算电路来执行上述结构化稀疏处理。
68.第一流水级可以包括m(4)个求绝对值运算器750,用于同步地分别对4个输入的数据元素a、b、c和d进行求绝对值操作。为了便于最后输出有效数据元素,在一些实施例中,第一流水级会同时输出原数据元素(也即,a、b、c和d)和经过求绝对值操作后的数据(也即,|a|、|b|、|c|和|d|)。
69.第二流水级可以包括排列组合电路760,用于对这m个绝对值进行排列组合,以生成m组数据,其中每组数据均包括这m个绝对值,并且这m个绝对值在各组数据中的位置互不相同。
70.在一些实施例中,排列组合电路可以是循环移位器,对m个绝对值(例如,|a|、|b|、|c|和|d|)的排列进行m-1次循环移位,从而生成m组数据。例如,在图中示出的示例中,生成
4组数据,分别是:{|a|,|b|,|c|,|d|}、{|b|,|c|,|d|,|a|}、{|c|,|d|,|a|,|b|}和{|d|,|a|,|b|,|c|}。同样地,输出每组数据的同时还会输出对应的原数据元素,每组数据对应一个原数据元素。
71.第三流水级包括比较电路770,用于对这m组数据中的绝对值进行比较并生成比较结果。
72.在一些实施例中,第三流水级可以包括m路比较电路,每路比较电路包括m-1个比较器(771,772,773),第i路比较电路中的m-1个比较器用于将第i组数据中的一个绝对值与其他三个绝对值依次比较并生成比较结果,其中1≤i≤m。
73.从图中可以看出,第三流水级也可以认为是m-1(3)个子流水级。每个子流水级包括m个比较器,用于将其对应的一个绝对值与其他绝对值进行比较。m-1个子流水级也就是依次将对应的一个绝对值与其他m-1个绝对值进行比较。
74.例如,在图中示出的示例中,第一子流水级中的4个比较器771用于分别将4组数据中的第一个绝对值与第二个绝对值进行比较,并分别输出比较结果w0、x0、y0和z0。第二子流水级中的4个比较器772用于分别将4组数据中的第一个绝对值与第三个绝对值进行比较,并分别输出比较结果w1、x1、y1和z1。第三子流水级中的4个比较器773用于分别将4组数据中的第一个绝对值与第四个绝对值进行比较,并分别输出比较结果w2、x2、y2和z2。
75.由此,可以得到每个绝对值与其他m-1个绝对值的比较结果。
76.在一些实施例中,比较结果可以使用位图来表示。例如,在第1路比较电路的第1个比较器处,当|a|≥|b|时,w0=1;在第1路第2个比较器处,当|a|<|c|时,w1=0;在第1路第3个比较器处,当|a|≥|d|时,w2=1,由此,第1路比较电路的输出结果是{a,w0,w1,w2},此时为{a,1,0,1}。类似地,第2路比较电路的输出结果是{b,x0,x1,x2},第3路比较电路的输出结果是{c,y0,y1,y2},第4路比较电路的输出结果是{d,z0,z1,z2}。
77.第四流水级包括筛选电路780,用于根据第三级的比较结果,从m个数据元素中选择n个绝对值较大的数据元素作为有效数据元素,以及输出这些有效数据元素及对应的索引。索引用于指示这些有效数据元素在输入的m个数据元素中的位置。例如,当从a、b、c、d四个数据元素中筛选出a和c时,其对应的索引可以是0和2。
78.根据比较结果,可以设计合适的逻辑来选择绝对值较大的n个数据元素。考虑到可能出现多个绝对值相同的情况,在进一步的实施例中,当存在绝对值相同的数据元素时,按照指定的优先级顺序来进行选择。例如,可以按照索引从低到高固定优先级的方式,设置a的优先级最高,d的优先级最低。在一个示例中,当a、c、d三个数的绝对值均相同并且大于b的绝对值时,选择的数据为a和c。
79.从前面的比较结果可以看出,根据w0、w1和w2可以分析出|a|比{|b|,|c|,|d|}几个数大。如果w0、w1和w2均为1,则表示|a|比|b|、|c|、|d|都大,为四个数中的最大值,因此选择a。如果w0、w1和w2中有两个1,则表示|a|是四个绝对值中的次大值,因此也选择a。否则,不选择a。因此,在一些实施例中,可以根据这些数值的出现次数来分析判断。
80.在一种实现中,可以基于如下逻辑来选择有效数据元素。首先,可以统计各个数据大于其他数据的次数。例如,定义na=sum_w=w0+w1+w2,nb=sum_x=x0+x1+x2,nc=sum_y=y0+y1+y2,nd=sum_z=z0+z1+z2。接着,按如下条件进行判断选择。
81.选择a的条件为:na=3,或者na=2且nb/nc/nd中只有一个3;
82.选择b的条件为:nb=3,或者nb=2且na/nc/nd中只有一个3,且na≠2;
83.选择c的条件为:nc=3,且na/nb中至多只有一个3,或者nc=2且na/nb/nd中只有一个3,且na/nb中没有2;
84.选择d的条件为:nd=3,且na/nb/nc中至多只有一个3,或者nd=2且na/nb/nc中只有一个3,且na/nb/nc中没有2。
85.本领域技术人员可以理解,为了确保按预定优先级选择,上述逻辑中存在一定的冗余。基于比较结果提供的大小及顺序信息,本领域技术人员可以设计其他逻辑来实现有效数据元素的筛选,本披露在此方面没有限制。由此,通过图7b的多级流水运算电路也可以实现四选二的结构化稀疏处理。
86.本领域技术人员可以理解,还可以设计其他形式的流水运算电路来实现结构化稀疏处理,本披露在此方面没有限制。
87.如前面所提到的,稀疏指令的操作数可以是神经网络中的数据,例如权值、神经元等。神经网络中的数据通常包含多个维度。例如,在卷积神经网络中,数据可能存在四个维度:输入通道、输出通道、长度和宽度。在一些实施例中,上述稀疏指令可以用于神经网络中多维数据的至少一个维度的结构化稀疏处理。具体地,在一个实现中,稀疏指令可以用于对神经网络中多维数据的输入通道维度的结构化稀疏处理,例如在神经网络的推理过程中或前向训练过程中。在另一个实现中,稀疏指令可以用于对神经网络中的多维数据的输入通道维度和输出通道维度同时进行结构化稀疏处理,例如在神经网络的反向训练过程中。
88.在一个实施例中,响应于接收到的多个稀疏指令,本披露的一个或多个多级流水运算电路可以配置成执行多数据运算,例如执行单指令多数据(“simd”)指令。在另一个实施例中,根据多级运算流水线中逐级布置的多个运算电路所支持的功能来预先确定每级运算电路所执行的多个操作。
89.在本披露的上下文中,前述的多个稀疏指令可以是在一条或多条多级运算流水线内部运行的微指令或控制信号,其可以包括(或者说指示)一个或多个需多级运算流水线执行的运算操作。根据不同的运算操作场景,运算操作可以包括但不限于卷积操作、矩阵乘法操作等算术运算、与操作、异或操作、或操作等逻辑运算、移位操作,或者前述各类运算操作的任意多种组合。
90.图8示出了根据本披露实施例的数据处理方法800的示例性流程图。
91.如图8所示,在步骤810中,解析稀疏指令,该稀疏指令指示与结构化稀疏相关的操作。该步骤例如可以由图6的控制电路610来执行。
92.接着,在步骤820中,根据稀疏指令读取相应的操作数。稀疏指令可以指示不同的操作模式,相应的操作数也有不同,后面将详细描述。该步骤例如可以由图6的控制电路610针对存储电路620来执行。
93.接着,在步骤830中,对读取的操作数执行与结构化稀疏相关的操作。该步骤例如可以由图6的运算电路630来执行。
94.最后,在步骤840中,输出操作结果。例如,可以由运算电路630将操作结果输出到存储电路620以供随后使用。
95.与结构化稀疏相关的操作可以存在多种,例如结构化稀疏处理、反稀疏化处理等。可以设计多种指令方案来实现与结构化稀疏相关的操作。
96.在一种方案中,可以设计一条稀疏指令,指令中可以包括操作模式位来指示稀疏指令的不同操作模式,从而执行不同的操作。
97.在另一种方案中,可以设计多条稀疏指令,每条指令对应一种或多种不同的操作模式,从而执行不同的操作。在一种实现中,可以针对每种操作模式设计一条对应的稀疏指令。在另一种实现中,可以根据操作模式的特性分类,针对每类操作模式设计一条稀疏指令。进一步地,当某一类操作模式中包括多个操作模式时,可以在稀疏指令中包括操作模式位来指示相应的操作模式。
98.无论采取哪种方案,稀疏指令可以通过操作模式位和/或指令本身来指示其对应的操作模式。
99.在一个实施例中,稀疏指令可以指示第一操作模式。在第一操作模式中,稀疏指令的操作数包括待稀疏化数据。此时,运算电路630可以配置用于根据稀疏指令,对该待稀疏化数据执行结构化稀疏处理,并向存储电路620输出稀疏化处理后的结构体。
100.第一操作模式中的结构化稀疏处理可以是预定筛选规则的结构化稀疏处理,例如按照筛选绝对值较大的规则,从每m个数据元素中筛选出n个绝对值较大的数据元素作为有效数据元素。运算电路630例如可以配置成参考图7a和图7b描述的流水运算电路来执行此结构化稀疏处理。
101.稀疏化处理后的结果包括两部分:数据部分和索引部分。数据部分包括待稀疏化数据经稀疏化处理后的数据,也即根据结构化稀疏处理的筛选规则提取出的有效数据元素。索引部分用于指示稀疏化后的数据,也即有效数据元素在稀疏化前的数据(也即,待稀疏化数据)中的位置。
102.本披露实施例中的结构体包括相互绑定的数据部分和索引部分。在一些实施例中,索引部分中每1比特可以对应一个数据元素。例如,当数据类型是fix8时,一个数据元素为8比特,则索引部分中每1比特可以对应8比特的数据。在另一些实施例中,考虑到后续在使用结构体时硬件层面的实现,可以将结构体中的索引部分中每1比特设定为对应n比特数据的位置,n至少部分基于硬件配置确定。例如,可以设置为结构体中的索引部分的每1比特对应于4比特数据的位置。例如,当数据类型是fix8时,索引部分中每2比特对应于一个fix8类型的数据元素。在一些实施例中,结构体中的数据部分可以按照第一对齐要求对齐,结构体中的索引部分可以按照第二对齐要求对齐,从而整个结构体也满足对齐要求。例如,数据部分可以按照64b对齐,索引部分可以按照32b对齐,整个结构体则按照96b(64b+32b)对齐。通过这种对齐要求,在后续使用时可以减少访存次数,提高处理效率。
103.通过使用这种结构体,数据部分和索引部分可以统一使用。由于结构化稀疏处理中,有效数据元素占据所有数据元素的比例是固定的,例如n/m,因此,稀疏化处理后的数据大小也是固定或可预期的。从而,结构体可以在存储电路中致密存储而无性能损失。
104.在另一实施例中,稀疏指令可以指示第二操作模式。第二操作模式与第一操作模式的区别在于输出的内容不同,第二操作模式仅输出结构化稀疏处理后的数据部分,而不输出索引部分。
105.类似地,在第二操作模式中,稀疏指令的操作数包括待稀疏化数据。此时,运算电路630可以配置用于根据稀疏指令,对该待稀疏化数据执行结构化稀疏处理,并向存储电路620输出稀疏化处理后的数据部分。该数据部分包括待稀疏化数据经稀疏化处理后的数据。
数据部分在存储电路中致密存储。输出的数据部分按照n个元素对齐。例如,在m=4,n=2的示例中,输入的待稀疏化数据是按4个元素对齐的,而输出的数据部分则是按2个元素对齐的。
106.在又一实施例中,稀疏指令可以指示第三操作模式。第三操作模式与第一操作模式的区别在于输出的内容不同,第三操作模式仅输出结构化稀疏处理后的索引部分,而不输出数据部分。
107.类似地,在第三操作模式中,稀疏指令的操作数包括待稀疏化数据。此时,运算电路630可以配置用于根据稀疏指令,对该待稀疏化数据执行结构化稀疏处理,并向存储电路620输出稀疏化处理后的索引部分。该索引部分指示稀疏化后的数据在待稀疏化数据中的位置。索引部分在存储电路中致密存储。输出的索引部分中每1比特对应一个数据元素的位置。由于索引部分可以单独使用,例如用于后续卷积处理中对神经元的结构化稀疏,而神经元的数据类型可能不确定,因此,通过将索引部分中每1比特对应一个数据元素的位置,该独立存储的索引部分可以适用于各种数据类型。
108.在再一实施例中,稀疏指令可以指示第四操作模式。第四操作模式与第一操作模式的区别在于,第四操作模式指定了结构化稀疏处理的筛选规则,而不是按照预定的筛选规则(例如,前面的绝对值较大规则)进行结构化稀疏处理。此时,稀疏指令的操作数有两个:待稀疏化数据和稀疏索引。增加的稀疏索引这一操作数,用来指示将要执行的结构化稀疏中有效数据元素的位置,也即指定结构化稀疏处理的筛选规则。稀疏索引中每1比特对应一个数据元素的位置,因而可以适用于各种数据类型的待稀疏化数据。
109.在第四操作模式中,运算电路630可以配置用于根据稀疏指令,按照稀疏索引指示的位置,对待稀疏化数据执行结构化稀疏处理,并向存储电路输出稀疏化处理后的结果。在一种实现中,输出结果可以是稀疏化处理后的结构体。在另一种实现中,输出结果可以是稀疏化处理后的数据部分。
110.结构体的含义与第一操作模式中的相同,其包括相互绑定的数据部分和索引部分,数据部分包括待稀疏化数据经稀疏化处理后的数据,索引部分用于指示稀疏化后的数据在待稀疏化数据中的位置。结构体中对数据部分、索引部分的对齐要求、对应关系等与第一操作模式中的相同,此处不再重复。
111.上面四种操作模式提供了对数据的结构化稀疏处理,例如按照预定筛选规则或者按照指令的操作数所指定的筛选规则进行处理,并且分别提供了不同的输出内容,例如输出结构体、只输出数据部分、只输出索引部分等。上述指令设计可以很好地支持结构化稀疏处理,并提供了多种输出选择,以适应不同的场景需求,例如需要数据与索引绑定使用时,可以选择输出结构体,而在需要单独使用索引部分或数据部分时,可以选择只输出索引部分或数据部分。
112.在又一实施例中,稀疏指令可以指示第五操作模式。第五操作模式不需要进行结构化稀疏处理,只需要将分离或独立的数据部分与索引部分绑定成结构体。
113.在第五操作模式中,稀疏指令的操作数包括经稀疏化处理后的数据部分和对应的索引部分。数据部分和索引部分分别是致密存储格式,但是未进行绑定。输入的数据部分按照n个元素对齐。例如,在m=4,n=2的示例中,输入的数据部分是按2个元素对齐的。索引部分指示数据部分在稀疏化处理前的数据中的位置,其中索引部分的每1比特对应于一个数
据元素。
114.此时,运算电路630可以配置用于根据稀疏指令,将数据部分与索引部分绑定成结构体,并向存储电路输出该结构体。结构体的含义、对数据部分、索引部分的对齐要求、对应关系等与第一操作模式中的相同,此处不再重复。取决于数据元素的数据类型,需要基于数据类型以及结构体中索引部分的比特对应关系,来相应地生成结构体中的索引部分。例如,当输入的索引部分为0011,其中每1比特对应一个数据元素,如果数据类型为fix8,也即每一个数据元素具有8比特,则根据结构体中索引部分每1比特对应4比特数据的对应关系,结构体中的索引部分应为:00001111,也即2比特对应一个数据元素。
115.在再一实施例中,稀疏指令可以指示第六操作模式。第六操作模式用于执行反稀疏化处理,也即将稀疏化后的数据恢复成稀疏化前的数据格式或规模。
116.在第六操作模式中,稀疏指令的操作数包括经稀疏化处理后的数据部分和对应的索引部分,数据部分和索引部分分别是致密存储格式,但是未进行绑定。输入的数据部分按照n个元素对齐。例如,在m=4,n=2的示例中,输入的数据部分是按2个元素对齐的,输出的数据则按4个元素对齐。索引部分指示数据部分在稀疏化处理前的数据中的位置,其中索引部分的每1比特对应于一个数据元素。
117.此时,运算电路630可以配置用于根据稀疏指令,按照输入的索引部分指示的位置,对输入的数据部分执行反稀疏化处理,以生成具有稀疏化处理前的数据格式的恢复数据,并向存储电路输出该恢复数据。
118.在一种实现中,反稀疏化处理可以包括:根据索引部分指示的位置,按照稀疏化处理前的数据格式,将数据部分中的各个数据元素分别放置在稀疏化处理前的数据格式的对应位置,以及在数据格式的其余位置处填充预定信息(例如,填充0)以生成恢复数据。
119.从上面描述可知,本披露实施例提供了一种稀疏指令,用于执行与结构化稀疏相关的操作。这些操作可以包括正向的结构化稀疏操作,也可以包括反稀疏化操作,还可以包括一些相关的格式转换操作。在一些实施例中,稀疏指令中可以包括操作模式位来指示稀疏指令的不同操作模式,从而执行不同的操作。在另一些实施例中,可以直接提供多条稀疏指令,每条指令对应一种或多种不同的操作模式,从而执行与结构化稀疏相关的各种操作。通过提供专门的稀疏指令来执行与结构化稀疏相关的操作,可以简化处理,由此提高机器的处理效率。
120.根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、pc设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘
端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
121.需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
122.在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
123.在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
124.在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、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等。
125.依据以下条款可更好地理解前述内容:
126.条款1、一种数据处理装置,包括:
127.控制电路,其配置用于解析稀疏指令,所述稀疏指令指示与结构化稀疏相关的操
作;
128.存储电路,其配置用于存储稀疏化前和/或稀疏化后的信息;以及
129.运算电路,其配置用于根据所述稀疏指令执行相应的操作。
130.条款2、根据条款1所述的数据处理装置,其中所述稀疏指令指示第一操作模式,并且所述稀疏指令的操作数包括待稀疏化数据,
131.所述运算电路配置用于根据所述稀疏指令,对所述待稀疏化数据执行结构化稀疏处理,并向所述存储电路输出稀疏化处理后的结构体,所述结构体包括相互绑定的数据部分和索引部分,所述数据部分包括所述待稀疏化数据经稀疏化处理后的数据,所述索引部分用于指示稀疏化后的数据在所述待稀疏化数据中的位置。
132.条款3、根据条款1所述的数据处理装置,其中所述稀疏指令指示第二操作模式,并且所述稀疏指令的操作数包括待稀疏化数据,
133.所述运算电路配置用于根据所述稀疏指令,对所述待稀疏化数据执行结构化稀疏处理,并向所述存储电路输出稀疏化处理后的数据部分,所述数据部分包括所述待稀疏化数据经稀疏化处理后的数据。
134.条款4、根据条款1所述的数据处理装置,其中所述稀疏指令指示第三操作模式,并且所述稀疏指令的操作数包括待稀疏化数据,
135.所述运算电路配置用于根据所述稀疏指令,对所述待稀疏化数据执行结构化稀疏处理,并向所述存储电路输出稀疏化处理后的索引部分,所述索引部分指示稀疏化后的数据在所述待稀疏化数据中的位置。
136.条款5、根据条款1所述的数据处理装置,其中所述稀疏指令指示第四操作模式,并且所述稀疏指令的操作数包括待稀疏化数据和稀疏索引,所述稀疏索引指示将要执行的结构化稀疏中有效数据元素的位置,
137.所述运算电路配置用于根据所述稀疏指令,按照所述稀疏索引指示的位置,对所述待稀疏化数据执行结构化稀疏处理,并向所述存储电路输出稀疏化处理后的结构体或稀疏化处理后的数据部分,所述结构体包括相互绑定的数据部分和索引部分,所述数据部分包括所述待稀疏化数据经稀疏化处理后的数据,所述索引部分用于指示稀疏化后的数据在所述待稀疏化数据中的位置。
138.条款6、根据条款1所述的数据处理装置,其中所述稀疏指令指示第五操作模式,并且所述稀疏指令的操作数包括经稀疏化处理后的数据部分和对应的索引部分,所述索引部分指示所述数据部分在稀疏化处理前的数据中的位置,
139.所述运算电路配置用于根据所述稀疏指令,将所述数据部分与所述索引部分绑定成结构体,并向所述存储电路输出所述结构体。
140.条款7、根据条款1所述的数据处理装置,其中所述稀疏指令指示第六操作模式,并且所述稀疏指令的操作数包括经稀疏化处理后的数据部分和对应的索引部分,所述索引部分指示所述数据部分在稀疏化处理前的数据中的位置,
141.所述运算电路配置用于根据所述稀疏指令,按照所述索引部分指示的位置,对所述数据部分执行反稀疏化处理,以生成具有稀疏化处理前的数据格式的恢复数据,并向所述存储电路输出所述恢复数据。
142.条款8、根据条款2-5任一所述的数据处理装置,其中所述结构化稀疏处理包括从
每m个数据元素中选择n个数据元素作为有效数据元素,其中m》n。
143.条款9、根据条款8所述的数据处理装置,其中所述运算电路进一步包括:至少一个多级流水运算电路,其包括逐级布置的多个运算器并且配置成根据所述稀疏指令来执行从m个数据元素中选择n个绝对值较大的数据元素作为有效数据元素的结构化稀疏处理。
144.条款10、根据条款9所述的数据处理装置,其中所述多级流水运算电路包括四个流水级,其中:
145.第一流水级包括m个求绝对值运算器,用于分别对待稀疏化的m个数据元素取绝对值,以生成m个绝对值;
146.第二流水级包括排列组合电路,用于对所述m个绝对值进行排列组合,以生成m组数据,其中每组数据均包括所述m个绝对值并且所述m个绝对值在各组数据中的位置互不相同;
147.第三流水级包括m路比较电路,用于对所述m组数据中的绝对值进行比较并生成比较结果;以及
148.第四流水级包括筛选电路,用于根据所述比较结果选择n个绝对值较大的数据元素作为有效数据元素,以及输出所述有效数据元素及对应的索引,所述索引指示所述有效数据元素在所述m个数据元素中的位置。
149.条款11、根据条款10所述的数据处理装置,其中所述第三流水级中每路比较电路包括m-1个比较器,第i路比较电路中的m-1个比较器用于将第i组数据中的一个绝对值与其他三个绝对值依次比较并生成比较结果,1≤i≤m。
150.条款12、根据条款10-11任一所述的数据处理装置,其中所述筛选电路进一步配置用于,当存在绝对值相同的数据元素时,按照指定的优先级顺序进行选择。
151.条款13、根据条款7所述的数据处理装置,其中所述反稀疏化处理包括:
152.根据所述索引部分指示的位置,按照稀疏化处理前的数据格式,将所述数据部分中的各个数据元素分别放置在稀疏化处理前的数据格式的对应位置,以及在所述数据格式的其余位置处填充预定信息以生成所述恢复数据。
153.条款14、根据条款2、5或6所述的数据处理装置,其中,
154.所述结构体中的索引部分中每1比特对应n比特数据的位置,n至少部分基于硬件配置确定;和/或
155.所述结构体中的数据部分按照第一对齐要求对齐,所述结构体中的索引部分按照第二对齐要求对齐。
156.条款15、根据条款1-14任一所述的数据处理装置,其中所述稀疏指令用于神经网络中多维数据的至少一个维度的结构化稀疏处理。
157.条款16、根据条款15所述的数据处理装置,其中所述至少一个维度选自输入通道维度和输出通道维度。
158.条款17、根据条款1-16任一所述的数据处理装置,其中
159.所述稀疏指令中包括操作模式位来指示所述稀疏指令的操作模式,或者
160.所述稀疏指令包括多条指令,每条指令对应一种或多种不同的操作模式。
161.条款18、一种芯片,包括根据条款1-17任一所述的数据处理装置。
162.条款19、一种板卡,包括根据条款18所述的芯片。
163.条款20、一种数据处理方法,包括:
164.解析稀疏指令,所述稀疏指令指示与结构化稀疏相关的操作;
165.根据所述稀疏指令读取相应的操作数;
166.对所述操作数执行所述与结构化稀疏相关的操作;以及
167.输出操作结果。
168.条款21、根据条款20所述的数据处理方法,其中所述稀疏指令指示第一操作模式,并且所述稀疏指令的操作数包括待稀疏化数据,所述方法进一步包括:
169.根据所述稀疏指令,对所述待稀疏化数据执行结构化稀疏处理;以及
170.输出稀疏化处理后的结构体,所述结构体包括相互绑定的数据部分和索引部分,所述数据部分包括所述待稀疏化数据经稀疏化处理后的数据,所述索引部分用于指示稀疏化后的数据在所述待稀疏化数据中的位置。
171.条款22、根据条款20所述的数据处理方法,其中所述稀疏指令指示第二操作模式,并且所述稀疏指令的操作数包括待稀疏化数据,所述方法进一步包括:
172.根据所述稀疏指令,对所述待稀疏化数据执行结构化稀疏处理;以及
173.输出稀疏化处理后的数据部分,所述数据部分包括所述待稀疏化数据经稀疏化处理后的数据。
174.条款23、根据条款20所述的数据处理方法,其中所述稀疏指令指示第三操作模式,并且所述稀疏指令的操作数包括待稀疏化数据,所述方法进一步包括:
175.根据所述稀疏指令,对所述待稀疏化数据执行结构化稀疏处理;以及
176.输出稀疏化处理后的索引部分,所述索引部分指示稀疏化后的数据在所述待稀疏化数据中的位置。
177.条款24、根据条款20所述的数据处理方法,其中所述稀疏指令指示第四操作模式,并且所述稀疏指令的操作数包括待稀疏化数据和稀疏索引,所述稀疏索引指示将要执行的结构化稀疏中有效数据元素的位置,所述方法进一步包括:
178.根据所述稀疏指令,按照所述稀疏索引指示的位置,对所述待稀疏化数据执行结构化稀疏处理;以及
179.输出稀疏化处理后的结构体或稀疏化处理后的数据部分,所述结构体包括相互绑定的数据部分和索引部分,所述数据部分包括所述待稀疏化数据经稀疏化处理后的数据,所述索引部分用于指示稀疏化后的数据在所述待稀疏化数据中的位置。
180.条款25、根据条款20所述的数据处理方法,其中所述稀疏指令指示第五操作模式,并且所述稀疏指令的操作数包括经稀疏化处理后的数据部分和对应的索引部分,所述索引部分指示所述数据部分在稀疏化处理前的数据中的位置,所述方法进一步包括:
181.根据所述稀疏指令,将所述数据部分与所述索引部分绑定成结构体;以及
182.输出所述结构体。
183.条款26、根据条款20所述的数据处理方法,其中所述稀疏指令指示第六操作模式,并且所述稀疏指令的操作数包括经稀疏化处理后的数据部分和对应的索引部分,所述索引部分指示所述数据部分在稀疏化处理前的数据中的位置,所述方法进一步包括:
184.根据所述稀疏指令,按照所述索引部分指示的位置,对所述数据部分执行反稀疏化处理,以生成具有稀疏化处理前的数据格式的恢复数据;以及
185.输出所述恢复数据。
186.条款27、根据条款21-24任一所述的数据处理方法,其中所述结构化稀疏处理包括从每m个数据元素中选择n个数据元素作为有效数据元素,其中m》n。
187.条款28、根据条款27所述的数据处理方法,其中所述结构化稀疏处理使用运算电路来实施,所述运算电路包括:至少一个多级流水运算电路,其包括逐级布置的多个运算器并且配置成根据所述稀疏指令来执行从m个数据元素中选择n个绝对值较大的数据元素作为有效数据元素的结构化稀疏处理。
188.条款29、根据条款28所述的数据处理方法,其中所述多级流水运算电路包括四个流水级,其中:
189.第一流水级包括m个求绝对值运算器,用于分别对待稀疏化的m个数据元素取绝对值,以生成m个绝对值;
190.第二流水级包括排列组合电路,用于对所述m个绝对值进行排列组合,以生成m组数据,其中每组数据均包括所述m个绝对值并且所述m个绝对值在各组数据中的位置互不相同;
191.第三流水级包括m路比较电路,用于对所述m组数据中的绝对值进行比较并生成比较结果;以及
192.第四流水级包括筛选电路,用于根据所述比较结果选择n个绝对值较大的数据元素作为有效数据元素,以及输出所述有效数据元素及对应的索引,所述索引指示所述有效数据元素在所述m个数据元素中的位置。
193.条款30、根据条款29所述的数据处理方法,其中所述第三流水级中每路比较电路包括m-1个比较器,第i路比较电路中的m-1个比较器用于将第i组数据中的一个绝对值与其他三个绝对值依次比较并生成比较结果,1≤i≤m。
194.条款31、根据条款29-30任一所述的数据处理方法,其中所述筛选电路进一步配置用于,当存在绝对值相同的数据元素时,按照指定的优先级顺序进行选择。
195.条款32、根据条款26所述的数据处理方法,其中所述反稀疏化处理包括:
196.根据所述索引部分指示的位置,按照稀疏化处理前的数据格式,将所述数据部分中的各个数据元素分别放置在稀疏化处理前的数据格式的对应位置,以及在所述数据格式的其余位置处填充预定信息以生成所述恢复数据。
197.条款33、根据条款21、24或25所述的数据处理方法,其中,
198.所述结构体中的索引部分中每1比特对应n比特数据的位置,n至少部分基于硬件配置确定;和/或
199.所述结构体中的数据部分按照第一对齐要求对齐,所述结构体中的索引部分按照第二对齐要求对齐。
200.条款34、根据条款20-33任一所述的数据处理方法,其中所述稀疏指令用于神经网络中多维数据的至少一个维度的结构化稀疏处理。
201.条款35、根据条款34所述的数据处理方法,其中所述至少一个维度选自输入通道维度和输出通道维度。
202.条款36、根据条款20-35任一所述的数据处理方法,其中
203.所述稀疏指令中包括操作模式位来指示所述稀疏指令的操作模式,或者
204.所述稀疏指令包括多条指令,每条指令对应一种或多种不同的操作模式。
205.以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1