CN112114942A - 一种基于众核处理器的流式数据处理方法及计算设备 - Google Patents
一种基于众核处理器的流式数据处理方法及计算设备 Download PDFInfo
- Publication number
- CN112114942A CN112114942A CN201910540896.5A CN201910540896A CN112114942A CN 112114942 A CN112114942 A CN 112114942A CN 201910540896 A CN201910540896 A CN 201910540896A CN 112114942 A CN112114942 A CN 112114942A
- Authority
- CN
- China
- Prior art keywords
- data
- core
- many
- cores
- groups
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000004364 calculation method Methods 0.000 claims description 35
- 238000013528 artificial neural network Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005265 energy consumption Methods 0.000 abstract description 4
- 230000005540 biological transmission Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本发明提供了一种基于众核处理器的流式数据处理方法计算设备,所述众核处理器包括多个运算核,该方法包括:将所述多个运算核分为N个运算核组,所述N个运算核组执行不同的数据处理方法;接收数据,所述数据包括图像、视频、音频或由传感器传来的数据;将所述数据输入所述N个运算核组中对应的运算核组执行数据处理任务;输出所述处理后的数据。基于本发明提供的方案可以在提升众核处理器对数据处理速度的同时降低众核处理器的能耗以及数据延迟,进而提升众核处理器的整体运算效率。
Description
技术领域
本发明涉及处理器技术领域,特别是涉及一种基于众核处理器的流式数据处理方法及计算设备。
背景技术
当今时代,人工智能技术日新月异、澎湃发展,从各方面影响着人们的生产和生活,推动着世界的发展和进步。近几年,研究者们发现神经网络算法对处理非结构化数据非常有效,比如人脸识别、语音识别、图像分类等任务。随着这些非结构化数据的指数级增长,对处理器算力的要求越来越高。传统的中央处理器CPU和数字信号处理器DSP的算力已经不能满足需求,因此,如何提升处理器的算力和效率是亟待解决的问题。
发明内容
鉴于上述问题,本发明提供了一种克服上述问题或至少部分地解决了上述问题的一种基于众核处理器的流式数据处理方法及计算设备。
根据本发明的一个方面,提供了一种基于众核处理器的流式数据处理方法,所述众核处理器包括多个运算核,所述方法包括:
将所述多个运算核分为N个运算核组,所述N个运算核组执行不同的数据处理方法;
接收数据,所述数据包括图像、视频、音频或由传感器传来的数据;
将所述数据输入所述N个运算核组中对应的运算核组执行数据处理任务;
输出所述处理后的数据。
可选地,将所述数据输入所述N个运算核组中对应的运算核组执行数据处理任务,包括:
将所述数据输入一个运算核组;或将所述数据输入所述N个运算核组中的多个运算核组,以执行不同的数据处理任务。可选地,所述将所述数据输入所述N个运算核组中对应的运算核组执行数据处理任务,包括:
将所述数据输入第一运算核组执行第一数据处理任务。
可选地,所述将所述数据输入第一运算核组执行第一数据处理任务,包括:
将所述数据分为多个数据块,并将所述多个数据块分为M组,所述M组中的每个组包括相同数量K的数据块,其中,M大于等于2,K大于等于1;
为所述K个数据块分配对应的K个运算核;
将所述M组中第一组内的K个数据块并行输入至所述K个数据块的每个数据块对应的运算核中,由所述运算核对对应的数据块进行计算处理。
通过将数据根据各运算核的处理能力进行子任务的划分,可以提升众核处理器对图像数据的处理过程,并提升处理精度。
可选地,所述将所述M组中第一组内的K个数据块并行输入至所述K个数据块的每个数据块对应的运算核中,由所述运算核对对应的数据块进行计算处理之后,还包括:
将所述M组中第二组内的K个数据块并行输入至所述K个运算核中,由所述K个运算核对所述第二组内的K个数据块进行计算处理。众核处理器无论是采用运算传输并行模式,可以在众核之间可形成流水式的顺序工作模式,以保证数据运算处理有序进行的同时提升处理效率。
可选地,所述并行输入时,对于任意一个运算核,在进行核内运算的同时,将至少部分运算完成的数据传输至所述第一运算核组中的下一运算核,以执行所述第一数据处理任务中的下一层的计算。
可选地,所述众核处理器中的各所述运算核均包括:
权重存储单元,用于存储执行神经网络计算时所需的数据、数据权重和/或操作指令;
计算单元,用于访问所述权重存储单元中存储的数据,并对所述数据进行运算处理;
控制单元,用生成操作指令,并控制所述计算单元基于所述操作指令执行数据运算;
路由,用于发送和接收数据,进行所述运算核内或与其他运算核的数据通信。通过在众核处理器的各运算核中设置私有的权重存储单元,可以方便各运算核快速读取其执行运算时所需要的数据。
可选地,所述多个运算核之间的通信方式包括:2D网络模式、3D环形模式、一对一直连模式。
根据本发明的另一个方面,还提供了一种计算设备,包括众核处理器,用于运行计算机程序,其中,
所述众核处理器在进行数据处理时,采用上述任一项所述的基于众核处理器的流式数据处理方法。
可选地,所述计算设备还包括:
存储设备,用于存储计算机程序,所述计算机程序在所述计算设备中运行时由处理器加载并执行。
本发明提供了一种更加高效的基于众核处理器的流式数据处理方法,首先将众核处理器分为N个运算核组,进而对众核处理器接收到的数据输入N个运算核组中对应的运算核组并行执行数据处理任务并输出数据处理结果。在本发明中,对每个运算核而言,数据均可以排成管道模式按时间段输入,以保证数据处理的准确性。基于本发明提供的方案可以在提升众核处理器对数据处理速度的同时降低众核处理器的能耗以及数据延迟,进而提升众核处理器的整体运算效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例的运算核结构示意图;
图2示出了根据本发明实施例的众核处理器架构示意图;
图3示出了根据本发明实施例的2D模式众核处理器架构示意图;
图4示出了根据本发明实施例的基于众核处理器的流式数据处理方法流程示意图;
图5示出了根据本发明实施例的众核处理器划分多个运算核组示意图;
图6示出了根据本发明实施例的将输入数据分块并执行处理的示意图;
图7示出了根据本发明实施例的数据划分过程示意图;
图8示出了根据本发明实施例的神经网络映射示意图;
图9示出了根据本发明实施例的众核处理器输入输出示意图;
图10示出了根据本发明实施例的众核处理器的运算传输并行模式示意图;
图11示出了根据本发明实施例的众核处理器的运算传输串行模式示意图;
图12示出了根据本发明实施例的众核处理器中并行工作模式下的时序工作示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
采用存储处理一体众核架构可以有效提升芯片算力和效率。存储处理一体,即将存储本地化,与处理器融为一体,这样一方面可以极大地节省数据的搬运能耗;另一方面,在深度学习中,当通过神经网络计算静态图时,可以使得所计算的图片在训练或推理应用中保持不变。
本发明实施例提供了一种众核处理器,其包括多个运算核,图1示出了运算核的结构示意图,参见图1可知,各运算核均可以包括:权重存储单元、计算单元、路由、控制单元等模块。其中,权重存储单元,用于存储执行神经网络计算或其他数据处理算法时所需的数据、数据权重和/或操作指令,此外还可以包括暂存数据或者是其他数据。计算单元,用于访问所述权重存储单元中存储的数据,并对所述数据进行运算处理,计算单元可以包乘法器、加法器和其他特殊功能的计算处理模块,负责进行矩阵向量等计算或逻辑操作。控制单元,用生成操作指令,并控制计算单元基于所述操作指令执行数据运算。控制单元可具体控制数据的流向,选择相应的运算操作等。路由,用于发送和接收数据,进行该运算核内或与其他运算核的数据通信。在运算核的工作过程中,所述计算单元所需数据从所述路由输入至计算单元,由计算单元进行运算处理后再通过路由输出。除上述介绍的之外,各运算核还可以包缓存单元或是其他单元,本发明不做限定。
另外,众核处理器所包括的多个运算核的权重存储单元单独独立出来合并成一个权重存储核,如图2所示,权重存储核可以同时向运算核1、运算核2、运算核3提供权重,在该模式下,可以实现权重的部分共享,其中,运算核1、运算核2、运算核3可以为同构运算核。实际应用中,在众核处理器中选取多个运算核的权重存储单元单独独立出来合并成权重运算核时,可以根据不同的需求或是各运算核的特征进行选取,本发明不做限定。
对于众核处理器来讲,众核处理器内的各运算核之间的通信方式可以包括2D网格模式,3D环形模式,一对一直连等模式。其中,2D网络模式参见图3所示,每个运算核通过路由,同上、下、左、右四个方向的运算核相连。在该模式下,数据可以通过路由,到达任意指定的运算核。
对于上述实施例所介绍的包括多个运算核的众核处理器,本发明实施例提供了一种基于众核处理器的流式数据处理方法,参见图4可知,本发明实施例提供的基于众核处理器的流式数据处理方法可以包括:
步骤S401,将多个运算核分为N个运算核组,所述N个运算核组执行不同的数据处理方法。其中,该数据处理方法可以为神经网络算法或是其他数据处理算法。
本实施例中,众核处理器中的多个运算核可以划分为N个运算核组,每个运算核组可执行不同的数据处理方法,其中N为大于零的整数。如图5所示,众核处理器划分有三个运算核组,三个不同的神经网络算法(神经网络算法A,神经网络算法B,神经网络算法C)可分别映射到不同的运算核组中。由于运算核各自独立运行,三种神经网络可同时接收数据并行进行对应的数据处理。实际应用中,对众核处理器中的多个运算核进行划分时,可根据不同算法所对应的算力要求或是其他要求进行划分,本发明不做限定。
步骤S402,接收数据,所述数据包括图像、视频、音频或由传感器传来的数据。实际应用中,需要众核处理器执行计算的数据可以是需要众核处理器需要进行计算的图像数据、音频数据、视频数据或是传感器传输的其他待处理数据。
步骤S403,将所述数据输入所述N个运算核组中对应的运算核组执行数据处理任务。进一步地,可以将所述数据输入一个运算核组;或将所述数据输入所述N个运算核组中的多个运算核组,以执行不同的数据处理任务。
步骤S404,输出所述处理后的数据。
众核处理器在接收到数据之后,就可以将其输入运算核组进行相应的数据处理。
例如输入的数据需要执行神经网络A算法,则将数据输入至神经网络A算法对应的运算核组中进行数据处理,并将处理结果输出。
可选地,对于任意一组数据在将其输入至运算核执行计算处理之前,可以先对其进行预处理。即上述步骤S403将所述数据输入第一运算核组执行第一数据处理任务,具体方法如下:
S403-1,将所述数据分为多个数据块,并将所述多个数据块分为M组,所述M组中的每个组包括相同数量K的数据块,其中,M大于等于2,K大于等于1。在划分数据块时,可以根据各运算核在指定时间内的运算量将所述数据划分成多个包括相同数量K的数据块。
图6为将输入数据分块并执行处理的示意图。以将数据分为9块三组为例进行描述,本发明实施例对数据分为多少块,多少组不做限定,图6仅为示意图。如图6所示,将数据分为9个数据块,将9个数据块分为三组,每组包括3个数据块。
S403-2,为所述K个数据块分配对应的K个运算核。
如图6所示,为第1-第3个数据块分配核1-核3。
S403-3,将所述M组中第一组内的K个数据块并行输入至所述K个数据块的每个数据块对应的运算核中,由所述运算核对对应的数据块进行计算处理。
如图6所示,将第1-第3个数据块并行输入至核1-核3,并由核1-核3对第1-第3个数据块进行计算处理。
图7示出了根据本发明实施例的数据划分过程示意图。参见图7可知,可以将数据按每个核在规定时间内的处理能力,切分成等份或不等份的任务量。图7中,T1时刻对应Input1(输入1),T2时刻对应Input2(输入2),T3时刻对应Input1(输入3)以此类推。其中,每组数据中的数据块可对应是一个该数据整个计算任务中的计算子任务或由多个下任务的集合而成。
因此,图6中的数据块大小可以不相等。
一般来说,神经网络由多层计算构成,分成输入层,输出层和中间的隐藏层,如图8所示。在图8中,圆圈代表神经元,输出层和隐藏层前的箭头代表权重,权重由矩阵函数组成,其维数由前后两层的神经元个数决定。在芯片处理器运行前,将权重分布式存储在运算核(或权重存储核)中,即神经网络算法中某一层的权重被分配在一个或几个运算核(或权重存储核)中。当经过预处理的输入数据被输入众核处理器,将首先被送到第一层对应运算核中进行处理;当处理完毕后,数据被送到事先规划的第二层所对应的运算核中进行处理,依次处理第三层、第四层、……、第n层所对应的运算核中进行处理,直至完成神经网络的输出层。在图9中,示例了一个简单的神经网络对应的运算核映射分布,将8层网络分布部署在8个不同的运算核上,每个运算核完成一层神经网络运算;因此经过8个运算核后,神经网络由core7向外输出。
因此,将数据划分完成多个数据块之后,就可以将划分后的各组数据块按时间段的方式依次输入众核处理器中的事先配置好的运算核组进行首层神经网络运行。而在上述步骤S403-3将M组中第一组内的K个数据块并行输入至所述K个数据块的每个数据块对应的运算核中,由所述运算核对对应的数据块进行计算处理之后,还可以包括:
步骤S403-4,将所述M组中第二组内的K个数据块并行输入至所述K个运算核中,由所述K个运算核对所述第二组内的K个数据块进行计算处理。进一步地,上述步骤S403-3、S403-4进行并行输入时,对于任意一个运算核,在进行核内运算的同时,将至少部分运算完成的数据传输至所述第一运算核组中的下一运算核,以执行所述第一数据处理任务中的下一层的计算。
如图6所示,在执行第1-第3数据块的计算过程中,如果已经完成的部分运算结果足够第4运算核开始执行计算,那么第4运算核开始执行计算,可以理解,在同一时间段内,第4运算核与第1-第3运算核都在执行计算工作。
可选地,多个运算核执行计算处理时,可以是多个所述运算核按照运算传输并行模式或运算传输串行模式对所述多个数据块进行计算处理。也就是说,众核处理器的核内运算核数据传输可以有两种方式:运算传输并行模式和运算传输串行模式,无论是运算传输并行模式还是串行模式,在众核之间都可形成流水式的顺序工作模式。
图10示出了根据本发明实施例众核处理器的运算传输并行模式示意图,多个运算核按照运算传输并行模式对所述多个数据块进行计算处理时,对于任意一个运算核,所述运算核在进行核内运算的同时,将至少部分运算完成的数据传输至下一个目的运算核。即,在该模式下,在核内运算的同时,部分运算完成的数据将被传输给相应的下一个目的运算核,即核内运算和核间数据传输可同时进行。
以图10的并行运算传输模式为例,首先,输入数据按时序输入到Core1进行处理,同时,将Core1处理完成后的输出数据经由路由送至Core5并作为Core5输入数据,当前的所有运算操作结束后,需等待一段时间所有数据才能全部传输完毕。当所有数据传输完毕之后,当前时间段T1结束。在T2时间段开始之后,在Core5的核内进行运算处理,当所有的数据处理完成并传输到下一个目的核(Core2)之后,当前时间段T2结束。在T3时间段内,Core2进行数据处理和传输。等T3时间段结束后,在接下来的时间段内(T4-T6),依次在Core3,Core6和Core9的顺序实现数据的处理并完成相应的传输。值得注意的是,各个时间段的长度可能一致,也可能不一致。每个时间段具体的时长由最后一个数据被传输到目的核的时间为依据,同时触发到下一个时间段。
图11示出了根据本发明实施例众核处理器的运算传输串行模式示意图,多个运算核按照运算传输串行模式对所述多个数据块进行计算处理时,对于任意一个运算核,所述运算核执行核内运算完成后,将所有运算完成的数据传输至下一个目的运算核。在该模式下,当所有核内运算完成时,即所有输入数据被处理完成后,数据才能被传输给相应的下一个目的运算核。也就是在同一个时刻,单核内的运算核数据发放,只有一种情况在工作,即核内运算和核间数据传输串行执行。
对于单独一组数据的处理可直接采用上述流程进行执行。当对多组数据进行处理时,即用相同的神经网络算法处理不同任务时(比如对不同的图片进行人脸识别),同样可基于上述步骤对多组数据进行排序,并依次将各组数据对应的数据处理的计算任务分别分割成多个计算子任务;将所述多组数据中的第一组数据的计算子任务依次输入所述众核处理器中的多个运算核进行运算处理;其中,在所述众核处理器的完成第一组数据的首个计算子任务后,所述众核处理器中的多个运算核同时并行工作;在所述众核处理器中的首个运算核处理完成第一组数据的最后的计算子任务后,继续将第二组数据输入所述众核处理器进行运算处理,对于后续第三组至第N组以此类推。
如图12所示,假设需要对两组数据进行运算处理,各自对应的计算任务分别是任务1和任务2,。在将其输入众核处理器之前,需要先分别对任务1和任务2进行子任务的划分,可以将单个任务(任务1、任务2)分割成不同的子任务,然后将这些子任务依次输入众核处理器进行处理。在完成首个子任务的之后(图12中表示为T1到T7),所有的核都将同时并行工作,分别处理不同层的网络。而且,当任务1的最后的子任务完成首个运算核(Core1)的处理后,任务2的首个子任务可以立刻输入Core1进行处理,实现了任务间的无缝衔接。
在单个任务的流水式的顺序工作模式基础上,众核流水架构还可支持多任务并行和任务间的交互。也就是说,在需要处理的数据为多组时,为各组数据配置众核处理器中的运算核时,在所述众核处理器的选取多个运算核组,其中,各运算核组包括多个运算核;将所述多组数据分别输入所述众核处理器中不同的运算核组,由各运算核组并行执行所述多组数据的计算处理过程。其中,各运算核组所执行的数据处理算法可以相同,也可以不同。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括众核处理器,用于运行计算机程序,其中,
所述众核处理器在进行数据处理时,采用上述任一实施例所述的基于众核处理器的流式数据处理方法。
可选地,所述计算设备还可以包括:存储设备,用于存储计算机程序,所述计算机程序在所述计算设备中运行时由处理器加载并执行。
本发明实施例提供了一种更加高效的基于众核处理器的流式数据处理方法及计算设备,首先将众核处理器分为N个运算核组,进而对众核处理器接收到的数据输入N个运算核组中对应的运算核组执行数据处理任务并输出数据处理结果。在本发明实施例中,对每个运算核而言,数据均可以排成管道模式按时间段输入,以保证数据处理的准确性。基于本发明实施例提供的方案可以在提升众核处理器对数据处理速度的同时降低众核处理器的能耗以及数据延迟,进而提升众核处理器的整体运算效率。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种基于众核处理器的流式数据处理方法,所述众核处理器包括多个运算核,所述方法包括:
将所述多个运算核分为N个运算核组,所述N个运算核组执行不同的数据处理方法;
接收数据,所述数据包括图像、视频、音频或由传感器传来的数据;
将所述数据输入所述N个运算核组中对应的运算核组执行数据处理任务;
输出所述处理后的数据。
2.如权利要求1所述的方法,其特征在于,将所述数据输入所述N个运算核组中对应的运算核组执行数据处理任务,包括:
将所述数据输入一个运算核组;或将所述数据输入所述N个运算核组中的多个运算核组,以执行不同的数据处理任务。
3.如权利要求1或2所述的方法,其特征在于,所述将所述数据输入所述N个运算核组中对应的运算核组执行数据处理任务,包括:
将所述数据输入第一运算核组执行第一数据处理任务。
4.如权利要求3所述的方法,其特征在于,所述将所述数据输入第一运算核组执行第一数据处理任务,包括:
将所述数据分为多个数据块,并将所述多个数据块分为M组,所述M组中的每个组包括相同数量K的数据块,其中,M大于等于2,K大于等于1;
为所述K个数据块分配对应的K个运算核;
将所述M组中第一组内的K个数据块并行输入至所述K个数据块的每个数据块对应的运算核中,由所述运算核对对应的数据块进行计算处理。
5.根据权利要求4所述的方法,其中,所述将所述M组中第一组内的K个数据块并行输入至所述K个数据块的每个数据块对应的运算核中,由所述运算核对对应的数据块进行计算处理之后,还包括:
将所述M组中第二组内的K个数据块并行输入至所述K个运算核中,由所述K个运算核对所述第二组内的K个数据块进行计算处理。
6.根据权利要求4或5所述的方法,其中,所述并行输入时,对于任意一个运算核,在进行核内运算的同时,将至少部分运算完成的数据传输至所述第一运算核组中的下一运算核,以执行所述第一数据处理任务中的下一层的计算。
7.根据权利要求1-6任一项所述的方法,其中,所述众核处理器中的各所述运算核均包括:
权重存储单元,用于存储执行神经网络计算时所需的数据、数据权重和/或操作指令;
计算单元,用于访问所述权重存储单元中存储的数据,并对所述数据进行运算处理;
控制单元,用生成操作指令,并控制所述计算单元基于所述操作指令执行数据运算;
路由,用于发送和接收数据,进行所述运算核内或与其他运算核的数据通信。
8.根据权利要求7所述的方法,其中,所述多个运算核之间的通信方式包括:2D网络模式、3D环形模式、一对一直连模式。
9.一种计算设备,包括众核处理器,用于运行计算机程序,其中,
所述众核处理器在进行数据处理时,采用权利要求1-8任一项所述的基于众核处理器的流式数据处理方法。
10.根据权利要求9所述的计算设备,其中,所述计算设备还包括:
存储设备,用于存储计算机程序,所述计算机程序在所述计算设备中运行时由处理器加载并执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910540896.5A CN112114942A (zh) | 2019-06-21 | 2019-06-21 | 一种基于众核处理器的流式数据处理方法及计算设备 |
PCT/CN2020/087013 WO2020253383A1 (zh) | 2019-06-21 | 2020-04-26 | 一种基于众核处理器的流式数据处理方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910540896.5A CN112114942A (zh) | 2019-06-21 | 2019-06-21 | 一种基于众核处理器的流式数据处理方法及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112114942A true CN112114942A (zh) | 2020-12-22 |
Family
ID=73796165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910540896.5A Pending CN112114942A (zh) | 2019-06-21 | 2019-06-21 | 一种基于众核处理器的流式数据处理方法及计算设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112114942A (zh) |
WO (1) | WO2020253383A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631982A (zh) * | 2020-12-25 | 2021-04-09 | 清华大学 | 基于众核架构的数据交换方法及装置 |
CN112817898A (zh) * | 2021-02-08 | 2021-05-18 | 清华大学 | 数据传输方法、处理器、芯片及电子设备 |
CN112835719A (zh) * | 2021-02-10 | 2021-05-25 | 北京灵汐科技有限公司 | 任务处理的方法和装置、众核系统、计算机可读介质 |
CN113836077A (zh) * | 2021-09-08 | 2021-12-24 | 北京灵汐科技有限公司 | 众核设备 |
CN115098262A (zh) * | 2022-06-27 | 2022-09-23 | 清华大学 | 一种多神经网络任务处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101278264A (zh) * | 2005-09-28 | 2008-10-01 | 英特尔公司 | 众核处理器的可靠计算 |
CN102222019A (zh) * | 2011-05-19 | 2011-10-19 | 西南交通大学 | 基于OpenMP的小波和小波包多核并行计算方法 |
US20170090999A1 (en) * | 2015-09-25 | 2017-03-30 | Netapp, Inc. | Storage System Multiprocessing and Mutual Exclusion in a Non-Preemptive Tasking Environment |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
CN109426553A (zh) * | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
CN109828790A (zh) * | 2019-01-31 | 2019-05-31 | 上海赜睿信息科技有限公司 | 一种基于申威异构众核处理器的数据处理方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156271B (zh) * | 2014-08-01 | 2017-12-08 | 浪潮(北京)电子信息产业有限公司 | 一种协同计算集群负载均衡的方法及系统 |
US10795645B2 (en) * | 2017-03-27 | 2020-10-06 | Microsoft Technology Licensing, Llc | Neural network for program synthesis |
CN109359736A (zh) * | 2017-04-06 | 2019-02-19 | 上海寒武纪信息科技有限公司 | 网络处理器和网络运算方法 |
CN110502330A (zh) * | 2018-05-16 | 2019-11-26 | 上海寒武纪信息科技有限公司 | 处理器及处理方法 |
-
2019
- 2019-06-21 CN CN201910540896.5A patent/CN112114942A/zh active Pending
-
2020
- 2020-04-26 WO PCT/CN2020/087013 patent/WO2020253383A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101278264A (zh) * | 2005-09-28 | 2008-10-01 | 英特尔公司 | 众核处理器的可靠计算 |
CN102222019A (zh) * | 2011-05-19 | 2011-10-19 | 西南交通大学 | 基于OpenMP的小波和小波包多核并行计算方法 |
US20170090999A1 (en) * | 2015-09-25 | 2017-03-30 | Netapp, Inc. | Storage System Multiprocessing and Mutual Exclusion in a Non-Preemptive Tasking Environment |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
CN109426553A (zh) * | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
CN109828790A (zh) * | 2019-01-31 | 2019-05-31 | 上海赜睿信息科技有限公司 | 一种基于申威异构众核处理器的数据处理方法和系统 |
Non-Patent Citations (5)
Title |
---|
TING ZHANG ETC.: "Image Exploration Procedure Classification with Spike-timing Neural Network for the Blind", 2018 24TH INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION (ICPR), 29 November 2018 (2018-11-29) * |
VOLODYMYR TURCHENKO ETC.: "Efficient parallelization of batch pattern training algorithm on many-core and cluster architectures", 2013 IEEE 7TH INTERNATIONAL CONFERENCE ON INTELLIGENT DATA ACQUISITION AND ADVANCED COMPUTING SYSTEMS (IDAACS), 14 November 2013 (2013-11-14) * |
何伟 等: "基于嵌入式多核SoPC平台的说话人识别系统应用研究", 电子应用技术, vol. 7, 6 July 2007 (2007-07-06) * |
朱虎明 等: "深度神经网络并行化研究综述", 计算机学报, vol. 41, no. 8, 19 January 2018 (2018-01-19) * |
王可锋;吴晓;罗眉;: "众核多计算模式系统的构建", 现代电子技术, no. 22, 15 November 2013 (2013-11-15) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631982A (zh) * | 2020-12-25 | 2021-04-09 | 清华大学 | 基于众核架构的数据交换方法及装置 |
CN112817898A (zh) * | 2021-02-08 | 2021-05-18 | 清华大学 | 数据传输方法、处理器、芯片及电子设备 |
CN112835719A (zh) * | 2021-02-10 | 2021-05-25 | 北京灵汐科技有限公司 | 任务处理的方法和装置、众核系统、计算机可读介质 |
CN112835719B (zh) * | 2021-02-10 | 2023-10-31 | 北京灵汐科技有限公司 | 任务处理的方法和装置、众核系统、计算机可读介质 |
CN113836077A (zh) * | 2021-09-08 | 2021-12-24 | 北京灵汐科技有限公司 | 众核设备 |
CN115098262A (zh) * | 2022-06-27 | 2022-09-23 | 清华大学 | 一种多神经网络任务处理方法及装置 |
CN115098262B (zh) * | 2022-06-27 | 2024-04-23 | 清华大学 | 一种多神经网络任务处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020253383A1 (zh) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112114942A (zh) | 一种基于众核处理器的流式数据处理方法及计算设备 | |
CN108241890B (zh) | 一种可重构神经网络加速方法及架构 | |
JP7078758B2 (ja) | 機械学習モデルを改良して局所性を改善させること | |
JP2021184276A (ja) | ニューラルネットワーク命令セットアーキテクチャ | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
TWI634489B (zh) | 多層人造神經網路 | |
CN111199275B (zh) | 用于神经网络的片上系统 | |
CN109102065A (zh) | 一种基于PSoC的卷积神经网络加速器 | |
US12165050B2 (en) | Networks for distributing parameters and data to neural network compute cores | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
US20200356809A1 (en) | Flexible pipelined backpropagation | |
CN110046704A (zh) | 基于数据流的深度网络加速方法、装置、设备及存储介质 | |
CN108197075B (zh) | 一种Inception结构的多核实现方法 | |
CN112799598B (zh) | 一种数据处理方法、处理器及电子设备 | |
CN108334944A (zh) | 一种人工神经网络运算的装置及方法 | |
CN104731562B (zh) | 在simd处理单元中的任务执行 | |
US11238347B2 (en) | Data distribution in an array of neural network cores | |
CN112686379A (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
CN112862083A (zh) | 一种边缘环境下的深度神经网络推断方法及装置 | |
EP3859612A1 (en) | Shared scratchpad memory with parallel load-store | |
CN110377874A (zh) | 卷积运算方法及系统 | |
CN114330686A (zh) | 一种可配置的卷积处理装置与卷积计算方法 | |
CN111078286B (zh) | 数据通信方法、计算系统和存储介质 | |
Wu et al. | Efficient inference of large-scale and lightweight convolutional neural networks on FPGA | |
CN110222819B (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 |