CN116909626B - 数据处理方法、处理器及计算机设备 - Google Patents
数据处理方法、处理器及计算机设备 Download PDFInfo
- Publication number
- CN116909626B CN116909626B CN202311176208.4A CN202311176208A CN116909626B CN 116909626 B CN116909626 B CN 116909626B CN 202311176208 A CN202311176208 A CN 202311176208A CN 116909626 B CN116909626 B CN 116909626B
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- sub
- processor
- instruction
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 946
- 238000000034 method Methods 0.000 claims abstract description 193
- 230000008569 process Effects 0.000 claims abstract description 162
- 230000015654 memory Effects 0.000 claims description 368
- 230000006870 function Effects 0.000 claims description 257
- 230000004044 response Effects 0.000 claims description 55
- 238000004590 computer program Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 description 62
- 238000010586 diagram Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 13
- 230000004927 fusion Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000004148 unit process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000011176 pooling Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 4
- 108010001267 Protein Subunits Proteins 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种数据处理方法、处理器及计算机设备,属于计算机技术领域。处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,方法包括:第一控制单元响应于第一处理指令,向数据搬运单元发送数据获取指令,数据搬运单元响应于数据获取指令,获取第一数据,向第一子处理器发送第一数据;第一控制单元基于第一处理指令,向第一处理单元发送第二处理指令,第一处理单元响应于第二处理指令,运行第一函数,对第一数据进行处理,得到第一处理结果。本申请提供的方案,多个子处理器之间完全独立,多个子处理器之间互不影响,能够实现多个子处理器之间的并行处理,能够提升数据处理效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种数据处理方法、处理器及计算机设备。
背景技术
随着计算机技术的发展,网络模型的应用越来越广泛,能够应用在各种场景下。在任一场景下,通常由处理器运行网络模型中的函数,对数据进行处理,得到处理结果,进而实现网络模型的功能。但是由于现有的处理器的结构的限制,导致处理器对数据的处理效率低。
发明内容
本申请实施例提供了一种数据处理方法、处理器及计算机设备,能够提高处理效率,所述技术方案包括如下方面。
一方面,提供了一种数据处理方法,由处理器执行,所述处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;所述方法包括:
第一控制单元响应于第一处理指令,向所述数据搬运单元发送数据获取指令,所述数据获取指令指示获取第一数据,所述第一数据为所述第一处理指令指示的待处理数据,所述第一控制单元为第一子处理器包括的控制单元,所述第一子处理器为所述多个子处理器中的任一处理器;
所述数据搬运单元响应于所述数据获取指令,获取所述第一数据,向所述第一子处理器发送所述第一数据;
所述第一控制单元基于所述第一处理指令,向所述第一处理单元发送第二处理指令,所述第一处理单元为第一子处理器包括的处理单元,所述第二处理指令指示运行第一函数对所述第一数据进行处理,所述第一函数为所述第一处理单元能够运行的函数;
所述第一处理单元响应于所述第二处理指令,运行所述第一函数,对所述第一数据进行处理,得到第一处理结果。
另一方面,提供了一种处理器,由处理器执行,所述处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;
第一控制单元,用于响应于第一处理指令,向所述数据搬运单元发送数据获取指令,所述数据获取指令指示获取第一数据,所述第一数据为所述第一处理指令指示的待处理数据,所述第一控制单元为第一子处理器包括的控制单元,所述第一子处理器为所述多个子处理器中的任一处理器;
所述数据搬运单元,用于响应于所述数据获取指令,获取所述第一数据,向所述第一子处理器发送所述第一数据;
所述第一控制单元,用于基于所述第一处理指令,向所述第一处理单元发送第二处理指令,所述第一处理单元为第一子处理器包括的处理单元,所述第二处理指令指示运行第一函数对所述第一数据进行处理,所述第一函数为所述第一处理单元能够运行的函数;
所述第一处理单元,用于响应于所述第二处理指令,运行所述第一函数,对所述第一数据进行处理,得到第一处理结果。
在一种可能实现方式中,所述第一处理单元,用于响应于所述第二处理指令,运行所述第一函数,对所述第一数据中的第i个子数据进行处理,得到第i个第一处理结果,i为大于0且小于n的整数,n为所述第一数据包括的子数据的数量,n为大于1的整数;在得到第i个第一处理结果的情况下,运行所述第一函数,对所述第一数据中的第i+1个子数据进行处理,得到第i+1个第一处理结果;
所述数据搬运单元,还用于在所述第一处理单元当前得到第j个第一处理结果的情况下,响应于第一搬运指令,从所述第一子处理器中获取所述第j个第一处理结果,向第二子处理器发送所述第j个第一处理结果,j为大于0且不大于n的整数;
第二处理单元,用于在接收到第三处理指令、且所述第二子处理器接收到所述第j个第一处理结果的情况下,运行第二函数,对所述第j个第一处理结果进行处理,得到第j个第二处理结果,所述第三处理指令指示运行所述第二函数对所述第一处理结果进行处理,所述第三处理指令由第二控制单元发送,所述第二子处理器包括所述第二处理单元及所述第二控制单元。
在另一种可能实现方式中,所述第一控制单元,还用于基于所述第一处理指令,向所述数据搬运单元发送第一搬运指令;或者,
所述第二控制单元,还用于向所述数据搬运单元发送所述第一搬运指令。
在另一种可能实现方式中,所述数据搬运单元,用于向第一存储器发送所述第一数据,所述第一存储器为所述第一子处理器包括的存储器,所述第一存储器存储所述第一数据;
所述第一处理单元,用于响应于所述第二处理指令,从所述第一存储器中获取所述第一数据;运行所述第一函数,对所述第一数据进行处理,得到所述第一处理结果。
在另一种可能实现方式中,所述第一处理单元包括处理子单元和第一搬运子单元,所述第一搬运子单元用于将所述第一存储器中的数据,搬运至所述第一子处理器包括的寄存器中;
所述第一控制单元,还用于基于所述第一处理指令,向所述第一搬运子单元发送第二搬运指令,所述第二搬运指令指示将所述第一存储器中的所述第一数据存储至寄存器中;
所述第一搬运子单元,用于响应于第二搬运指令,从所述第一存储器中,获取所述第一数据包括的第k个子数据,向所述寄存器发送所述第k个子数据,所述子数据的数据量与所述寄存器的存储空间对应的数据量相等,k为大于0且不大于n的整数,n为第一数据包括的子数据的数量;
所述寄存器,用于存储所述第k个子数据;
所述处理子单元,用于响应于所述第二处理指令,从所述寄存器中获取所述第k个子数据,运行所述第一函数,对所述第k个子数据进行处理,得到第k个第一处理结果。
在另一种可能实现方式中,所述第一处理单元还包括第二搬运子单元,所述第二搬运子单元用于将所述寄存器中的数据搬运至所述第一存储器中;
所述处理子单元,还用于向所述寄存器发送所述第k个第一处理结果;
所述寄存器,用于存储所述第k个第一处理结果;
所述第一控制单元,还用于向所述第二搬运子单元发送第三搬运指令,所述第三搬运指令指示将所述寄存器中的所述第一处理结果存储至所述第一存储器中;
所述第二搬运子单元,用于响应于第三搬运指令,从所述寄存器中获取所述第k个第一处理结果,向所述第一存储器发送所述第k个第一处理结果;
所述第一存储器,还用于存储所述第k个第一处理结果。
在另一种可能实现方式中,所述第一处理单元,还用于向第二存储器发送所述第一处理结果,所述第二存储器为所述第一子处理器包括的存储器;
所述第二存储器,还用于存储所述第一处理结果。
在另一种可能实现方式中,所述第一控制单元,还用于向所述数据搬运单元发送第四搬运指令;
所述数据搬运单元,还用于响应于所述第四搬运指令,从所述第一子处理器中获取所述第一处理结果,向第三存储器发送所述第一处理结果,以使所述第三存储器存储所述第一处理结果,所述第三存储器为第三子处理器中的存储器或者除所述处理器中的存储器以外的存储器,所述第三子处理器为所述多个子处理器中除所述第一子处理器以外的任一子处理器。
在另一种可能实现方式中,所述数据搬运单元,用于响应于所述数据获取指令,从第四子处理器包括的存储器中获取所述第一数据,所述第四子处理器为所述多个子处理器中除所述第一子处理器以外的任一子处理器;或者,响应于所述数据获取指令,从外部存储器中,获取所述第一数据,所述外部存储器为除所述处理器中的存储器以外的存储器。
在另一种可能实现方式中,所述第一控制单元,用于响应于所述第一子处理器接收到所述第一数据,基于所述第一处理指令,向所述第一处理单元发送第二处理指令。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如上述方面所述的数据处理方法所执行的操作。
本申请实施例提供的方案,处理器包括用于实现不同功能的多个子处理器以及用于实现数据搬运功能的数据搬运单元,每个子处理器包括控制单元及处理单元,每个控制单元能够控制数据搬运单元及属于同一子处理器的处理单元,以控制数据搬运单元进行数据搬运进而为子处理器提供数据,控制处理单元运行某个函数对数据进行处理,这种处理器结构中多个子处理器之间完全独立,多个子处理器之间互不影响,能够实现多个子处理器之间的并行处理,进而在多个子处理器运行网络模型中的函数对数据进行处理时,能够提升数据处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种处理器的结构示意图;
图2是本申请实施例提供的一种数据处理方法的流程图;
图3是本申请实施例提供的另一种数据处理方法的流程图;
图4是本申请实施例提供的再一种数据处理方法的流程图;
图5是本申请实施例提供的再一种数据处理方法的流程图;
图6是本申请实施例提供的再一种数据处理方法的流程图;
图7是本申请实施例提供的另一种处理器的结构示意图;
图8是本申请实施例提供的再一种处理器的结构示意图;
图9是本申请实施例提供的再一种处理器的结构示意图;
图10是本申请实施例提供的再一种处理器的结构示意图;
图11是本申请实施例提供的再一种处理器的结构示意图;
图12是本申请实施例提供的再一种处理器的结构示意图;
图13是本申请实施例提供的再一种处理器的结构示意图;
图14是本申请实施例提供的一种终端的结构示意图;
图15是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请所使用的术语“第一”、“第二”、“第三”、“第四”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一子处理器称为第二子处理器,且类似地,可将第二子处理器称为第一子处理器。
本申请所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。举例来说,多个子处理器包括3个子处理器,而每个是指这3个子处理器中的每一个子处理器,任一是指这3个子处理器中的任意一个,能够是第一个子处理器,或者,是第二个子处理器,或者,是第三个子处理器。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的数据及函数都是在充分授权的情况下获取的。
本申请实施例提供的数据处理方法,由处理器执行,处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数。在一些实施例中,处理器设置于计算机设备中。可选地,计算机设备为终端或服务器。可选地,该服务器是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。可选地,该终端是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能语音交互设备、智能家电及车载终端等,但并不局限于此。
图1是本申请实施例提供的一种处理器的结构示意图。如图1所示,处理器包括多个子处理器101及数据搬运单元102,每个子处理器101包括控制单元103和处理单元104。
每个子处理器101能够与数据搬运单元102进行交互,即每个子处理器101中的控制单元103能够向数据搬运单元102发送数据搬运指令,以使数据搬运单元102基于数据搬运指令,实现数据的搬运,进而为处理单元104提供待处理的数据。且每个子处理器101中的控制单元103能够向属于同一子处理器101的处理单元104发送处理指令,以使处理单元104能够基于处理指令对数据进行处理。
在一种可能实现方式中,子处理器101还包括存储器105,数据搬运单元102能够与存储器105进行交互,能够从存储器105中获取存储的数据,或者,向存储器105发送数据,以使存储器105存储数据。
在一些可能实现方式中,数据搬运单元102还能够与处理器中的存储器以外的外部存储器进行交互,即数据搬运单元102能够从外部存储器中获取数据,或者,向外部存储器发送数据,以使外部存储器存储数据。
图2是本申请实施例提供的一种数据处理方法的流程图,该方法由处理器执行,处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;如图2所示,该方法包括以下步骤。
201、第一控制单元响应于第一处理指令,向数据搬运单元发送数据获取指令,数据获取指令指示获取第一数据,第一数据为第一处理指令指示的待处理数据,第一控制单元为第一子处理器包括的控制单元,第一子处理器为多个子处理器中的任一处理器。
在本申请实施例中,处理器包括多个子处理器及数据搬运单元,数据搬运单元用于对数据进行搬运,例如,数据搬运单元用于将其他存储器中存储的数据搬运至子处理器中,即为子处理器的处理单元提供数据,或者,能够将子处理器中处理单元输出的处理结果搬运至其他存储器中存储。
函数为网络模型中网络层对应的函数,例如,函数为卷积函数、池化函数、全连接函数、激活函数等,卷积函数即为网络模型中卷积层对应的函数,池化函数即为网络模型中池化层对应的函数,全连接函数即为网络模型中全连接层对应的函数,激活函数即为网络模型中激活层对应的函数。函数指示了对应的网络层如何对输入数据进行处理,即函数包括网络模型中网络层的参数及对应的算子(Operator),算子即为对应的网络层的计算逻辑,例如:卷积层(Convolution Layer)的计算逻辑是一个算子;全连接层(Fully-connected Layer,FC layer)的计算逻辑是一个算子。网络层的参数相当于网络层的权重,权重用于调整网络层的输入数据和输出数据之间的关系,则网络层对输入数据进行处理时,相当于利用网络层的权重,按照算子所指示的计算逻辑,对输入数据进行处理。网络模型为任意的AI(Artificial Intelligence,人工智能)网络模型,且处理器为AI处理器。不同子处理器中的处理单元用于运行不同类型的函数,也即是,不同子处理器中的处理单元能够运行不同类型的函数对数据进行处理,即不同的子处理器用于实现不同的功能。例如,任一子处理器中的处理器单元用于运行函数中的卷积函数或矩阵相乘的函数,而另一子处理器中的处理单元用于运行函数中的转置函数、融合函数、扩充函数或数据变换函数等。
任一子处理器中的控制单元能够控制该子处理器包括的处理单元以及数据搬运单元,控制单元能够向属于同一子处理器的处理单元发送指令,以控制处理单元运行某个函数对数据进行处理,且控制单元能够向数据搬运单元发送指令,以控制数据搬运单元进行数据搬运进而为子处理器提供数据,或者,控制数据搬运单元将处理单元输出的处理结果搬运至子处理器以外的存储器中。
其中,第一处理指令指示第一子处理器对数据进行处理的情况,例如,第一处理指令指示处理单元所运行的函数以及待处理数据,则第一控制单元接收到第一处理指令的情况下,能够获知处理单元对哪些数据进行处理,且能够获知运行哪个函数对数据进行处理。第一数据为第一处理指令指示的函数对应的网络层的输入数据。例如,第一处理指令指示的函数对应的网络层是网络模型中的第一个网络层,则第一数据为该网络模型的输入数据,如该网络模型为图像处理模型,则第一数据为待处理的图像;或者,该网络模型为语音处理模型,该第一数据为待处理的语音数据。再例如,第一处理指令指示的函数对应的网络层不是网络模型中的第一个网络层,则第一数据为第一处理指令对应的网络层的前一个网络层的输出数据。
在本申请实施例中,在第一控制单元接收到第一处理指令的情况下,能够获知第一处理指令指示的待处理数据,因此,基于第一处理指令,向数据搬运单元发送数据获取指令,以指示数据搬运单元为第一子处理器搬运该待处理数据,以便后续处理单元能够对该待处理数据进行处理。
202、数据搬运单元响应于数据获取指令,获取第一数据,向第一子处理器发送第一数据。
在本申请实施例中,数据获取指令已经指示了获取哪些数据,则数据搬运单元响应于数据获取指令,能够获取到数据获取指令指示的第一数据,进而向第一子处理器发送该第一数据,以便后续第一子处理器能够对第一数据进行处理。
203、第一控制单元基于第一处理指令,向第一处理单元发送第二处理指令,第一处理单元为第一子处理器包括的处理单元,第二处理指令指示运行第一函数对第一数据进行处理,第一函数为第一处理单元能够运行的函数。
在本申请实施例中,第一控制单元基于第一处理指令,向第一处理单元发送第二处理指令,以指示第一处理单元运行哪个函数对哪个数据进行处理,以便后续第一处理单元能够运行第二处理指令指示的函数,对第二处理指令指示的数据进行处理,以实现第一控制单元对属于同一子处理器的处理单元的控制。
其中,第一函数属于第一处理单元所能够运行的函数所属的类别,例如,第一处理单元能够运行卷积函数或矩阵相乘的函数,则第一函数为卷积函数或者为矩阵相乘的函数。
204、第一处理单元响应于第二处理指令,运行第一函数,对第一数据进行处理,得到第一处理结果。
在本申请实施例中,第一处理单元用于运行所能够运行的函数,对数据进行处理。在第一处理单元接收到第二处理指令的情况下,运行第二处理指令指示的第一函数,对第一数据进行处理,即可得到第一处理结果。
需要说明的是,本申请实施例仅是以处理器包括的多个子处理器中的第一子处理器为例进行说明,对于多个子处理器中的每个子处理器,在子处理器包括的控制单元接收到处理指令的情况下,均能够按照上述步骤201-步骤204的方式,对数据进行处理。
本申请实施例提供的方案,处理器包括用于实现不同功能的多个子处理器以及用于实现数据搬运功能的数据搬运单元,每个子处理器包括控制单元及处理单元,每个控制单元能够控制数据搬运单元及属于同一子处理器的处理单元,以控制数据搬运单元进行数据搬运进而为子处理器提供数据,控制处理单元运行某个函数对数据进行处理,这种处理器结构中多个子处理器之间完全独立,多个子处理器之间互不影响,能够实现多个子处理器之间的并行处理,进而在多个子处理器运行网络模型中的函数对数据进行处理时,能够提升数据处理效率。
在图2所示实施例的基础上,本申请实施例中第一子处理器还包括第一存储器和第二存储器,第一存储器能够存储第一处理单元待处理的数据,第二存储器能够存储第一处理单元输出的处理结果,具体过程详见下述实施例。
图3是本申请实施例提供的另一种数据处理方法的流程图,该方法由处理器执行,处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;如图3所示,该方法包括以下步骤。
301、第一控制单元响应于第一处理指令,向数据搬运单元发送数据获取指令,数据获取指令指示获取第一数据,第一数据为第一处理指令指示的待处理数据,第一控制单元为第一子处理器包括的控制单元,第一子处理器为多个子处理器中的任一处理器。
在一种可能实现方式中,第一处理指令是由处理器发送,也即是,向第一控制单元发送第一处理指令的过程包括:处理器向第一控制单元发送第一处理指令。
在本申请实施例中,处理器能够控制各个子处理器,处理器通过向各个子处理器发送处理指令,以控制各个子处理器运行函数对数据进行处理。
可选地,处理器包括网络模型中的函数,则向第一控制单元发送第一处理指令的过程包括:处理器基于网络模型中函数的顺序,向第一控制单元发送第一处理指令。
在本申请实施例中,处理器包括网络模型中的函数,处理器响应于目标处理指令,基于网络模型中函数的顺序,向多个子处理器发送处理指令,在此过程中,执行到某个函数时,该函数为第一子处理器中的第一处理单元所能够运行的函数,则向第一控制单元发送第一处理指令,以指示第一子处理器运行该函数对数据进行处理。
其中,目标处理指令指示运行网络模型对目标数据进行处理,目标数据为任意类型的数据,例如,网络模型为图像处理模型,则目标数据为待处理的图像;或者,网络模型为语音处理模型,则目标数据为待处理的语音数据。网络模型中函数的顺序能够反映出网络模型中网络层的连接关系,例如,每个网络层与一个函数对应,则网络模型中网络层之间的连接关系,即为网络模型中函数的顺序。
第一数据为前一个函数输出的数据,或者为输入至网络模型的待处理数据。例如,第一处理指令指示的第一函数为网络模型中的第一个函数,则第一数据为输入至网络模型的待处理数据。再例如,第一处理指令指示的第一函数为网络模型中非第一个函数,则第一数据为第一函数的前一个函数输出的数据。
在本申请实施例中,在处理器中部署网络模型的过程中,处理器加载网络模型,获取到网络模型包括的各个函数以及各个函数之间的顺序,处理器在接收到目标处理指令的情况下,确定能够运行第一个函数的第五子处理器,向第五子处理器发送处理指令,以指示第五子处理器运行第一个函数对目标数据进行处理;处理器确定能够运行第二个函数的第六子处理器,向第六子处理器发送处理指令,以指示在第五子处理器对目标数据处理完成的情况下,第六子处理器运行第二个函数,对第五子处理器输出的处理结果进行处理,以此类推,处理器响应于目标处理指令,能够控制多个子处理器,运行网络模型中的函数对目标数据进行处理,进而得到运行最后一个函数处理得到的处理结果。
可选地,处理器包括中央控制单元,在运行网络模型对数据进行处理的过程中,中央控制单元能够向各个子处理器中的控制单元分发处理指令。也即是,中央控制单元向第一控制单元发送第一处理指令。
302、数据搬运单元响应于数据获取指令,获取第一数据,向第一存储器发送第一数据,第一存储器为第一子处理器包括的存储器。
在本申请实施例中,第一子处理器包括第一存储器,第一存储器具有存储输入数据的功能,也即是,第一存储器用于存储第一处理单元待处理的数据。因此,数据搬运单元在获取到第一处理单元待处理的第一数据的情况下,向第一存储器发送第一数据,以使第一存储器存储第一数据。
在一种可能实现方式中,该步骤302包括:数据搬运单元响应于数据获取指令,从第四子处理器包括的存储器中获取第一数据,第四子处理器为多个子处理器中除第一子处理器以外的任一子处理器;或者,数据搬运单元响应于数据获取指令,从外部存储器中,获取第一数据,外部存储器为除处理器中的存储器以外的存储器。
在本申请实施例中,第一数据为其他子处理器中的存储器中存储的数据,或者,为除处理器中的存储器以外的外部存储器,数据获取指令指示了第一数据的存储位置,该存储位置为第四子处理器中存储器的某个存储位置,或者为外部存储器中的某个存储位置,则数据搬运单元响应于数据获取指令,从指示的存储位置获取第一数据,并向第一存储器发送第一数据,以使第一存储器存储。
在本申请实施例中,数据搬运单元不仅能够与各个子处理器进行交互,还能够与外部存储器进行交互,以实现数据搬运功能,保证数据搬运单元能够为各个子处理器提供待处理的数据,进而保证处理器能够正常对数据进行处理,保证处理器运行的稳定性。
303、第一存储器存储第一数据。
在一种可能实现方式中,数据获取指令还指示获取第一函数中的参数,则该步骤302和303包括:数据搬运单元响应于数据获取指令,获取第一数据及第一函数中的参数,向第一存储器发送第一数据及该参数,第一存储器存储第一数据及参数。
在本申请实施例中,第一函数为第一处理指令所指示的函数,也即是,后续第一子处理器运行第一函数对第一数据进行处理。第一存储器将第一数据及该参数进行存储,以便后续第一处理单元调用。
可选地,第一处理指令指示了第一函数中参数的存储位置,该存储位置指示外部存储器中的某个位置,则数据搬运单元获取第一函数中的参数的过程包括:数据搬运单元响应于数据获取指令,从外部存储器中获取第一函数中的参数。
在一种可能实现方式中,第一处理指令还指示了第一函数的存储位置,则第一控制单元向第一存储器发送的数据获取指令也还指示了第一函数的存储位置,该存储位置指示外部存储器中的某个位置,则该步骤302和303包括:数据搬运单元响应于数据获取指令,获取第一数据及第一函数,向第一存储器发送第一数据及该第一函数,第一存储器存储第一数据及第一函数。
在本申请实施例中,第一函数存储在外部存储器中,第一控制单元接收到的第一处理指令已经指示了第一函数的存储位置,则向数据搬运单元发送的数据获取指令指示第一函数的存储位置,以指示数据搬运单元将第一函数搬运至第一存储器中,以便后续第一处理单元能够运行第一存储器中的第一函数,对第一存储器中的第一数据进行处理。
需要说明的是,本申请实施例是以第一子处理器包括第一存储器为例进行说明,而在另一实施例中,无需执行上述步骤302-步骤303,而是采取其他方式,数据搬运单元响应于数据获取指令,获取第一数据,向第一子处理器发送第一数据。
304、第一控制单元基于第一处理指令,向第一处理单元发送第二处理指令,第一处理单元为第一子处理器包括的处理单元,第二处理指令指示运行第一函数对第一数据进行处理,第一函数为第一处理单元能够运行的函数。
在一种可能实现方式中,该步骤304包括:第一控制单元响应于第一子处理器接收到第一数据,基于第一处理指令,向第一处理单元发送第二处理指令。
在本申请实施例中,第一子处理器接收到第一数据时,则表示第一处理单元能够对第一数据进行处理,则第一控制单元响应于第一子处理器接收到第一数据,基于第一处理指令,向第一处理单元发送第二处理指令,以指示第一处理单元对第一数据进行处理,以保证第一处理单元能够及时对第一数据进行处理,进而保证数据处理的实时性,进而提升处理效率。
可选地,该步骤304包括:第一存储器在存储第一数据的情况下,向第一控制单元发送存储成功通知,该存储成功通知指示第一存储器成功存储第一数据,第一控制单元响应于接收到存储成功通知,向第一处理单元发送第二处理指令;或者,数据搬运单元在已向第一存储器发送第一数据的情况下,向第一控制单元发送获取成功通知,该获取成功通知指示第一子处理器已成功获取到第一数据,第一控制单元响应于接收到获取成功通知,向第一处理单元发送第二处理指令。
在本申请实施例中,第一控制单元接收到存储成功通知,或者接收到获取成功通知,均表示第一子处理器已接收到第一数据,此时第一处理单元能够开始对第一数据进行处理的过程,因此,向第一处理单元发送第二处理指令,以指示第一处理单元开始对第一数据进行处理。
在一种可能实现方式中,该步骤304包括:第一控制单元基于第一处理指令,生成第二处理指令,向第一处理单元发送第二处理指令。
在本申请实施例中,第一处理指令指示第一子处理器运行哪个函数、对哪个数据进行处理以及数据的存储位置,而基于第一处理指令生成的第二处理指令仅指示第一处理单元运行哪个网络模型以及对一存储器中哪个数据进行处理,以使第一处理单元能够基于第二处理指令获取到准确的数据,且能够运行准确的函数对数据进行处理。
在一种可能实现方式中,第二处理指令指示了第一数据的存储位置,该存储位置指示第一数据在第一存储器中的存储位置。
305、第一处理单元响应于第二处理指令,从第一存储器中获取第一数据;运行第一函数,对第一数据进行处理,得到第一处理结果。
在本申请实施例中,第二处理指令已经指示了第一存储器中存储的第一数据,且指示了运行第一函数对第一数据进行处理,则第一子处理器响应于第二处理指令,能够从第一存储器中读取第一数据,并运行第一函数对第一数据进行处理,得到第一处理结果。
在本申请实施例中,第一子处理器中的第一存储器具有存储输入数据的功能,也即是,第一存储器用于存储第一处理单元待处理的数据。因此,数据搬运单元在获取到第一处理单元待处理的第一数据的情况下,向第一存储器发送第一数据,以使第一存储器存储第一数据,进而使得第一处理单元能够从第一存储器中读取第一数据进而对第一数据进行处理,以避免第一数据丢失的情况,保证数据处理过程的稳定性,进而保证数据处理的准确性。
例如,第一数据为前一个函数输出的数据,第一函数为卷积函数,则第一处理单元运行卷积函数对第一数据进行卷积,得到卷积后的数据,卷积后的数据即为第一处理结果。
在一种可能实现方式中,第一存储器存储有第一函数中的参数及第一数据,则该步骤305包括:第一处理单元响应于第二处理指令,从第一存储器中获取第一数据及第一函数中的参数,运行包括该函数的第一函数,对第一数据进行处理,得到第一处理结果。
在本申请实施例中,基于包括该参数的第一函数,对第一数据进行处理,以实现该第一函数对应的网络层,对第一数据进行处理,得到第一处理结果。
在一种可能实现方式中,第一存储器存储有第一函数及第一数据,则该步骤305包括:第一处理单元响应于第二处理指令,从第一存储器中获取第一数据及第一函数,运行第一函数,对第一数据进行处理,得到第一处理结果。
在本申请实施例中,通过将第一函数搬运至第一存储器中,以使第一处理单元能够直接运行第一函数,对第一数据进行处理,以保证处理效率。
需要说明的是,本申请实施例是以第一处理单元从第一存储器中获取第一数据为例进行说明,而在另一实施例中,无需执行上述步骤305,而是采取其他方式,第一处理单元响应于第二处理指令,运行第一函数,对第一数据进行处理,得到第一处理结果。
306、第一处理单元向第二存储器发送第一处理结果,第二存储器为第一子处理器包括的存储器。
在本申请实施例中,第一子处理器还包括第二存储器,第二存储器具有存储输出数据的功能,也即是,第二存储器用于存储第一处理单元输出的处理结果。第一处理单元对第一数据处理完成后,向第二存储器发送第一处理结果,以使第二存储器存储第一处理结果,避免第一处理结果丢失的情况,以保证第一子处理器的稳定性。
307、第二存储器存储第一处理结果。
需要说明的是,本申请实施例是以第一子处理器包括第二存储器为例进行说明,而在另一实施例中,无需执行上述步骤306-步骤307,而是采取其他方式来存储第一处理结果,或者,直接输出第一处理结果。
本申请实施例提供的方案,处理器包括用于实现不同功能的多个子处理器以及用于实现数据搬运功能的数据搬运单元,每个子处理器包括控制单元及处理单元,每个控制单元能够控制数据搬运单元及属于同一子处理器的处理单元,以控制数据搬运单元进行数据搬运进而为子处理器提供数据,控制处理单元运行某个函数对数据进行处理,这种处理器结构中多个子处理器之间完全独立,多个子处理器之间互不影响,能够实现多个子处理器之间的并行处理,进而在多个子处理器运行网络模型中的函数对数据进行处理时,能够提升数据处理效率。
在本申请实施例中,第一子处理器中的第一存储器具有存储输入数据的功能,也即是,第一存储器用于存储第一处理单元待处理的数据。因此,数据搬运单元在获取到第一处理单元待处理的第一数据的情况下,向第一存储器发送第一数据,以使第一存储器存储第一数据,进而使得第一处理单元能够从第一存储器中读取第一数据进而对第一数据进行处理,以避免第一数据丢失的情况,保证数据处理过程的稳定性,进而保证数据处理的准确性。
在本申请实施例中,第一子处理器还包括第二存储器,第二存储器具有存储输出数据的功能,也即是,第二存储器用于存储第一处理单元输出的处理结果。第一处理单元对第一数据处理完成后,向第二存储器发送第一处理结果,以使第二存储器存储第一处理结果,避免第一处理结果丢失的情况,以保证第一子处理器的稳定性。
并且,数据搬运单元提供了灵活的数据通路,降低了子处理器对外部存储器的带宽需求,提升了带宽利用率。
并且,本申请实施例提供的处理器的这种结果,能够使得各个子处理器完全解耦,多个子处理器之间互不影响,实现了网络模型中不同类型的函数之间的松耦合,便于开发人员对处理器进行配置,仅需对用于处理不同类型的函数的子处理器之间的数据搬运单元进行数据通路配置,数据搬运单元支持所有存储器之间的数据搬运,以使数据搬运单元能够与各个子处理器及外部存储器进行交互,以保证不同类型的函数并发时,能够在处理器内部高效进行数据传输,实现了不同类型的函数在数据交互上的紧融合,节省了配置时间,以保证处理器的能够适用于各种网络模型,保证处理器的易用性。并且,处理器中各个子处理器均包括控制单元,以控制所属的子处理器,实现了一种指令控制上松耦合,数据流交互上支持不同类型的函数紧密融合的架构,充分发挥了用于运行不同类型的函数的处理单元的算力,也极大的减轻了软件部署的复杂度。
在图2所示实施例的基础上,本申请实施例中,处理器还包括第一存储器及寄存器,第一存储器能够存储第一处理单元待处理的数据及存储结果,寄存器能够作为第一存储器与第一处理单元之间的中转存储器,以保证与第一处理单元之间的数据传输效率,具体过程详见下述实施例。
图4是本申请实施例提供的再一种数据处理方法的流程图,该方法由处理器执行,处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;如图4所示,该方法包括以下步骤。
401、第一控制单元响应于第一处理指令,向数据搬运单元发送数据获取指令,数据获取指令指示获取第一数据,第一数据为第一处理指令指示的待处理数据,第一控制单元为第一子处理器包括的控制单元,第一子处理器为多个子处理器中的任一处理器。
402、数据搬运单元响应于数据获取指令,获取第一数据,向第一存储器发送第一数据,第一存储器为第一子处理器包括的存储器。
403、第一存储器存储第一数据。
需要说明的是,本申请实施例是以第一子处理器包括第一存储器为例进行说明,而在另一实施例中,无需执行上述步骤402-步骤403,而是采取其他方式,数据搬运单元响应于数据获取指令,获取第一数据,向第一子处理器发送第一数据。
404、第一控制单元基于第一处理指令,向第一处理单元发送第二处理指令,第一处理单元为第一子处理器包括的处理单元,第二处理指令指示运行第一函数对第一数据进行处理,第一函数为第一处理单元能够运行的函数。
需要说明的是,上述步骤401-步骤404与上述步骤301-步骤304同理,在此不再赘述。
405、第一控制单元基于第一处理指令,向第一搬运子单元发送第二搬运指令,第二搬运指令指示将第一存储器中的第一数据存储至寄存器中。
在本申请实施例中,第一处理单元包括处理子单元和第一搬运子单元,第一搬运子单元用于将第一存储器中的数据,搬运至述第一子处理器包括的寄存器中;处理子单元用于运行第一函数对第一数据进行处理。其中,第一搬运子单元(Load单元)为任意类型的单元。
在本申请实施例中,由于第一存储器中存储有第一处理单元待处理的第一数据,且考虑到第一存储器与第一处理单元之间的传输数据的速率低,因此第一子处理器中还设置寄存器,第一处理单元中设置第一搬运子单元,以便第一搬运子单元先将第一存储器中的第一数据搬运至寄存器中,而后由处理子单元从寄存器中获取第一数据进行处理,这样能够避免处理子单元直接从第一存储器中获取数据而浪费时间,以提升数据传输效率,进而提升数据处理效率。
在本申请实施例中,第一处理指令指示第一处理单元运行哪个函数对哪个数据进行处理,而在第一存储器中存储有第一数据的情况下,基于第一处理指令,向第一搬运子单元发送第二搬运指令,以使第二搬运指令能够指示第一搬运子单元搬运哪个数据,以保证数据搬运的准确性。
在一种可能实现方式中,该步骤405包括:第一控制单元基于第一处理指令,生成第二搬运指令,向第一搬运子单元发送第二搬运指令,第二搬运指令指示将第一存储器中的第一数据存储至寄存器中。
其中,第二搬运指令还指示第一数据在第一存储器中的存储位置以及寄存器中的存储位置,寄存器中的存储位置指示寄存器中存储第一数据的位置,也即是指示将第一数据搬运至寄存器哪个位置。
在一种可能实现方式中,该步骤405包括:第一控制单元响应于第一子处理器接收到第一数据,基于第一处理指令,向第一搬运子单元发送第二搬运指令。
在本申请实施例中,第一子处理器接收到第一数据时,则表示第一处理单元能够对第一数据进行处理,则第一控制单元响应于第一子处理器接收到第一数据,基于第一处理指令,向第一搬运子单元发送第二搬运指令,以指示第一搬运子单元将第一数据搬运至寄存器中,进而能够使得处理子单元能够读取寄存器中的数据进行处理,以保证第一处理单元能够及时对第一数据进行处理,进而保证数据处理的实时性,进而提升处理效率。
可选地,该步骤405包括:第一存储器在存储第一数据的情况下,向第一控制单元发送存储成功通知,该存储成功通知指示第一存储器成功存储第一数据,第一控制单元响应于接收到存储成功通知,基于第一处理指令,向第一搬运子单元发送第二搬运指令;或者,数据搬运单元在已向第一存储器发送第一数据的情况下,向第一控制单元发送获取成功通知,该获取成功通知指示第一子处理器已成功获取到第一数据,第一控制单元响应于接收到获取成功通知,基于第一处理指令,向第一搬运子单元发送第二搬运指令。
在本申请实施例中,第一控制单元接收到存储成功通知,或者接收到获取成功通知,均表示第一子处理器已接收到第一数据,此时第一处理单元能够开始对第一数据进行处理的过程,因此,向第一处理单元发送第二处理单元,以指示第一处理单元开始对第一数据进行处理。
406、第一搬运子单元响应于第二搬运指令,从第一存储器中,获取第一数据包括的第k个子数据,向寄存器发送第k个子数据,子数据的数据量与寄存器的存储空间对应的数据量相等,k为大于0且不大于n的整数,n为第一数据包括的子数据的数量。
在本申请实施例中,寄存器的存储空间有限,而第一数据的数据量大于寄存器的存储空间对应的数据量,因此,第一搬运子单元会将第一数据分多次搬运至寄存器中,以避免寄存器不够的情况,且能够保证处理效率。
407、寄存器存储第k个子数据。
408、处理子单元响应于第二处理指令,从寄存器中获取第k个子数据,运行第一函数,对第k个子数据进行处理,得到第k个第一处理结果。
在本申请实施例中,在第一搬运子单元将第k个子数据搬运至寄存器中的情况下,处理子单元能够从寄存器中获取第k个子数据进行处理,进而得到第k个子数据对应的第一处理结果,也即是第k个第一处理结果。
在本申请实施例中,第一子处理器包括处理子单元,第一控制单元向第一子处理器发送第二处理指令,也即是,向处理子单元发送第二处理指令。
需要说明的是,本申请实施例是以第一处理单元包括处理子单元和第一搬运子单元为例进行说明,而在另一实施例中,无需执行上述步骤405-步骤408,而是采取其他方式,第一处理单元响应于第二处理指令,从第一存储器中获取第一数据;运行第一函数,对第一数据进行处理,得到第一处理结果。
409、处理子单元向寄存器发送第k个第一处理结果,寄存器存储第k个第一处理结果。
在本申请实施例中,处理子单元能读取寄存器中的数据,且能够向寄存器中发送第一处理结果,以使寄存器存储第一处理结果。
410、第一控制单元向第二搬运子单元发送第三搬运指令,第三搬运指令指示将寄存器中的第一处理结果存储至第一存储器中。
在本申请实施例中,第一处理单元还包括第二搬运子单元,第二搬运子单元用于将寄存器中的数据搬运至第一存储器中。由于寄存器与处理子单元之间的数据传输效率高,但寄存器的存储空间有限,因此,在处理子单元将第一处理结果存储至寄存器中的情况下,由第二搬运子单元将第一处理结果搬运至第一存储器中存储,以释放寄存器的存储空间,进而能够保证后续能够继续从寄存器中存储数据。其中,第二搬运子单元(Store单元)为任意类型的单元。
在一种可能实现方式中,第三搬运指令还指示第一处理结果在寄存器中的存储位置以及第一存储器中的存储位置,第一存储器中的存储位置指示第一存储器中存储第一处理结果的位置,也即是指示将第一处理结果搬运至第一存储器中哪个位置。
在一种可能实现方式中,该步骤410包括:第一控制单元响应于寄存器接收到第k个第一处理结果,向第二搬运子单元发送第三搬运指令。
在本申请实施例中,寄存器接收到第k个第一处理结果时,则表示处理子单元已对第k个子数据处理完成,则第一控制单元响应于,寄存器接收到第k个第一处理结果,生成第三搬运指令,向第二搬运子单元发送第三搬运指令,以指示第二搬运子单元将第k个第一处理结果搬运至第一存储器中,以释放寄存器的存储空间,进而能够保证后续能够继续从寄存器中存储数据,且能够以稳定的第一存储器来存储第一处理结果,避免处理结果丢失的情况,保证处理器运行的稳定性。
可选地,该步骤410包括:寄存器在存储第k个第一处理结果的情况下,向第一控制单元发送存储成功通知,该存储成功通知指示寄存器成功存储第k个第一处理结果,第一控制单元响应于接收到存储成功通知,生成第三搬运指令,向第二搬运子单元发送第三搬运指令;或者,处理子单元在已向寄存器发送第k个第一处理结果的情况下,向第一控制单元发送处理完成通知,该处理完成通知指示处理子单元对第k个子数据处理完成,第一控制单元响应于接收到处理完成通知,生成第三搬运指令,向第二搬运子单元发送第三搬运指令。
在本申请实施例中,第一控制单元接收到存储成功通知,或者接收到处理完成通知,均表示寄存器接收到第k个第一处理结果,此时,能够由第二搬运子单元将第k个第一处理结果由寄存器搬运至第一存储器中,因此,向第二搬运子单元发送第三搬运指令,以指示第二搬运子单元开始对第k个第一处理结果进行搬运。
411、第二搬运子单元响应于第三搬运指令,从寄存器中获取第k个第一处理结果,向第一存储器发送第k个第一处理结果。
412、第一存储器存储第k个第一处理结果。
需要说明的是,上述步骤406-步骤412仅是以第一数据包括的第k个子数据为例进行说明,按照上述步骤406-步骤412,从第一数据包括的第1个子数据开始,能够将得到的第1个第一处理结果存储至第一存储器中,之后按照上述步骤406-步骤412,对第2个子数据进行处理,能够得到第2个第一处理结果存储至第一存储器中,以此类推,进而在第一子处理器对第一数据处理完成的情况下,第一存储器中存储有n个第一处理结果,n个第一处理结果即为第一数据对应的第一处理结果。
另外,在按照上述步骤406-步骤412对第一数据进行处理的过程中,第二搬运指令、第三搬运指令仅触发了一次,或者,每次对第一数据中的一个子数据进行处理时触发一次。
需要说明的是,本申请实施例是以第一处理单元包括处理子单元、第一搬运子单元及第二搬运子单元为例进行说明,而在另一实施例中,无需执行上述步骤405-步骤412,而是采取其他方式,第一处理单元响应于第二处理指令,运行第一函数,对第一数据进行处理,得到第一处理结果。
本申请实施例提供的方案,处理器包括用于实现不同功能的多个子处理器以及用于实现数据搬运功能的数据搬运单元,每个子处理器包括控制单元及处理单元,每个控制单元能够控制数据搬运单元及属于同一子处理器的处理单元,以控制数据搬运单元进行数据搬运进而为子处理器提供数据,控制处理单元运行某个函数对数据进行处理,这种处理器结构中多个子处理器之间完全独立,多个子处理器之间互不影响,能够实现多个子处理器之间的并行处理,进而在多个子处理器运行网络模型中的函数对数据进行处理时,能够提升数据处理效率。
在本申请实施例中,由于寄存器与处理子单元之间的数据传输效率高,寄存器的存储空间有限,而第一数据的数据量大于寄存器的存储空间对应的数据量,因此,第一搬运子单元会将第一数据分多次搬运至寄存器中,以避免寄存器不够的情况,以使处理子单元能够从寄存器中读取子数据并向寄存器中存储第一处理结果,以保证寄存器与处理子单元之间的数据传输效率,进而保证数据处理效率。
并且,处理子单元获取到第一处理结果的情况下,将第一处理结果存储至寄存器中,由第二搬运子单元将第一处理结果有寄存器搬运至第一存储器,使得第一存储器能够存储第一处理结果,由于第一存储器的稳定性好,避免了第一处理结果丢失的情况,能够保证处理结果的安全性。
需要说明的是,上述图4所示的实施例是以第一子处理器包括一个寄存器为例进行说明,而在另一实施例中,第一子处理器包括第一类寄存器和第二类寄存器,第一类寄存器用于存储第一数据的子数据,第二类寄存器用于存储第一处理结果,则在上述图4所示的实施例的基础上,第一搬运子单元能够将第k个子数据搬运至第一类存储器中,处理子单元在得到第k个第一处理结果的情况下,向第二类寄存器发送第k个第一处理结果,由第二类寄存器存储第k个第一处理结果,再由第二搬运子单元将第二类寄存器中存储的第k个第一处理结果,搬运至第一存储器中。并且,在处理子单元从第一类寄存器中获取到第k个子数据的情况下,第一搬运子单元能够将第一存储中第一数据包括的下一个子数据存储至第一类存储器中,这样能够保证第一类寄存器中始终存储有处理子单元待处理的子数据,以避免处理子单元等待获取待处理的子数据的情况,保证处理子单元在对任一子数据处理完成的情况下,能够及时获取到下一个子数据进行处理,节省了等待子数据传输的时间,进而保证数据处理效率。
例如,在第一存储器存储有第一数据的情况下,按照上述图4所示的实施例,第一搬运子单元响应于第二搬运指令,将第一数据的第1个子数据从第一存储器搬运至第一类寄存器中,处理子单元响应于第二处理指令,从第一类寄存器中获取第1个子数据,对第1个子数据进行处理,得到第1个第一处理结果,将第1个第一处理结果存储至第二类寄存器中。并且,一旦处理子单元从第一类寄存器中获取到第1个子数据,第一搬运子单元立即将第一数据的第2个子数据从第一存储器搬运至第一类寄存器中,以使第一类寄存器中存储有处理子单元即将处理的下一个子数据,以使处理子单元在将第1个第一处理结果存储至第二类寄存器中的情况下,能够从第一类寄存器中获取到第2个子数据并进行处理。并且,第二搬运子单元响应于第三搬运指令,将第二类寄存器中存储的第1个第一处理结果搬运至第一存储器中,一旦第二类寄存器中存储下一个第一处理结果,立即将新存储的第一处理结果搬运至第一存储器中。
在一种可能实现方式中,第一子处理器包括多个第一类寄存器和多个第二类寄存器,第一处理单元包括与第一类寄存器的数量相等的第一搬运子单元和与第二类寄存器的数量相等的第二搬运子单元,每个第一搬运子单元与一个第一类寄存器对应,每个第二搬运子单元与一个第二类寄存器对应。
在本申请实施例中,多个第一搬运子单元能够按照顺序依次第一数据中的多个子数据,由第一存储器搬运至对应的第一类寄存器中,处理子单元按照多个第一类寄存器的顺序,依次从每个第一类寄存器中获取子数据进行处理,并按照多个第二类寄存器的顺序,将得到的第一处理结果存储至多个第二寄存器中。并且,在任一第一类寄存器中的子数据被处理子单元获取到,则对应的第一搬运子单元从第一存储器中获取下一个子数据存储至该第一类存储器中,以使每个第一寄存器中始终存储有处理子单元未处理的子数据。
在本申请实施例中,考虑到可能存在处理子单元对子数据进行处理的效率高,而第一搬运子单元将子数据由第一存储器搬运至第一类寄存器的效率低的情况,因此,设置多个第一类寄存器和多个第二类寄存器,以保证处理子单元在对任一子数据处理完成后,能够及时从第一类寄存器中获取下一个子数据进行处理,保证数据处理效率。
例如,第一子处理器包括2个第一类寄存器和2个第二类寄存器,第一处理单元包括2个第一搬运子单元和2个第二搬运子单元。第1个第一搬运子单元响应于第二搬运指令,将第1个子数据搬运至第1个第一类寄存器中,第2个第一搬运子单元响应于第二搬运指令,将第2个子数据搬运至第2个第一类寄存器中。处理子单元从第1个第一类寄存器中获取第1个子数据进行处理,则第1个第一搬运子单元立即将第3个子数据搬运至第1个第一类寄存器中。处理子单元得到第1个第一处理结果后,将第1个第一处理结果存储至第1个第二类寄存器中,第1个第二搬运子单元响应于第三搬运指令,将第1个第一处理结果由第1个第二类寄存器搬运至第一存储器中。处理子单元在已向第1个第二类寄存器发送第1个第一处理结果的情况下,从第2个第一类寄存器中获取2个子数据进行处理,则第2个第一搬运子单元立即将第4个子数据搬运至第2个第一类寄存器中。处理子单元得到第2个第一处理结果后,将第2个第一处理结果存储至第2个第二类寄存器中,第2个第二搬运子单元响应于第三搬运指令,将第2个第一处理结果由第2个第二类寄存器搬运至第一存储器中。处理子单元在已向第2个第二类寄存器发送第2个第一处理结果的情况下,从第1个第一类寄存器中获取3个子数据进行处理,以此类推,直至对n个子数据处理完成,并将n个第一处理结果搬运至第一存储器中。
在上述图2所示的实施例的基础上,本申请实施例中,在第一处理单元得到第一处理结果的情况下,还能够由数据搬运单元将第一处理结果搬运至其他存储器中,具体过程详见下述实施例。
图5是本申请实施例提供的再一种数据处理方法的流程图,该方法由处理器执行,处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;如图5所示,该方法包括以下步骤。
501、第一控制单元响应于第一处理指令,向数据搬运单元发送数据获取指令,数据获取指令指示获取第一数据,第一数据为第一处理指令指示的待处理数据,第一控制单元为第一子处理器包括的控制单元,第一子处理器为多个子处理器中的任一处理器。
502、数据搬运单元响应于数据获取指令,获取第一数据,向第一子处理器发送第一数据。
503、第一控制单元基于第一处理指令,向第一处理单元发送第二处理指令,第一处理单元为第一子处理器包括的处理单元,第二处理指令指示运行第一函数对第一数据进行处理,第一函数为第一处理单元能够运行的函数。
504、第一处理单元响应于第二处理指令,运行第一函数,对第一数据进行处理,得到第一处理结果。
需要说明的是,该步骤501-步骤504与上述步骤201-步骤204同理,在此不再赘述。
505、第一控制单元向数据搬运单元发送第四搬运指令。
在本申请实施例中,第一处理单元对第一数据处理完成后,第一控制单元能够控制数据搬运单元,将第一处理结果存储至其他存储器中,以便其他子处理对第一处理结果再次进行处理,进而保证数据传输的实施例,无需其他子处理器等待。
其中,第四搬运指令指示数据搬运单元将第一处理结果搬运至第三存储器中。可选地,第四搬运指令指示第三存储器中的存储位置,该存储位置指示将第一处理结果存储至第三存储器的哪个位置。
在一种可能实现方式中,该步骤505包括:第一控制单元基于第一处理指令,生成第四搬运单元,向数据搬运单元发送第四搬运指令。
在本申请实施例中,第一处理指令还指示了对第一数据进行处理得到的第一处理结果的存储位置,则基于第一处理指令,生成第四搬运单元,以指示数据搬运单元将第一处理结果搬运至哪里。
可选地,该步骤505包括:第一控制单元响应于第一子处理器得到第一处理结果,基于第一处理指令,生成第四搬运单元,向数据搬运单元发送第四搬运指令。
在本申请实施例中,第一子处理器得到第一处理结果,此时,数据搬运单元能够对第一处理结果进行搬运,因此,第一控制单元才会向数据搬运单元发送第四搬运指令,以保证数据搬运单元对第一处理结果搬运的实时性。
506、数据搬运单元响应于第四搬运指令,从第一子处理器中获取第一处理结果,向第三存储器发送第一处理结果,以使第三存储器存储第一处理结果,第三存储器为第三子处理器中的存储器或者除处理器中的存储器以外的存储器,第三子处理器为多个子处理器中除第一子处理器以外的任一子处理器。
在本申请实施例中,第三存储器能够是第三子处理器中的存储器或是外部存储器,该外部存储器为除处理器中的存储器以外的存储器。在第三存储器是第三子处理器中的存储器的情况下,数据搬运单元将第一处理结果搬运至第三存储器中,以使第一处理结果作为第三子处理器的输入数据,由第三处理器中的处理单元运行某个函数对第一处理结果进行处理。而在第三存储器是外部存储器的情况下,其他子处理器不再对第一处理结果进行处理,或者,由其他子处理器从外部存储器中获取第一处理结果进行处理。
需要说明的是,本申请实施例是以第四搬运指令有第一控制单元发送为例进行说明,而在另一实施例中,第三存储器为第三子处理中的存储器,第四搬运指令是由第三子处理器中的控制单元发送。
需要说明的是,本申请实施例是以第一子处理器得到第一处理结果后,由数据搬运单元将第一处理结果搬运至第三存储器为例进行说明,而在另一实施例中,无需执行上述步骤505-步骤506,而是采取其他方式,由第一子处理器对第一处理结果进行存储,或者,采取其他方式对第一处理结果进行搬运。
本申请实施例提供的方案,第一处理单元对第一数据处理完成后,第一控制单元能够控制数据搬运单元,将第一处理结果存储至其他存储器中,以便其他子处理对第一处理结果再次进行处理,进而保证数据传输的实施例,无需其他子处理器等待,进而提升处理效率。
在图2所示实施例的基础上,本申请实施例中,第一子处理器对第一数据处理进行处理得到的第一处理结果后,数据搬运单元会将第一处理结果搬运至第二子处理器中,第一处理结果作为第二子处理器的输入数据,由第二子处理器对第一处理结果进行处理,具体过程详见下述实施例。
图6是本申请实施例提供的再一种数据处理方法的流程图,该方法由处理器执行,处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;如图6所示,该方法包括以下步骤。
601、第一控制单元响应于第一处理指令,向数据搬运单元发送数据获取指令,数据获取指令指示获取第一数据,第一数据为第一处理指令指示的待处理数据,第一控制单元为第一子处理器包括的控制单元,第一子处理器为多个子处理器中的任一处理器。
602、数据搬运单元响应于数据获取指令,获取第一数据,向第一子处理器发送第一数据。
603、第一控制单元基于第一处理指令,向第一处理单元发送第二处理指令,第一处理单元为第一子处理器包括的处理单元,第二处理指令指示运行第一函数对第一数据进行处理,第一函数为第一处理单元能够运行的函数。
需要说明的是,该步骤601-步骤603与上述步骤201-步骤203同理,在此不再赘述。
604、第一处理单元响应于第二处理指令,运行第一函数,对第一数据中的第i个子数据进行处理,得到第i个第一处理结果,i为大于0且小于n的整数,n为第一数据包括的子数据的数量,n为大于1的整数。
在本申请实施例中,由于第一数据的数量大,第一处理单元会对第一数据进行分批次处理,每次仅对第一数据中的一个子数据进行处理,以避免第一处理单元对数据量过大的第一数据进行处理而导致阻塞的情况,保证数据处理效率。
605、第一处理单元在得到第i个第一处理结果的情况下,第一处理单元运行第一函数,对第一数据中的第i+1个子数据进行处理,得到第i+1个第一处理结果。
例如,第一处理单元响应于第二处理指令,从第一数据中提取第1个子数据,运行第一函数,对第一数据中的第1个子数据进行处理,得到第1个第一处理结果;从剩余的第一数据中提取第2个子数据,运行第一函数,对第一数据中的第2个子数据进行处理,得到第2个第一处理结果,以此类推,能够得到第一数据中每个子数据对应的第一处理结果,即得到n个第一处理结果。
在一种可能实现方式中,第一数据包括的n个子数据是预先拆分的,或者,是由第一子处理器对第一数据进行处理时拆分的。
可选地,第一数据是由第一子处理器对第一数据进行处理时拆分的,则该步骤604包括:第一处理单元响应于第二处理指令,从第一数据中提取第i个子数据,运行第一函数,对第一数据中的第i个子数据进行处理,得到第i个第一处理结果。
在本申请实施例中,由于第一处理单元每次能够处理的数据量小于第一数据的数据量,因此,对第一数据进行处理时,将第一数据分成多个批次进行处理,每次从第一数据中提取部分数据作为一个子数据,以避免第一处理单元对数据量过大的第一数据进行处理而导致阻塞的情况,保证数据处理效率。
可选地,从第一数据中提取的第i个子数据的数据量为第一数据量,该第一数据量为第一处理单元单次所能够处理的数据的数据量。
例如,第一处理单元响应于第二处理指令,从第一数据中提取第一数据量的数据,作为第1个子数据,运行第一函数,对第一数据中的第1个子数据进行处理,得到第1个第一处理结果;从剩余的第一数据中提取第一数据量的数据,作为第2个子数据,运行第一函数,对第一数据中的第2个子数据进行处理,得到第2个第一处理结果,以此类推,能够得到第一数据中每个子数据对应的第一处理结果,即得到n个第一处理结果。
需要说明的是,本申请实施例是以第一处理单元分多个批次对第一数据进行处理为例进行说明的,而在另一实施例中,无需执行上述步骤604-步骤605,而是采取其他方式,第一处理单元响应于第二处理指令,运行第一函数,对第一数据进行处理,得到第一处理结果。
606、在第一处理单元当前得到第j个第一处理结果的情况下,数据搬运单元响应于第一搬运指令,从第一子处理器中获取第j个第一处理结果,向第二子处理器发送第j个第一处理结果,j为大于0且不大于n的整数。
在本申请实施例中,第一子处理器对第一数据进行处理,得到第一处理结果后,第一处理结果作为第二子处理器的输入数据,由第二子处理器对第一处理结果进行处理。在此种情况下,第一子处理器分批次对第一数据进行处理,而在得到任一子数据对应的第一处理结果,由数据搬运单元将当前得到的第一处理结果搬运至第二子处理器进行处理,使得第一子处理器对第一数据进行处理的过程中,第二子处理器能够同步对第一处理结果进行处理,使得第二子处理器无需等待第一子处理器对第一数据处理完成后再进行处理,能够节省等待时间,保证数据处理效率。
在一种可能实现方式中,向数据搬运单元发送第一搬运指令的方式包括:第一控制单元基于第一处理指令,向数据搬运单元发送第一搬运指令;或者,第二控制单元向数据搬运单元发送第一搬运指令。
在本申请实施例中,在第一子处理器输出的第一处理结果为第二子处理器的输入数据的情况下,若第一控制单元接收到的第一处理指令指示将第一处理结果搬运至第二子处理器中,则由第一控制单元基于第一处理指令,向数据搬运单元发送第一搬运指令;若第二控制单元接收到的第四处理指令指示从第一子处理器中获取第一处理结果,则由第二控制单元基于第四处理指令,向数据搬运单元发送第一搬运指令。本申请提供了多种触发第一搬运指令的方式,能够适用于多种情况,以保证后续数据搬运单元能够基于第一搬运指令来进行数据搬运,保证处理器的正常运行。
其中,第二控制单元为第二子处理器包括的控制单元。
可选地,处理器包括中央控制单元,在运行网络模型对数据进行处理的过程中,中央控制单元能够向各个子处理器中的控制单元分发处理指令,以使各个子处理器能基于处理指令对数据进行处理,以实现网络模型对数据进行处理。也即是,中央控制单元会向第一控制单元发送第一处理指令,还会向第二控制单元发送第四处理指令,以使第一子处理器对第一数据处理完成后,由数据搬运单元将第一处理结果搬运至第二子处理器中,由第二子处理器对第一处理结果进行处理。
在本申请实施例中,由中央控制单元控制各个子处理器对数据进行处理,以使各个子处理器能够进行相互配合,以实现网络模型对数据进行处理的方案,且仅是多个子处理器之间进行交互即可,无需在于处理器外部的存储器进行交互,节省数据传输所需的耗时,以提升数据处理效率。
607、第二处理单元在接收到第三处理指令、且第二子处理器接收到第j个第一处理结果的情况下,运行第二函数,对第j个第一处理结果进行处理,得到第j个第二处理结果,第三处理指令指示运行第二函数对第一处理结果进行处理,第三处理指令由第二控制单元发送,第二子处理器包括第二处理单元及第二控制单元。
其中,第二函数属于第二处理单元所能够运行的函数所属的类型。第二处理单元运行第二函数对第j个第一处理结果进行处理的过程,与上述第一处理单元运行第一函数对第j个子数据进行处理的过程同理,在此不再赘述。
在一种可能实现方式中,第二控制单元向第二处理单元发送第三处理指令的过程包括:第二控制单元基于第四处理指令,向第二处理单元发送第三处理指令。
其中,第四处理指令与上述第一控制单元接收到的第一处理指令同理,第三处理指令与上述向第一处理单元发送的第二处理指令同理,第二控制单元基于第四处理指令,向第二处理单元发送第三处理指令的过程,与上述第一控制单元基于第一处理指令,向第一处理单元发送第二处理指令的过程同理,在此不再赘述。
在一种可能实现方式中,确定第二子处理器接收到第j个第一处理结果的方式包括:第二子处理器包括存储器,数据搬运单元将第j个第一处理结果搬运至该存储器中,确定第二子处理器接收到第j个第一处理结果。其中,该存储器用于存储第二子处理器的输入数据。
在本申请实施例中,第一子处理器对第一数据进行处理,得到第一处理结果后,第一处理结果作为第二子处理器的输入数据,由第二子处理器对第一处理结果进行处理。在此种情况下,第一子处理器分批次对第一数据进行处理,而在得到任一子数据对应的第一处理结果,由数据搬运单元将当前得到的第一处理结果搬运至第二子处理器进行处理,使得第一子处理器对第一数据进行处理的过程中,第二子处理器能够同步对第一处理结果进行处理,使得第二子处理器无需等待第一子处理器对第一数据处理完成后再进行处理,能够节省等待时间,避免处理资源的闲置,保证数据处理效率。
并且,第一处理单元和第二处理单元之间有灵活的数据通路,无论是第一函数与第二函数组合,还是第二函数与第一函数组合,数据能够直接在处理器内部进行交互,减少对处理器外部存储器的访问,进而节省数据访问时间,提升数据处理效率。
例如,在AI业务场景中网络模型的网络层对应有包括两种函数,也即是网络模型的网络层对应有两种算子,一种是以二维矩阵运算为基础的矩阵类算子,如矩阵类算子为卷积算子或矩阵相乘的算子,另一种是以一维向量运算为基础的向量类算子,如向量类算子为全连接算子、转置算子、融合算子、扩充算子或数据变换算子等。在网络模型中这两种算子对应的网络层会存在相邻的情况,即矩阵类算子的输出为向量类算子的输入,或者,向量类算子的输出为矩阵类算子的输入,如网络模型中Convolution(卷积)+Relu(激活函数)的组合;或者,Convolution(卷积)+Max Pooling(最大值池化)的组合,其中,Convolution属于矩阵类算子,Relu和Max Pooling属于向量类算子。则由第一子处理器运行Convolution对第一数据进行处理,第二子处理器运行Relu对第一处理结果进行处理,或者,由第一子处理器运行Convolution对第一数据进行处理,第二子处理器运行MaxPooling对第一处理结果进行处理。
需要说明的是,上述图6所示的实施例仅是以第一处理单元对第一数据进行处理、第二处理单元对第一处理结果进行处理为例进行说明,而在另一实施例中,第一处理单元在对第一数据进行处理时,还需要其他数据,由第一处理单元对第一数据及其他数据进行处理,数据搬运单元从外部存储器或其他子处理器包括的存储器中获取其他数据,向第一子处理器发送其他数据。同理,第二处理单元在对第一处理结果进行处理时,还需要其他数据,由第二处理单元对第一处理结果及其他数据进行处理,数据搬运单元从外部存储器或其他子处理器包括的存储器中获取其他数据,向第二子处理器发送其他数据。
需要说明的是,上述图6所示的实施例仅是以第一子处理器输出的第一处理结果为第二子处理器的输入数据为例进行说明,而在另一实施例中,第二子处理器输出的第二处理结果为其他子处理器的输入数据,能够按照上述图6所示的实施例来进行数据传输并进行数据处理。
在一种可能实现方式中,在第一子处理器对第一数据的第n个子数据处理完成的情况下,第一子处理器响应于第五处理指令,会将第二子处理器输出的第二处理结果作为输入数据,运行第三函数对第二处理结果进行处理。其中,第五处理指令指示运行第三函数对第二处理结果进行处理。
需要说明的是,上述图2至图6所示的实施例能够任意结合,例如,以处理器包括两个子处理器为例,两个子处理器为矩阵类算子处理器和向量类算子处理器,则处理器的结构如图7所示。该处理器包括多条数据通路:(1)外部存储器到矩阵输入存储器的数据通路;(2)外部存储器到向量存储器的数据通路;(3)矩阵输出存储器到矩阵输入存储器的数据通路;(4)矩阵输出存储器到外部存储器的数据通路;(5)矩阵输出存储器到向量存储器的数据通路;(6)向量存储器到外部存储器的数据通路;(7)向量存储器到矩阵输入存储器。通过数据搬运单元灵活的切换数据通路,能够支持不同的子处理器运行不同类型的函数在处理器内进行交互,即矩阵类算子与向量类算子在处理器内数据交互;或者,向量类算子与矩阵类算子在处理器内数据交互。
在第一子处理器为矩阵类算子处理器的情况下,矩阵类算子处理器包括矩阵输入存储器、矩阵运算单元、矩阵输入存储器及控制单元,第一存储器为矩阵输入存储器,第一处理单元为矩阵运算单元,第一处理单元用于运行卷积函数或矩阵相乘的函数,第二存储器为矩阵输出存储器。在第一子处理器为向量类算子处理器的情况下,量类算子处理器包括向量存储器、寄存器、向量运算单元及控制单元,第一存储器为向量存储器,第一处理单元为向量运算单元。
在处理器包括矩阵类算子处理器和向量类算子处理器的情况下,如图8所示,矩阵类算子处理器对数据进行处理的过程包括:数据搬运单元从处理器的外部存储器将数据搬运到矩阵输入存储器;矩阵运算单元从矩阵输入存储器读入数据,对数据进行处理,将处理结果写回矩阵输出存储器;数据搬运单元将矩阵输出存储器中的处理结果搬运到外部存储器。向量类算子处理器对数据进行处理的过程包括:数据搬运单元从处理器的外部存储器将数据搬运到向量存储器;向量运算单元中的Load单元将向量存储器中的数据搬运到寄存器;向量运算单元从寄存器读入数据,对数据进行处理,将处理结果写回寄存器;向量运算单元中的Store单元将寄存器中的处理结果搬运到向量存储器中;数据搬运单元从向量存储器中将处理结果搬运到外部存储器中。
以第一子处理器为矩阵类算子处理器,第二子处理器为向量类算子处理器为例,如图9所示,矩阵类算子处理器和向量类算子处理器对数据进行处理的过程,包括:数据搬运单元从处理器的外部存储器将数据搬运到矩阵输入存储器;矩阵运算单元从矩阵输入存储器读入数据,对数据进行处理,将处理结果写回矩阵输出存储器;数据搬运单元将矩阵输出存储器中的处理结果搬运到向量存储器;向量运算单元中的Load单元将向量存储器中的数据搬运到寄存器;向量运算单元从寄存器读入数据,对数据进行处理,将处理结果写回寄存器;向量运算单元中的Store单元将寄存器中的处理结果搬运到向量存储器中;数据搬运单元从向量存储器中将处理结果搬运到外部存储器中。
与独立的矩阵类算子处理器和向量类算子处理器相比,矩阵类算子处理器和向量类算子处理器协同对第一数据进行处理,实现了矩阵类算子和向量类算子的融合,即矩阵类算子处理器和向量类算子处理器协同运行融合算子对数据进行处理,且处理过程中矩阵类算子处理器和向量类算子处理器内部的数据流与矩阵类算子处理器和向量类算子处理器独立对数据进行处理时内部的数据流相同,保证了独立算子能够快速适配到融合算子。这种设计保证了矩阵类算子处理器和向量类算子处理器能够不经过外部存储器快速进行数据交互。
以第一子处理器为向量类算子处理器,第二子处理器为矩阵类算子处理器为例,如图10所示,向量类算子处理器和矩阵类算子处理器对数据进行处理的过程,包括:数据搬运单元从处理器的外部存储器将数据搬运到向量存储器;向量运算单元中的Load单元将向量存储器中的数据搬运到寄存器;向量运算单元从寄存器读入数据,对数据进行处理,将处理结果写回寄存器;向量运算单元中的Store单元将寄存器中的处理结果搬运到向量存储器中;数据搬运单元从向量存储器中将处理结果搬运到矩阵输入存储器;矩阵运算单元从矩阵输入存储器读入数据,对数据进行处理,将处理结果写回矩阵输出存储器;数据搬运单元将矩阵输出存储器中的处理结果搬运到外部存储器。
与独立的向量类算子处理器和矩阵类算子处理器相比,向量类算子处理器和矩阵类算子处理器协同对第一数据进行处理,实现了向量类算子和矩阵类算子的融合,即向量类算子处理器和矩阵类算子处理器协同运行融合算子对数据进行处理,且处理过程中向量类算子处理器和矩阵类算子处理器内部的数据流与向量类算子处理器和矩阵类算子处理器独立对数据进行处理时内部的数据流相同,保证了独立算子能够快速适配到融合算子。这种设计保证了向量类算子处理器和矩阵类算子处理器能够不经过外部存储器快速进行数据交互。
本申请实施例提供的数据处理方法能够应用在多种场景下,例如,应用在图像处理场景下、语音处理场景下等,以应用在图像处理场景下为例,网络模型为图像处理模型,处理器加载图像处理模型,获取到图像处理模型中各个网络层对应的函数及网络层之间的连接关系,确定出各个函数之间的执行顺序。处理器响应于接收到图像处理指令,图像处理指令指示待处理的图像,处理器确定出能够运行第1个网络层对应的函数的第五子处理器,向第五子处理器发送处理指令,以使子第五处理器按照上述图2至图6所示的实施例,对图像进行处理,输出处理结果;处理器确定出能够运行第2个网络层对应的函数的第六子处理器,向该第六子处理器发送处理指令,以使该第六处理器对第五子处理器输出的处理进行处理,以此类推,处理器响应于图像处理指令,能够控制多个子处理器,运行图像处理模型中各个网络层对应的函数对数据进行处理,在任一子处理器运行图像处理模型中最后一个网络层对应的函数输出处理结果的情况下,即表示图像处理模型对图像处理完成,运行图像处理模型中最后一个网络层对应的函数输出处理结果即为最终的图像处理结果,最终的图像处理结果存储在对应的子处理器中的存储器中,或者,由数据搬运单元将最终的图像处理结果搬运至外部存储器中,以便后续用户通过设备能够从外部存储器中获取到最终的图像处理结果。
图11是本申请实施例提供的再一种处理器的结构示意图,如图11所示,处理器包括多个子处理器及数据搬运单元1101,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;
第一控制单元1102,用于响应于第一处理指令,向数据搬运单元1101发送数据获取指令,数据获取指令指示获取第一数据,第一数据为第一处理指令指示的待处理数据,第一控制单元1102为第一子处理器1103包括的控制单元,第一子处理器1103为多个子处理器中的任一处理器;
数据搬运单元1101,用于响应于数据获取指令,获取第一数据,向第一子处理器1103发送第一数据;
第一控制单元1102,用于基于第一处理指令,向第一处理单元1104发送第二处理指令,第一处理单元1104为第一子处理器1103包括的处理单元,第二处理指令指示运行第一函数对第一数据进行处理,第一函数为第一处理单元1104能够运行的函数;
第一处理单元1104,用于响应于第二处理指令,运行第一函数,对第一数据进行处理,得到第一处理结果。
在一种可能实现方式中,如图12或13所示,第一处理单元1104,用于响应于第二处理指令,运行第一函数,对第一数据中的第i个子数据进行处理,得到第i个第一处理结果,i为大于0且小于n的整数,n为第一数据包括的子数据的数量,n为大于1的整数;在得到第i个第一处理结果的情况下,运行第一函数,对第一数据中的第i+1个子数据进行处理,得到第i+1个第一处理结果;
数据搬运单元1101,还用于在第一处理单元1104当前得到第j个第一处理结果的情况下,响应于第一搬运指令,从第一子处理器1103中获取第j个第一处理结果,向第二子处理器1105发送第j个第一处理结果,j为大于0且不大于n的整数。
在一种可能实现方式中,如图12或13所示,第二处理单元1106,用于在接收到第三处理指令、且第二子处理器1105接收到第j个第一处理结果的情况下,运行第二函数,对第j个第一处理结果进行处理,得到第j个第二处理结果,第三处理指令指示运行第二函数对第一处理结果进行处理,第三处理指令由第二控制单元1107发送,第二子处理器1105包括第二处理单元1106及第二控制单元1107。
在另一种可能实现方式中,如图12或13所示,第一控制单元1102,还用于基于第一处理指令,向数据搬运单元1101发送第一搬运指令;或者,
第二控制单元1107,还用于向数据搬运单元1101发送第一搬运指令。
在另一种可能实现方式中,如图12或13所示,数据搬运单元1101,用于向第一存储器1108发送第一数据,第一存储器1108为第一子处理器1103包括的存储器;
第一存储器1108,用于存储第一数据;
第一处理单元1104,用于响应于第二处理指令,从第一存储器1108中获取第一数据;运行第一函数,对第一数据进行处理,得到第一处理结果。
在另一种可能实现方式中,如图12所示,第一处理单元1104包括处理子单元1109和第一搬运子单元1110,第一搬运子单元1110用于将第一存储器1108中的数据,搬运至第一子处理器1103包括的寄存器1111中;
第一控制单元1102,还用于基于第一处理指令,向第一搬运子单元1110发送第二搬运指令,第二搬运指令指示将第一存储器1108中的第一数据存储至寄存器1111中;
第一搬运子单元1110,用于响应于第二搬运指令,从第一存储器1108中,获取第一数据包括的第k个子数据,向寄存器1111发送第k个子数据,子数据的数据量与寄存器1111的存储空间对应的数据量相等,k为大于0且不大于n的整数,n为第一数据包括的子数据的数量;
寄存器1111,用于存储第k个子数据;
处理子单元1109,用于响应于第二处理指令,从寄存器1111中获取第k个子数据,运行第一函数,对第k个子数据进行处理,得到第k个第一处理结果。
在另一种可能实现方式中,如图12所示,第一处理单元1104还包括第二搬运子单元1112,第二搬运子单元1112用于将寄存器1111中的数据搬运至第一存储器1108中;
处理子单元1109,还用于向寄存器1111发送第k个第一处理结果;
寄存器1111,用于存储第k个第一处理结果;
第一控制单元1102,还用于向第二搬运子单元1112发送第三搬运指令,第三搬运指令指示将寄存器1111中的第一处理结果存储至第一存储器1108中;
第二搬运子单元1112,用于响应于第三搬运指令,从寄存器1111中获取第k个第一处理结果,向第一存储器1108发送第k个第一处理结果;
第一存储器1108,还用于存储第k个第一处理结果。
在另一种可能实现方式中,如图13所示,第一处理单元1104,还用于向第二存储器1113发送第一处理结果,第二存储器1113为第一子处理器1103包括的存储器;
第二存储器1113,还用于存储第一处理结果。
在另一种可能实现方式中,第一控制单元1102,还用于向数据搬运单元1101发送第四搬运指令;
数据搬运单元1101,还用于响应于第四搬运指令,从第一子处理器1103中获取第一处理结果,向第三存储器发送第一处理结果,以使第三存储器存储第一处理结果,第三存储器为第三子处理器中的存储器或者除处理器中的存储器以外的存储器,第三子处理器为多个子处理器中除第一子处理器1103以外的任一子处理器。
在另一种可能实现方式中,数据搬运单元1101,用于响应于数据获取指令,从第四子处理器包括的存储器中获取第一数据,第四子处理器为多个子处理器中除第一子处理器1103以外的任一子处理器;或者,响应于数据获取指令,从外部存储器中,获取第一数据,外部存储器为除处理器中的存储器以外的存储器。
在另一种可能实现方式中,第一控制单元1102,用于响应于第一子处理器1103接收到第一数据,基于第一处理指令,向第一处理单元1104发送第二处理指令。
需要说明的是:上述实施例提供的处理器与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现上述实施例的数据处理方法所执行的操作。
可选地,计算机设备提供为终端。图14示出了本申请一个示例性实施例提供的终端1400的结构框图。终端1400包括有:处理器1401和存储器1402。
处理器1401包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数。处理器1401包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1401可以采用DSP(DigitalSignal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1401可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1402中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器1401所执行以实现本申请中方法实施例提供的数据处理方法。
在一些实施例中,终端1400还可选包括有:外围设备接口1403和至少一个外围设备。处理器1401、存储器1402和外围设备接口1403之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1403相连。具体地,外围设备包括:射频电路1404、显示屏1405、摄像头组件1406、音频电路1407和电源1408中的至少一种。
外围设备接口1403可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器1401和存储器1402。在一些实施例中,处理器1401、存储器1402和外围设备接口1403被集成在同一芯片或电路板上;在一些其他实施例中,处理器1401、存储器1402和外围设备接口1403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1405是触摸显示屏时,显示屏1405还具有采集在显示屏1405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1401进行处理。此时,显示屏1405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1405可以为一个,设置在终端1400的前面板;在另一些实施例中,显示屏1405可以为至少两个,分别设置在终端1400的不同表面或呈折叠设计;在另一些实施例中,显示屏1405可以是柔性显示屏,设置在终端1400的弯曲表面上或折叠面上。甚至,显示屏1405还可以设置成非矩形的不规则图形,也即异形屏。显示屏1405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件1406用于采集图像或视频。可选地,摄像头组件1406包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1401进行处理,或者输入至射频电路1404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1401或射频电路1404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1407还可以包括耳机插孔。
电源1408用于为终端1400中的各个组件进行供电。电源1408可以是交流电、直流电、一次性电池或可充电电池。当电源1408包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图14中示出的结构并不构成对终端1400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
可选地,计算机设备提供为服务器。图15是本申请实施例提供的一种服务器的结构示意图,该服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1501和一个或一个以上的存储器1502,处理器1501包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数。其中,存储器1502中存储有至少一条计算机程序,至少一条计算机程序由处理器1501加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现上述实施例的数据处理方法所执行的操作。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述实施例的数据处理方法所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种数据处理方法,其特征在于,由处理器执行,所述处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;所述方法包括:
所述处理器在接收到目标处理指令的情况下,基于网络模型中函数的顺序,确定能够运行第一函数的第一子处理器,向第一控制单元发送第一处理指令,所述第一控制单元为所述第一子处理器包括的控制单元,所述第一子处理器为所述多个子处理器中的任一处理器,所述目标处理指令指示运行所述网络模型对目标数据进行处理;确定能够运行第二函数的第二子处理器,向第二控制单元发送第四处理指令,所述第二控制单元为所述第二子处理器包括的控制单元,所述第四处理指令指示所述第二子处理器运行所述第二函数对所述第一子处理器输出的处理结果进行处理;
所述第一控制单元响应于所述第一处理指令,向所述数据搬运单元发送数据获取指令,所述数据获取指令指示获取第一数据,所述第一数据为所述第一处理指令指示的待处理数据;
所述数据搬运单元响应于所述数据获取指令,获取所述第一数据,向第一存储器发送所述第一数据,所述第一存储器为所述第一子处理器包括的存储器;所述第一存储器存储所述第一数据;
所述第一控制单元基于所述第一处理指令,向第一处理单元发送第二处理指令,所述第一处理单元为所述第一子处理器包括的处理单元,所述第二处理指令指示运行所述第一函数对所述第一数据进行处理;
所述第一控制单元基于所述第一处理指令,向第一搬运子单元发送第二搬运指令,所述第二搬运指令指示将所述第一存储器中的所述第一数据存储至第一类寄存器中,所述第一处理单元包括所述第一搬运子单元,所述第一子处理器包括所述第一类寄存器;
所述第一搬运子单元响应于所述第二搬运指令,从所述第一存储器中,获取所述第一数据包括的第i个子数据,向所述第一类寄存器发送所述第i个子数据,所述子数据的数据量与所述第一类寄存器的存储空间对应的数据量相等,i为大于0且小于n的整数,n为所述第一数据包括的子数据的数量,n为大于1的整数;所述第一类寄存器存储所述第i个子数据;
所述第一处理单元中的处理子单元响应于所述第二处理指令,从所述第一类寄存器中获取所述第i个子数据;运行所述第一函数,对所述第i个子数据进行处理,得到第i个第一处理结果,向第二类寄存器发送所述第i个第一处理结果,所述第二类寄存器存储所述第i个第一处理结果,所述第一子处理器包括所述第二类寄存器;
所述第一控制单元向第二搬运子单元发送第三搬运指令,所述第三搬运指令指示将所述第二类寄存器中的所述第一处理结果存储至所述第一存储器中,所述第一处理单元包括所述第二搬运子单元;
所述第二搬运子单元响应于所述第三搬运指令,从所述第二类寄存器中获取所述第i个第一处理结果,向所述第一存储器发送所述第i个第一处理结果;所述第一存储器存储所述第i个第一处理结果;
响应于所述处理子单元从所述第一类寄存器中获取到第i个子数据,所述第一搬运子单元从所述第一存储器中,获取所述第一数据包括的第i+1个子数据,向所述第一类寄存器发送所述第i+1个子数据;所述第一类寄存器存储所述第i+1个子数据;
在得到所述第i个第一处理结果的情况下,所述处理子单元从所述第一类寄存器中获取所述第i+1个子数据;运行所述第一函数,对所述第i+1个子数据进行处理,得到第i+1个第一处理结果,向所述第二类寄存器发送所述第i+1个第一处理结果,所述第二类寄存器存储所述第i+1个第一处理结果;
所述第二搬运子单元从所述第二类寄存器中获取所述第i+1个第一处理结果,向所述第一存储器发送所述第i+1个第一处理结果;所述第一存储器存储所述第i+1个第一处理结果;
在所述第一处理单元当前得到第j个第一处理结果的情况下,所述数据搬运单元响应于第一搬运指令,从所述第一子处理器中获取所述第j个第一处理结果,向所述第二子处理器发送所述第j个第一处理结果,j为大于0且不大于n的整数;
第二处理单元在接收到第三处理指令、且所述第二子处理器接收到所述第j个第一处理结果的情况下,运行所述第二函数,对所述第j个第一处理结果进行处理,得到第j个第二处理结果,所述第三处理指令指示运行所述第二函数对所述第一处理结果进行处理,所述第三处理指令由所述第二控制单元基于所述第四处理指令发送,所述第二子处理器包括所述第二处理单元。
2.根据权利要求1所述的方法,其特征在于,所述数据搬运单元响应于第一搬运指令,从所述第一子处理器中获取所述第j个第一处理结果,向所述第二子处理器发送所述第j个第一处理结果之前,所述方法还包括:
所述第一控制单元基于所述第一处理指令,向所述数据搬运单元发送所述第一搬运指令;或者,
所述第二控制单元向所述数据搬运单元发送所述第一搬运指令。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一处理单元向第二存储器发送所述第一处理结果,所述第二存储器为所述第一子处理器包括的存储器;
所述第二存储器存储所述第一处理结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一控制单元向所述数据搬运单元发送第四搬运指令;
所述数据搬运单元响应于所述第四搬运指令,从所述第一子处理器中获取所述第一处理结果,向第三存储器发送所述第一处理结果,以使所述第三存储器存储所述第一处理结果,所述第三存储器为第三子处理器中的存储器或者除所述处理器中的存储器以外的存储器,所述第三子处理器为所述多个子处理器中除所述第一子处理器以外的任一子处理器。
5.根据权利要求1所述的方法,其特征在于,所述数据搬运单元响应于所述数据获取指令,获取所述第一数据,包括:
所述数据搬运单元响应于所述数据获取指令,从第四子处理器包括的存储器中获取所述第一数据,所述第四子处理器为所述多个子处理器中除所述第一子处理器以外的任一子处理器;或者,
所述数据搬运单元响应于所述数据获取指令,从外部存储器中,获取所述第一数据,所述外部存储器为除所述处理器中的存储器以外的存储器。
6.根据权利要求1所述的方法,其特征在于,所述第一控制单元基于所述第一处理指令,向第一处理单元发送第二处理指令,包括:
所述第一控制单元响应于所述第一子处理器接收到所述第一数据,基于所述第一处理指令,向所述第一处理单元发送第二处理指令。
7.一种处理器,其特征在于,所述处理器包括多个子处理器及数据搬运单元,每个子处理器包括控制单元及处理单元,不同的子处理器中的处理单元用于运行不同类型的函数;
所述处理器,用于在接收到目标处理指令的情况下,基于网络模型中函数的顺序,确定能够运行第一函数的第一子处理器,向第一控制单元发送第一处理指令,所述第一控制单元为所述第一子处理器包括的控制单元,所述第一子处理器为所述多个子处理器中的任一处理器,所述目标处理指令指示运行所述网络模型对目标数据进行处理;确定能够运行第二函数的第二子处理器,向第二控制单元发送第四处理指令,所述第二控制单元为所述第二子处理器包括的控制单元,所述第四处理指令指示所述第二子处理器运行所述第二函数对所述第一子处理器输出的处理结果进行处理;
所述第一控制单元,用于响应于所述第一处理指令,向所述数据搬运单元发送数据获取指令,所述数据获取指令指示获取第一数据,所述第一数据为所述第一处理指令指示的待处理数据;
所述数据搬运单元,用于响应于所述数据获取指令,获取所述第一数据,向第一存储器发送所述第一数据,所述第一存储器为所述第一子处理器包括的存储器;
所述第一存储器,用于存储所述第一数据;
所述第一控制单元,用于基于所述第一处理指令,向第一处理单元发送第二处理指令,所述第一处理单元为所述第一子处理器包括的处理单元,所述第二处理指令指示运行所述第一函数对所述第一数据进行处理;
所述第一控制单元,用于基于所述第一处理指令,向第一搬运子单元发送第二搬运指令,所述第二搬运指令指示将所述第一存储器中的所述第一数据存储至第一类寄存器中,所述第一处理单元包括所述第一搬运子单元,所述第一子处理器包括所述第一类寄存器;
所述第一搬运子单元,用于响应于所述第二搬运指令,从所述第一存储器中,获取所述第一数据包括的第i个子数据,向所述第一类寄存器发送所述第i个子数据,所述子数据的数据量与所述第一类寄存器的存储空间对应的数据量相等,i为大于0且小于n的整数,n为所述第一数据包括的子数据的数量,n为大于1的整数;所述第一类寄存器存储所述第i个子数据;
所述第一处理单元中的处理子单元,用于响应于所述第二处理指令,从所述第一类寄存器中获取所述第i个子数据;运行所述第一函数,对所述第i个子数据进行处理,得到第i个第一处理结果,向第二类寄存器发送所述第i个第一处理结果;
所述第二类寄存器,用于存储所述第i个第一处理结果,所述第一子处理器包括所述第二类寄存器;
所述第一控制单元,用于向第二搬运子单元发送第三搬运指令,所述第三搬运指令指示将所述第二类寄存器中的所述第一处理结果存储至所述第一存储器中,所述第一处理单元包括所述第二搬运子单元;
所述第二搬运子单元,用于响应于所述第三搬运指令,从所述第二类寄存器中获取所述第i个第一处理结果,向所述第一存储器发送所述第i个第一处理结果;
所述第一存储器,用于存储所述第i个第一处理结果;
所述第一搬运子单元,用于响应于所述处理子单元从所述第一类寄存器中获取到第i个子数据,从所述第一存储器中,获取所述第一数据包括的第i+1个子数据,向所述第一类寄存器发送所述第i+1个子数据;
所述第一类寄存器,用于存储所述第i+1个子数据;
所述处理子单元,用于在得到所述第i个第一处理结果的情况下,从所述第一类寄存器中获取所述第i+1个子数据;运行所述第一函数,对所述第i+1个子数据进行处理,得到第i+1个第一处理结果,向所述第二类寄存器发送所述第i+1个第一处理结果;
所述第二类寄存器,用于存储所述第i+1个第一处理结果;
所述第二搬运子单元,用于从所述第二类寄存器中获取所述第i+1个第一处理结果,向所述第一存储器发送所述第i+1个第一处理结果;
所述第一存储器,用于存储所述第i+1个第一处理结果;
所述数据搬运单元,用于在所述第一处理单元当前得到第j个第一处理结果的情况下,响应于第一搬运指令,从所述第一子处理器中获取所述第j个第一处理结果,向所述第二子处理器发送所述第j个第一处理结果,j为大于0且不大于n的整数;
第二处理单元,用于在接收到第三处理指令、且所述第二子处理器接收到所述第j个第一处理结果的情况下,运行所述第二函数,对所述第j个第一处理结果进行处理,得到第j个第二处理结果,所述第三处理指令指示运行所述第二函数对所述第一处理结果进行处理,所述第三处理指令由所述第二控制单元基于所述第四处理指令发送,所述第二子处理器包括所述第二处理单元。
8.根据权利要求7所述的处理器,其特征在于,所述第一控制单元,还用于基于所述第一处理指令,向所述数据搬运单元发送所述第一搬运指令;或者,
所述第二控制单元,用于向所述数据搬运单元发送所述第一搬运指令。
9.根据权利要求7所述的处理器,其特征在于,所述第一处理单元,还用于向第二存储器发送所述第一处理结果,所述第二存储器为所述第一子处理器包括的存储器;
所述第二存储器,还用于存储所述第一处理结果。
10.根据权利要求7所述的处理器,其特征在于,所述第一控制单元,还用于向所述数据搬运单元发送第四搬运指令;
所述数据搬运单元,还用于响应于所述第四搬运指令,从所述第一子处理器中获取所述第一处理结果,向第三存储器发送所述第一处理结果,以使所述第三存储器存储所述第一处理结果,所述第三存储器为第三子处理器中的存储器或者除所述处理器中的存储器以外的存储器,所述第三子处理器为所述多个子处理器中除所述第一子处理器以外的任一子处理器。
11.根据权利要求7所述的处理器,其特征在于,所述数据搬运单元,用于响应于所述数据获取指令,从第四子处理器包括的存储器中获取所述第一数据,所述第四子处理器为所述多个子处理器中除所述第一子处理器以外的任一子处理器;或者,响应于所述数据获取指令,从外部存储器中,获取所述第一数据,所述外部存储器为除所述处理器中的存储器以外的存储器。
12.根据权利要求7所述的处理器,其特征在于,所述第一控制单元,用于响应于所述第一子处理器接收到所述第一数据,基于所述第一处理指令,向所述第一处理单元发送第二处理指令。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如权利要求1至6任一权利要求所述的数据处理方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311176208.4A CN116909626B (zh) | 2023-09-13 | 2023-09-13 | 数据处理方法、处理器及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311176208.4A CN116909626B (zh) | 2023-09-13 | 2023-09-13 | 数据处理方法、处理器及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116909626A CN116909626A (zh) | 2023-10-20 |
CN116909626B true CN116909626B (zh) | 2023-12-29 |
Family
ID=88360708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311176208.4A Active CN116909626B (zh) | 2023-09-13 | 2023-09-13 | 数据处理方法、处理器及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116909626B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999014685A1 (fr) * | 1997-09-16 | 1999-03-25 | Hitachi, Ltd. | Machine de traitement des donnees et systeme de traitement des donnees |
CN109992542A (zh) * | 2017-12-29 | 2019-07-09 | 深圳云天励飞技术有限公司 | 一种数据搬运方法、相关产品及计算机存储介质 |
WO2019152069A1 (en) * | 2018-02-01 | 2019-08-08 | Tesla, Inc. | Instruction architecture for a vector computational unit |
CN115801220A (zh) * | 2022-10-11 | 2023-03-14 | 阿里云计算有限公司 | 加速设备、计算系统及加速方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0809189D0 (en) * | 2008-05-20 | 2008-06-25 | Aspex Semiconductor Ltd | Improvements relating to single instruction multiple data (SIMD) architectures |
-
2023
- 2023-09-13 CN CN202311176208.4A patent/CN116909626B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999014685A1 (fr) * | 1997-09-16 | 1999-03-25 | Hitachi, Ltd. | Machine de traitement des donnees et systeme de traitement des donnees |
CN109992542A (zh) * | 2017-12-29 | 2019-07-09 | 深圳云天励飞技术有限公司 | 一种数据搬运方法、相关产品及计算机存储介质 |
WO2019152069A1 (en) * | 2018-02-01 | 2019-08-08 | Tesla, Inc. | Instruction architecture for a vector computational unit |
CN115801220A (zh) * | 2022-10-11 | 2023-03-14 | 阿里云计算有限公司 | 加速设备、计算系统及加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116909626A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101352B (zh) | 图像处理算法架构、算法调用方法、装置、存储介质及移动终端 | |
CN105917311B (zh) | 用于便携式设备中的同步任务分发的系统和方法 | |
CN110147347B (zh) | 用于矩阵处理的芯片、矩阵处理方法、装置及存储介质 | |
CN110413420B (zh) | 数据传输方法、装置、终端及存储介质 | |
CN116842307B (zh) | 数据处理方法、装置、设备、芯片及存储介质 | |
JP2022528628A (ja) | Se及び電子デバイスの自動ルーティング方法 | |
CN111427949A (zh) | 一种创建大数据服务的方法及装置 | |
CN111045732B (zh) | 数据处理方法、芯片、设备及存储介质 | |
CN114968594A (zh) | 任务处理方法、装置、电子设备和存储介质 | |
CN110490295B (zh) | 一种数据处理方法及处理装置 | |
CN116909626B (zh) | 数据处理方法、处理器及计算机设备 | |
CN112925788A (zh) | 一种数据集管理方法及系统、装置、电子设备和存储介质 | |
CN111914985B (zh) | 深度学习网络模型的配置方法、装置及存储介质 | |
US11019131B2 (en) | Method and system of file transfer using device-to-device communication technique in messenger | |
CN113489600B (zh) | 一种网络参数的配置方法、装置以及存储介质 | |
CN109413190A (zh) | 文件获取方法、装置、电子设备及存储介质 | |
CN111726848B (zh) | 设备绑定方法、目标启动装置、固定终端及存储介质 | |
CN116962250A (zh) | 网络质量检测方法、装置、计算机设备及存储介质 | |
CN117667208B (zh) | 数据运算方法、存储器及计算机设备 | |
CN116881194B (zh) | 处理器、数据处理方法及计算机设备 | |
CN110969217A (zh) | 基于卷积神经网络进行图像处理的方法和装置 | |
CN111245629A (zh) | 会议控制方法、装置、设备及存储介质 | |
CN115086232B (zh) | 任务处理及数据流生成方法和装置 | |
CN116405538A (zh) | 网络代理方法、装置、服务器及存储介质 | |
CN116820524B (zh) | 模型更新方法、装置、计算机设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |