CN116362305A - 数据处理方法、装置、计算机设备及存储介质 - Google Patents
数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116362305A CN116362305A CN202111596506.XA CN202111596506A CN116362305A CN 116362305 A CN116362305 A CN 116362305A CN 202111596506 A CN202111596506 A CN 202111596506A CN 116362305 A CN116362305 A CN 116362305A
- Authority
- CN
- China
- Prior art keywords
- processing
- operator
- processing unit
- data
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 858
- 238000013528 artificial neural network Methods 0.000 claims abstract description 116
- 238000000034 method Methods 0.000 claims abstract description 79
- 238000004891 communication Methods 0.000 claims abstract description 41
- 230000015654 memory Effects 0.000 claims description 122
- 230000004044 response Effects 0.000 claims description 17
- 230000003993 interaction Effects 0.000 abstract description 18
- 230000004888 barrier function Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 46
- 230000005540 biological transmission Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000004148 unit process Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- PCERBVBQNKZCFS-UHFFFAOYSA-N dibenzylcarbamodithioic acid Chemical compound C=1C=CC=CC=1CN(C(=S)S)CC1=CC=CC=C1 PCERBVBQNKZCFS-UHFFFAOYSA-N 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000265 homogenisation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种数据处理方法、装置、计算机设备及存储介质,属于计算机技术领域。方法包括:通过第一处理单元,基于第一算子对神经网络的输入数据进行处理,得到处理结果,第一处理单元与多个算子中的第一算子匹配;基于第一处理单元与第二处理单元之间的直连通路,向第二处理单元发送处理结果,第二处理单元与神经网络的第二算子匹配;通过第二处理单元,基于第二算子对处理结果进行处理。该方法通过在处理单元间添加直连通路,使得处理单元间能够直接通过该直连通路进行数据交互,摆脱了控制单元,因此处理单元之间能够直接地、无障碍地进行合作,提高了通过神经网络中的算子进行数据处理的效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种数据处理方法、装置、计算机设备及存储介质。
背景技术
近年来,随着人工智能技术的飞速发展,基于神经网络的数据处理方法得到了广泛的应用。由于神经网络中的不同算子适配不同的处理单元,因此需要由不同的处理单元来执行对应的算子,共同完成数据处理任务。相关技术中,各个处理单元之间通过控制单元来进行数据交互,以完成数据处理任务。然而,不同处理单元之间交互的效率极低,导致数据的处理效率低。
发明内容
本申请实施例提供了一种数据处理方法、装置、计算机设备及存储介质,能够提高数据的处理效率。技术方案如下:
根据本申请实施例的一方面,提供了一种数据处理方法,所述方法包括:
通过第一处理单元,基于神经网络的第一算子对输入数据进行处理,得到处理结果,所述第一处理单元与所述第一算子匹配;
基于所述第一处理单元与第二处理单元之间的直连通路,向所述第二处理单元发送所述处理结果,所述第二处理单元与所述神经网络的第二算子匹配;
通过所述第二处理单元,基于所述第二算子对所述处理结果进行处理。
根据本申请实施例的另一方面,提供了一种数据处理装置,所述装置包括:
第一处理模块,用于通过第一处理单元,基于神经网络的第一算子对输入数据进行处理,得到处理结果,所述第一处理单元与所述第一算子匹配;
数据发送模块,用于基于所述第一处理单元与第二处理单元之间的直连通路,向所述第二处理单元发送所述处理结果,所述第二处理单元与所述神经网络的第二算子匹配;
第二处理模块,用于通过所述第二处理单元,基于所述第二算子对所述处理结果进行处理。
根据本申请实施例的另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条程序代码,所述至少一条程序代码用于被所述处理器执行以实现如上述方面所述的数据处理方法。
根据本申请实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条程序代码,所述至少一条程序代码用于被处理器执行以实现如上述方面所述的数据处理方法。
根据本申请实施例的另一方面,提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现上述方面所述的数据处理方法。
根据本申请实施例的另一方面,提供了一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片在终端上运行时,用于实现上述方面所述的数据处理方法。
本申请实施例提供的数据处理方案,在处理单元之间添加了直连通路,使得处理单元之间能够直接通过该直连通路进行数据交互,极大地提高了处理单元之间的交互效率,这种情况下,处理单元在基于匹配的算子进行数据处理后,将得到的处理结果,直接发送给另一个处理单元,另一个处理单元就能够直接获取到该处理结果,对该处理结果继续进行处理,这种方案摆脱了控制单元,使得处理单元之间能够直接地、无障碍地进行合作,从而提高了通过神经网络中的算子进行数据处理的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的一种实施环境的示意图;
图2示出了本申请一个示例性实施例提供的一种数据处理方法的流程图;
图3示出了本申请一个示例性实施例提供的另一种数据处理方法的流程图;
图4示出了本申请一个示例性实施例提供的一种处理单元之间的连接方式的示意图;
图5示出了本申请一个示例性实施例提供的一种处理单元的结构示意图;
图6示出了本申请一个示例性实施例提供的一种数据处理过程的示意图;
图7示出了本申请一个示例性实施例提供的另一种数据处理过程的流程图;
图8示出了本申请一个示例性实施例提供的一种数据处理装置的结构框图;
图9示出了本申请一个示例性实施例提供的一种终端的结构方框图;
图10示出了本申请一个示例性实施例提供的一种服务器的结构方框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供了一种数据处理方法,执行主体为计算机设备100,可选地,该计算机设备100为终端,例如终端为手机、台式电脑、笔记本电脑、平板电脑、智能电视、智能音箱、车载终端、智能机器人等多种类型的终端。可选地,该计算机设备100为服务器,该服务器可以为一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务器中心。该计算机设备100通过本申请提供的方法,基于神经网络中的算子对输入数据进行数据处理,能够提高数据处理的效率。可选地,计算机设备中配置有芯片,例如,人工智能芯片,计算机设备能够通过该芯片执行本申请实施例中的数据处理方法。
图1为本申请实施例提供的一种计算机设备100的示意图。参考图1,该计算机设备100包括至少两个处理单元,例如第一处理单元101和第二处理单元102,其中第一处理单元101和第二处理单元102所匹配的算子不同,可选地,第一处理单元101匹配的算子为计算密度较大且为线性的算子,例如,卷积算子、池化算子等。第二处理单元102匹配的算子为非线性的算子,例如,激活函数。计算机设备100通过处理单元来执行与该处理单元匹配的算子,以保证该算子的执行效率。
在本申请实施例中,由于神经网络包括多个算子,这多个算子匹配的处理单元不同,因此,在对神经网络的输入数据进行处理时,需要多个算子所匹配的各个处理单元进行合作。其中,第一处理单元101在基于神经网络中的第一算子对输入数据进行处理,得到处理结果,然后基于第一处理单元101与第二处理单元102之间的直连通路,向第二处理单元102发送该处理结果。第二处理单元102接收到该处理结果后,基于神经网络中的第二算子继续对该处理结果进行处理。也就是说,各处理单元分别执行神经网络中与自己匹配的算子,所得到的处理结果通过与其他处理单元之间的直连通路发送给其他处理单元。
本申请实施例提供的数据处理方法,可应用于图像处理的场景下。例如,计算机设备获取图像处理网络的输入图像,通过第一图像处理单元,基于图像处理网络中的第一算子对该输入图像进行处理,得到处理结果,基于第一图像处理单元与第二图像处理单元之间的直连通路,向第二图像处理单元发送该处理结果。然后通过第二图像处理单元,基于图像处理网络中的第二算子对该处理结果继续进行处理。其中第一图像处理单元与第一算子匹配,第二图像处理单元与第二算子匹配。通过该方法,能够提高基于图像处理网络进行图像处理的效率。
本申请实施例提供的数据处理方法,可应用于音频处理的场景下。例如,计算机设备获取音频处理网络的输入音频,通过第一音频处理单元,基于音频处理网络中的第一算子对该输入音频进行处理,得到处理结果,基于第一音频处理单元与第二音频处理单元之间的直连通路,向第二音频处理单元发送该处理结果。然后通过第二音频处理单元,基于音频处理网络中的第二算子对该处理结果继续进行处理。其中第一音频处理单元与第一算子匹配,第二音频处理单元与第二算子匹配。通过该方法,能够提高基于音频处理网络进行音频处理的效率。
本申请实施例提供的数据处理方法,可应用于视频处理的场景下。例如,计算机设备获取视频处理网络的输入视频,通过第一视频处理单元,基于视频处理网络中的第一算子对该输入视频进行处理,得到处理结果,基于第一视频处理单元与第二视频处理单元之间的直连通路,向第二视频处理单元发送该处理结果。然后通过第二视频处理单元,基于视频处理网络中的第二算子对该处理结果继续进行处理。其中第一视频处理单元与第一算子匹配,第二视频处理单元与第二算子匹配。通过该方法,能够提高基于视频处理网络进行视频处理的效率。
当然,本申请实施例提供的方法还能够应用于其他数据处理的场景,例如,对通过多媒体处理网络处理多媒体数据的场景、通过文本处理网络处理文本数据的场景等,本申请实施例对此不做限制。
图2示出了本申请一个示例性实施例提供的一种数据处理方法的流程图,参见图2,执行主体为计算机设备,该方法包括:
201、计算机设备通过第一处理单元,基于神经网络的第一算子对输入数据进行处理,得到处理结果,该第一处理单元与该多个算子中的第一算子匹配。
其中,神经网络为任意类型的数据处理网络,例如,图像处理网络、音频处理网络、文本处理网络、多媒体处理网络等。神经网络包括多个算子,可选地,该算子包括卷积算子,激活算子,池化算子,均一化算子等。将任意类型的数据输入到对应类型的数据处理网络,基于该数据处理网络中的多个算子对该数据进行处理,能够实现该数据处理网络的功能对应的效果。例如,图像处理网络的功能为对图像进行去噪,则基于该图像处理网络中的多个算子对输入的图像进行处理后,能够去除该图像中的噪点。
可选地,第一算子为神经网络中排序最靠前的算子。由于不同算子的计算特点不同,且不同处理单元的数据处理方式也不同,因此,不同算子匹配的处理单元可能不同。相对于与算子匹配的处理单元来讲,其他处理单元虽然也能够执行该算子,但是执行的速度较慢。因此,在本申请实施例中,神经网络中的各个算子由算子所匹配的处理单元来执行,以保证基于神经网络进行数据处理的效率。
计算机设备包括多个处理单元,其中,第一处理单元和第二处理单元所匹配的算子不同。可选地,第一处理单元和第二处理单元为任意处理引擎,例如,第一处理单元为NPU(Neural-network Processing Unit,嵌入式神经网络处理器)。第二处理单元为DSP(Digital Signal Processor,数字信号处理器)。又如,第一处理单元为TPU(TensorProcessing Unit,张量处理单元),第二处理单元为GPU(Graphics Processing Unit,图形处理器)。再如,第一处理单元为NPU,第二处理单元为TPU。第一处理单元和第二处理单元能够为任意数据处理加速引擎,本申请实施例对此不做限制。
202、计算机设备基于第一处理单元与第二处理单元之间的直连通路,向第二处理单元发送处理结果,该第二处理单元与该神经网络的第二算子匹配。
其中,直连通路(direct link)是指将两个处理单元直接连接起来的通路,这两处理单元之间没有其他单元。可选地,与神经网络中的多个算子匹配的各个处理单元之间具有直连通路,任意两个处理单元之间能够直接基于该直连通路进行数据交互。
203、计算机设备通过第二处理单元,基于第二算子对该处理结果进行处理。
第二处理单元接收第一处理单元发送的处理结果,然后基于第二算子对该处理结果继续进行处理。需要说明的一点是,如果第二算子为神经网络中的最后一个算子,那么第二处理单元基于第二算子对该处理结果进行处理后,即得到神经网络的输出数据。如果第二算子不是神经网络中的最后一个算子,那么第二处理单元基于第二算子对该处理结果进行处理后,得到更新后的处理结果,后续由该第二处理单元或者其他处理单元执行神经网络中的其他算子,直至神经网络中的多个算子执行完成。
本申请实施例提供的数据处理方案,在处理单元之间添加了直连通路,使得处理单元之间能够直接通过该直连通路进行数据交互,极大地提高了处理单元之间的交互效率,这种情况下,处理单元在基于匹配的算子进行数据处理后,将得到的处理结果,直接发送给另一个处理单元,另一个处理单元就能够直接获取到该处理结果,对该处理结果继续进行处理,这种方案摆脱了控制单元,使得处理单元之间能够直接地、无障碍地进行合作,从而提高了通过神经网络中的算子进行数据处理的效率。
图3示出了本申请一个示例性实施例提供的一种数据处理方法的流程图,参见图3,该方法包括:
301、计算机设备获取神经网络的输入数据,神经网络包括多个算子。
可选地,计算机设备获取CPU(Central Processing Unit,中央处理器)在目标存储位置存储的数据,将该数据确定为神经网络的输入数据。其中该目标存储位置用于存储该神经网络的输入数据。
302、计算机设备通过第一处理单元,基于第一算子对输入数据进行处理,得到处理结果,第一处理单元与该多个算子中的第一算子匹配。
可选地,CPU在目标存储位置存储神经网络的输入数据之后,向第一处理单元发送数据处理指令,以指示第一处理单元开始执行数据处理操作。相应的,第一处理单元响应于该数据处理指令,基于第一算子对输入数据进行处理,得到处理结果。
在一种可能的实现方式中,第一处理单元包括第一处理器,相应的,计算机设备通过第一处理单元,基于第一算子对输入数据进行处理,得到处理结果,包括:计算机设备通过第一处理器,执行等待指令以等待数据处理指令;响应于接收到数据处理指令,基于第一算子对输入数据进行处理,得到处理结果。其中,等待指令用于指示停止执行数据处理操作,直至接收到数据处理指令时重新执行数据处理操作。可选地,第一处理单元中的第一处理器为ALU(Arithmetic&logical Unit,算术逻辑单元),第一存储器称为memory。
可选地,等待指令是由CPU发送给第一处理单元的,或者,等待指令是由第一处理单元从存储器中读取的,该存储器为任意存储器,例如,公共存储器或者该第一处理单元中的存储器,本申请实施例对此不做限制。
在本申请实施例中,由于等待指令用于指示停止执行数据处理操作,直至接收到数据处理指令时重新执行数据处理操作,使第一处理器执行等待指令,实现了通过数据处理指令控制第一处理器执行数据处理操作的时机。
在一种可能的实现方式中,第一处理单元还包括第一存储器,第一存储器存储有第一处理单元需要执行的指令,相应的,计算机设备通过第一处理单元,基于第一算子对输入数据进行处理,得到处理结果,包括:计算机设备通过第一处理器,从第一存储器中读取位于第一算子之前的等待指令;然后执行该等待指令,即停止执行数据处理操作,直至在接收到数据处理指令的情况下,从第一存储器中读取第一算子,基于第一算子对输入数据进行处理,得到处理结果。
计算机设备通过第一处理单元,按照第一存储器中存储的指令的顺序,依次读取指令来执行,每次读取未执行的指令中排序最靠前的指令。由于第一算子之前具有等待指令,因此,第一处理器会先执行等待指令,直至接收到数据处理指令,读取第一存储器中的等待指令之后的下一个指令,即第一算子,执行该第一算子。
在本申请实施例中,通过在第一存储器中的第一算子之前存储等待指令,使得第一处理单元在接收到数据处理指令的情况下,才能执行第一算子,从而实现了控制第一处理器执行数据处理操作的时机。
在一种可能的实现方式中,计算机设备获取神经网络的输入数据之前,先将神经网络中的多个算子划分至匹配的处理单元,并确定每个处理单元中划分的多个算子的执行顺序。也即是,计算机设备确定该多个算子中的每个算子匹配的处理单元;对于每个处理单元,按照该处理单元匹配的多个算子在神经网络中的排列顺序,在处理单元的存储器中存储该多个算子,在存储器中的至少一个算子之前插入等待指令,以及在至少一个算子之后插入数据发送指令。其中,等待指令用于指示停止执行数据处理操作,直至接收到数据处理指令时重新执行数据处理操作,数据发送指令用于指示在当前的处理单元基于算子处理完成时,向其他处理单元发送处理结果以及数据处理指令。
由于等待指令插入在算子之前,且指示在接收到数据处理指令的情况下,执行数据处理操作,而数据发送指令插入在算子之后,用于指示在当前的处理单元基于算子处理完成时,向其他处理单元发送处理结果以及数据处理指令,以使其他处理单元响应于该数据处理指令,对该处理结果进行处理,且各处理单元按照存储器中的指令的顺序依次执行指令,因此,不会出现资源占用冲突,即不会出现一个处理单元同时执行多个算子的情况,保证了处理单元在同一时刻只能执行一个算子,并且也不会出现数据冲突,即保证了神经网络中的多个算子能够按照顺序依次进行处理,且后一个算子的执行能够依赖于前一个算子的处理结果。该等待指令和该数据发送指令实际上是处理单元之间的握手信号,使得在没有控制单元的参与下,多个处理单元在共同基于神经网络进行数据处理时,能够避免数据冲突和资源冲突,实现了自同步机制。
可选地,计算机设备通过编译器来确定该多个算子中的每个算子匹配的处理单元;对于每个处理单元,按照该处理单元匹配的多个算子在神经网络中的排列顺序,在处理单元的存储器中存储该多个算子,在存储器中的至少一个算子之前插入等待指令,以及在至少一个算子之后插入数据发送指令。其中,编译器是一种将高级语言编译为计算机设备能够执行的低级语言的程序。在本申请实施例中,通过编译器来划分神经网络中的算子,以及确定每个处理单元所划分的算子的执行顺序,使得神经网络在编译阶段就能够完成算子的划分和执行顺序的确定。
在本申请实施例中,考虑到神经网络中的每个算子匹配的处理单元可能不同,因此,在通过神经网络对输入数据处理之前就将神经网络中的算子划分至匹配的处理单元,并且确定划分给每个处理单元的多个算子的执行顺序,使得后续在获取到神经网络的输入数据时,处理单元能够直接基于划分给自己的多个算子以及确定好的算子的执行顺序来进行数据处理,而不是在基于神经网络进行数据处理的过程中,临时确定每个算子匹配的处理单元,如此能够提高数据处理效率。
并且,通过将等待指令插入在算子之前,且等待指令指示在接收到数据处理指令的情况下,执行数据处理操作,而将数据发送指令插入在算子之后,用于指示在当前的处理单元基于算子处理完成时,向其他处理单元发送处理结果以及数据处理指令,以使其他处理单元响应于该数据处理指令,对该处理结果进行处理,使得在没有控制单元的参与下,多个处理单元在共同基于神经网络进行数据处理时,能够避免数据冲突和资源冲突,实现了自同步机制。
在一种可能的实现方式中,计算机设备在存储器中的至少一个算子之前插入等待指令,以及在至少一个算子之后插入数据发送指令,包括:计算机设备在存储器中相邻的至少两个算子之间存在关联关系的情况下,在至少两个算子中的第一个算子之前插入等待指令,在至少两个算子中的最后一个算子之后插入数据发送指令。
其中存在关联关系的算子之间具有数据依赖性。例如,两个算子之间具有数据依赖性,那么其中一个算子的执行要依赖于另一个算子的处理结果,即另一个算子的输出。
在本申请实施例中,由于神经网络中的相邻算子之间具有数据依赖性,如果分配到任一处理单元的两个相邻的算子之间没有数据依赖性,说明与这两个算子中的前一算子具有数据依赖性的算子被分配到了其他处理单元中,因此,在存储器中相邻的至少两个算子之间存在关联关系的情况下,在至少两个算子中的第一个算子之前插入等待指令,在至少两个算子中的最后一个算子之后插入数据发送指令,使得神经网络中具有数据依赖关系的两个算子能够被连续处理,从而保证神经网络中算子的正确执行。
303、计算机设备获取第一算子的关联算子,将该关联算子确定为第二算子,其中,该关联算子的数据处理依赖于第一算子的处理结果。
关联算子的数据处理依赖于第一算子的处理结果,也就是说,第一算子的输出应为该关联算子的输入。
在一种可能的实现方式中,计算机设备获取第一算子的关联算子,将该关联算子确定为第二算子,包括:计算机设备获取算子关联关系,该算子关联关系指示神经网络包含的算子的关联算子,其中任一算子的关联算子的数据处理依赖于该算子的处理结果。然后计算机设备从该算子关联关系中,查询第一算子的关联算子;将查询到的关联算子确定为第二算子。
可选地,算子关联关系为神经网络中的多个算子的排列顺序,其中,每个算子之后的一个算子依赖于该算子的处理结果,即为该算子的关联算子。相应的,计算机设备从该排列顺序中查询第一算子之后的一个算子,将该算子确定为第一算子的关联算子。
在本申请实施例中,考虑到神经网络中的多个算子之间具有数据依赖性,因此,在执行完第一算子之后,将该第一算子的关联算子确定为第二算子,后续向第二算子匹配的处理单元发送第一算子的处理结果,则能够保证第二算子的执行能够依据第一算子的处理结果,保证神经网络中的算子的正确执行。
304、计算机设备基于第一处理单元与第二处理单元之间的直连通路,向第二处理单元发送该处理结果,第二处理单元与该多个算子中的第二算子匹配。
在一种可能的实现方式中,第二处理单元包括第二处理器和第二存储器,相应的,计算机设备基于第一处理单元与第二处理单元之间的直连通路,向第二处理单元发送处理结果,包括:计算机设备通过第一处理单元,基于与第二处理单元之间的直连通路,在第二存储器中存储该处理结果,以及向第二处理器发送数据处理指令。可选地,该数据处理指令携带该处理结果的存储地址。
在本申请实施例中,第一处理单元无需基于总线将处理结果存储到公共存储单元中,再由第二处理单元基于总线从公共存储单元中读取该处理结果。而是基于与第二处理单元之间的直连通路,直接将该处理结果存储到第二处理单元的存储器中,使得第二处理单元的处理器在接收到数据处理指令的情况下,能够直接从自己的存储器中读取该处理结果,并进行处理,极大地缩短了数据的传输链路,从而提高了数据交互的效率。
在一种可能的实现方式中,第一处理单元包括第一处理器和第一存储器,相应的,计算机设备通过第一处理单元,基于与第二处理单元之间的直连通路,在第二存储器中存储处理结果,以及向第二处理器发送数据处理指令,包括:计算机设备通过第一处理器,从第一存储器中读取位于第一算子之后的数据发送指令,响应于该数据发送指令,基于与第二处理器之间的直连通路,在第二存储器中存储该处理结果,以及,向第二处理器发送数据处理指令,其中,数据发送指令用于指示在当前的处理单元基于算子处理完成时,向其他处理单元发送处理结果以及数据处理指令。
在本申请实施例中,由于数据发送指令用于指示在当前的处理单元基于算子处理完成时,向其他处理单元发送处理结果以及数据处理指令,因此通过在处理单元的存储器中的算子后面存储数据发送指令,使得处理单元能够在执行算子之后,执行该数据发送指令,从而实现在第二处理器的存储器中存储处理结果,并向第二处理器发送数据处理指令,使得第二处理单元能够基于该数据处理指令从自己的存储器中读取该处理结果,对该处理结果继续进行处理。
在一种可能的实现方式中,计算机设备通过第一处理单元,基于第一算子对输入数据进行处理,得到处理结果之后,以及在向第二处理单元发送处理结果之前,方法还包括:计算机设备通过第一处理单元,基于第三算子对处理结果进行处理,得到更新后的处理结果,其中第三算子为神经网络中的算子,且第三算子与第一处理单元匹配。可选地,第三算子是第一算子的关联算子,即第三算子的输入为第一算子的输出,第三算子依赖于该第一算子的处理结果。
需要说明的一点是,由于神经网络的多个算子中,可能会有连续的至少两个算子与同一处理单元匹配,因此,当前的处理单元在基于当前的算子进行处理之后,如果下一个算子仍然与该处理单元匹配,那么该处理单元会基于该算子继续进行处理,得到更新后的处理结果,直至当前处理的算子之后的下一个算子与当前的处理单元不匹配,则当前的处理单元向下一个算子匹配的处理单元发送当前最新的处理结果。
在本申请实施例中,第一处理单元能够基于第三算子对处理结果进行处理,得到更新后的处理结果,然后再向第二处理单元发送更新后的处理结果,也就是说,同一处理单元能够连续执行多个匹配的算子,这样就保证了多个处理单元在基于神经网络共同进行数据处理时,各个处理单元能够执行与自己匹配的算子,且神经网络中的多个算子的执行顺序是准确的。
305、计算机设备通过第二处理单元,基于第二算子对该处理结果进行处理。
在一种可能的实现方式中,计算机设备通过第二处理单元的第二处理器,执行等待指令以等待来自第一处理单元的数据处理指令;响应于接收到来自第一处理单元的数据处理指令,基于第二算子对处理结果进行处理。
可选地,等待指令是由CPU发送给第二处理单元的,或者,等待指令是由第二处理单元从存储器中读取的,该存储器为任意存储器,例如,公共存储器或者该第二处理单元中的存储器,本申请实施例对此不做限制。
可选地,计算机设备通过第一处理单元的第一处理器,将处理结果存储在第二处理单元的第二存储器中,且数据处理指令包括该处理结果在第二存储器中的存储地址,相应的,计算机设备通过第二处理器响应于接收到来自第一处理单元的数据处理指令,基于该存储地址,从第二存储器中读取该处理结果。
在本申请实施例中,由于等待指令用于指示停止执行数据处理操作,直至接收到数据处理指令时重新执行数据处理操作,使第二处理器执行等待指令,实现了通过数据处理指令控制第二处理器执行数据处理操作的时机。
在一种可能的实现方式中,计算机设备通过第二处理器,从第二存储器中读取位于第二算子之前的等待指令;然后执行该等待指令,即停止执行数据处理操作,直至在接收到数据处理指令的情况下,从第二存储器中读取第二算子,基于第二算子对该处理结果进行处理。
计算机设备通过第二处理单元,按照第二存储器中存储的指令的顺序,依次读取指令来执行,每次读取未执行的指令中排序最靠前的指令。由于第二算子之前具有等待指令,因此,第二处理器会先执行等待指令,直至接收到数据处理指令,读取第二存储器中的等待指令之后的下一个指令,即第二算子,执行该第二算子。
在本申请实施例中,通过在第二存储器中的第二算子之前存储等待指令,使得第二处理单元在接收到数据处理指令的情况下,才能执行第二算子,从而实现了控制第二处理器执行数据处理操作的时机。
需要说明的一点是,如果第二算子为神经网络中的最后一个算子,那么第二处理单元基于第二算子对该处理结果进行处理后,即得到神经网络的输出数据。如果第二算子不是神经网络中的最后一个算子,那么第二处理单元基于第二算子对该处理结果进行处理后,得到更新后的处理结果,后续由该第二处理单元或者其他处理单元执行神经网络中的其他算子。例如,神经网络中,位于第二算子之后的下一个算子为第四算子,第四算子与第三处理单元匹配,则第二处理单元向第三处理单元发送更新后的处理结果,第三处理单元基于该第四算子对该处理结果继续进行处理,以此类推,直至神经网络中的多个算子执行完成。其中,第二处理单元向第三处理单元发送处理结果的方式,与第一处理单元向第二处理单元发送处理结果的实现方式同理,第三处理单元基于第四算子进行数据处理的方式与第二处理单元基于第二算子进行数据处理的方式同理,此处不再赘述。
需要说明的一点是,上述步骤303为可选步骤,例如,只有两个处理单元的情况下,计算机设备无需先确定第二算子,基于第二算子确定第一处理单元向哪个处理器发送处理结果。例如,计算机设备通过第一处理单元执行第一算子之后,如果第一存储器中,位于第一算子后面下一条指令为数据发送指令,则计算机设备通过第一处理单元,直接向除第一处理单元之外的另一处理单元发送该处理结果以及数据处理指令。
图4为本申请实施例提供的一种处理单元之间的连接方式的示意图。参考图4,以两个处理单元为例,第一处理单元与第二处理单元分别与控制单元连接,且第一处理单元和第二处理单元通过总线与公共存储单元连接。相关技术中,第一处理单元执行了神经网络中的一个算子之后,基于总线将得到的处理结果存储到公共存储单元中,然后通过中断的方式告知控制单元,控制单元确定神经网络中的下一个算子所匹配的处理单元,如果该处理单元为第二处理单元,则控制单元向第二处理单元发送通知,然后第二处理单元基于总线,从公共存储单元中读取处理结果,然后基于该下一个算子进行数据处理,以此类推,直到神经网络中的多个算子处理完成。在这个过程中,控制单元需要与各个处理单元进行频繁的交互,占用了控制单元的资源,并且各个处理单元之间的交互效率极低,并且,由于处理结果是存储在公共存储单元中,数据存储和数据读取的链路较长,数据传输的效率极低。而本申请实施例中,在第一处理单元和第二处理单元之间添加直连通路,使得第一处理单元与第二处理单元直接基于该直连通路进行数据交互,极大地缩短了处理结果的传输链路,并且第一处理单元与第二处理单元基于等待指令和数据发送指令来实现自同步,摆脱了控制单元,提高了交互效率,从而整体上提高了基于神经网络进行数据处理的效率。
图5为本申请实施例提供的一种处理单元的结构示意图。参考图5,任一处理单元包括处理器和存储器,处理器和存储器连接,处理器能够从存储器中读取数据,以及将数据存储到存储器中。另外,两个处理单元之间直接连接,任一处理单元能够直接将数据存储到与其直接连接的另一处理单元的存储器中。例如,第一处理单元中的第一处理器能够直接将数据存储到第二存储器,第二处理单元中的第二处理器能够直接将数据存储到第一存储器。
下面以图6所示的神经网络为例,说明本申请中的数据处理过程。
第一,计算机设备基于编译器对神经网络进行编译,以将神经网络中的多个算子分别划分至匹配的处理单元。如图6所示,由于神经网络中的算子0、算子2、算子4与第一处理单元匹配,算子1、算子3、算子5与第二处理单元匹配,因此,算子0、算子2、算子4被划分至第一处理单元的第一存储器中,算子1、算子3、算子5被划分至第二处理单元的第二存储器中。然后,计算机设备在第一存储器以及第二存储器中的每个算子之前插入等待指令,在每个算子之后插入数据发送指令。
第二,第一处理单元中的第一处理器按照第一存储器中的指令的顺序依次读取指令来执行,首先读取等待指令,执行该等待指令,即停止数据处理操作,以等待数据处理指令。第二处理单元中的第二处理器按照第二存储器中的指令的顺序依次读取指令来执行,首先读取等待指令,执行该等待指令,即停止数据处理操作,以等待数据处理指令。
第三,计算机设备通过CPU,将神经网络的输入数据存储到目标存储位置,然后向第一处理单元中的第一处理器发送数据处理指令,则第一处理器响应于该数据处理指令,从该存储位置读取该输入数据,以及从第一存储器中读取算子0,基于算子0,对该输入数据进行处理,得到处理结果。然后从第一存储器中读取算子0之后的数据发送指令,响应于该数据发送指令,基于第一处理单元与第二处理单元之间的直连通路,将该处理结果存储到第二处理单元的第二存储器中,并向第二处理单元中的第二处理器发送数据处理指令。然后,第一处理器从第一存储器中读取算子2之前的等待指令,执行该等待指令。
第四,第二处理器在执行等待指令的过程中,接收到第一处理器发送的数据处理指令,响应于该数据处理指令,从第二存储器中读取算子1以及处理结果,基于算子1对该处理结果继续进行处理,得到更新后的处理结果。然后读取算子1之后的数据发送指令,响应于该数据发送指令,将更新后的处理结果存储到第一存储器中,并且,向第一处理器发送数据处理指令。然后,第二处理器读取算子3之前的等待指令,执行该等待指令。
第五,第一处理器在执行等待指令的过程中,接收到第二处理器发送的数据处理指令,响应于该数据处理指令,从第一存储器中读取算子2以及当前最新的处理结果,基于算子2对该处理结果继续进行处理,得到更新后的处理结果。然后,第一处理器读取算子2之后的数据发送指令,响应于该数据发送指令,将更新后的处理结果存储到第二存储器中,并向第二处理器发送数据处理指令。然后,第一处理器读取算子4之前的等待指令,执行该等待指令。以此类推,直至神经网络中的多个算子进行数据处理完成。
第六,以神经网络中的最后一个算子匹配的处理单元为第一处理单元为例,第一处理器执行完最后一个算子后,基于总线将得到的输出数据存储至公共存储单元中,然后以中断的方式向CPU发送处理完成通知,以通知服务器当前的输入数据处理完成。
第七,CPU响应于该处理完成通知,在目标存储位置存储新的输入数据,向第一处理器发送数据处理指令,然后,第一处理器按照同样的方法对新的输入数据进行处理。
下面以图7所示的神经网络为例,说明本申请中的数据处理过程。
第一,计算机设备基于编译器对神经网络进行编译,以将神经网络中的多个算子分别划分至匹配的处理单元。如图7所示,由于神经网络中的算子0和算子4与第一处理单元匹配,算子1、算子2、算子3、算子5与第二处理单元匹配,因此,算子0和算子4被划分至第一处理单元的第一存储器中,算子1、算子2、算子3、算子5被划分至第二处理单元的第二存储器中。然后,计算机设备在第一存储器中的每个算子之前插入等待指令,在每个算子之后插入数据发送指令。计算机设备在第二存储器中的算子1和算子5之前插入等待指令,在算子3和算子5之后插入数据发送指令。需要说明的一点是,由于算子1和算子2之间存在关联关系,即算子2要基于算子1的处理结果进行处理。算子2和算子3之间具有关联关系,即算子3要基于算子2的处理结果进行处理。因此,在算子1之前插入等待指令,在算子3之后插入数据发送指令,而不在这三个算子之间插入等待指令和数据发送指令,以保证第二处理单元能够连续执行这三个算子。
第二,第一处理单元中的第一处理器按照第一存储器中的指令的顺序依次读取指令来执行,首先读取等待指令,执行该等待指令,即停止数据处理操作,以等待数据处理指令。第二处理单元中的第二处理器按照第二存储器中的指令的顺序依次读取指令来执行,首先读取等待指令,执行该等待指令,即停止数据处理操作,以等待数据处理指令。
第三,计算机设备通过CPU,将神经网络的输入数据存储到目标存储位置,然后向第一处理单元中的第一处理器发送数据处理指令,则第一处理器响应于该数据处理指令,从该存储位置读取该输入数据,以及从第一存储器中读取算子0,基于算子0,对该输入数据进行处理,得到处理结果。然后从第一存储器中读取算子0之后的数据发送指令,响应于该数据发送指令,基于第一处理单元与第二处理单元之间的直连通路,将该处理结果存储到第二处理单元的第二存储器中,并向第二处理单元中的第二处理器发送数据处理指令。然后,第一处理器从第一存储器中读取算子4之前的等待指令,执行该等待指令。
第四,第二处理器在执行等待指令的过程中,接收到第一处理器发送的数据处理指令,响应于该数据处理指令,从第二存储器中读取算子1以及处理结果,基于算子1对该处理结果继续进行处理,得到更新后的处理结果。然后,再从第二存储器中读取算子2,基于算子2对当前的处理结果继续进行处理,得到更新后的处理结果。然后,再从第二存储器中读取算子3,基于算子3对当前的处理结果继续进行处理,得到更新后的处理结果,然后读取算子3之后的数据发送指令,响应于该数据发送指令,将更新后的处理结果存储到第一存储器中,并且向第一处理器发送数据处理指令。然后,第二处理器读取算子5之前的等待指令,执行该等待指令。
第五,第一处理器在执行等待指令的过程中,接收到第二处理器发送的数据处理指令,响应于该数据处理指令,从第一存储器中读取算子4以及当前最新的处理结果,基于算子4对该处理结果继续进行处理,得到更新后的处理结果,然后,第一处理器读取算子4之后的数据发送指令,响应于该数据发送指令,将更新后的处理结果存储到第二存储器中,并向第二处理器发送数据处理指令。然后,第一处理器读取算子4之后的等待指令,执行该等待指令。以此类推,直至神经网络中的多个算子进行数据处理完成。
第六,以神经网络中的最后一个算子匹配的处理单元为第一处理单元为例,第一处理器执行完最后一个算子后,基于总线将得到的输出数据存储至公共存储单元中,然后以中断的方式向CPU发送处理完成通知,以通知服务器当前的输入数据处理完成。
第七,CPU响应于该处理完成通知,在目标存储位置存储新的输入数据,向第一处理器发送数据处理指令,然后,第一处理器按照同样的方法对新的输入数据进行处理。
本申请实施例提供的数据处理方案,在处理单元之间添加了直连通路,使得处理单元之间能够直接通过该直连通路进行数据交互,极大地提高了处理单元之间的交互效率,这种情况下,处理单元在基于匹配的算子进行数据处理后,将得到的处理结果,直接发送给另一个处理单元,另一个处理单元就能够直接获取到该处理结果,对该处理结果继续进行处理,这种方案摆脱了控制单元,使得处理单元之间能够直接地、无障碍地进行合作,从而提高了通过神经网络中的算子进行数据处理的效率。
并且,由于等待指令用于指示停止执行数据处理操作,直至接收到数据处理指令时重新执行数据处理操作,使第一处理器执行等待指令,实现了通过数据处理指令控制第一处理器执行数据处理操作的时机。
并且,通过在第一存储器中的第一算子之前存储等待指令,使得第一处理单元在接收到数据处理指令的情况下,才能执行第一算子,从而实现了控制第一处理器执行数据处理操作的时机。
并且,考虑到神经网络中的每个算子匹配的处理单元可能不同,因此,在通过神经网络对输入数据处理之前就将神经网络中的算子划分至匹配的处理单元,并且确定划分给每个处理单元的多个算子的执行顺序,使得后续在获取到神经网络的输入数据时,处理单元能够直接基于划分给自己的多个算子以及确定好的算子的执行顺序来进行数据处理,而不是在基于神经网络进行数据处理的过程中,临时确定每个算子匹配的处理单元,如此能够提高数据处理效率。
并且,通过将等待指令插入在算子之前,且等待指令指示在接收到数据处理指令的情况下,执行数据处理操作,而将数据发送指令插入在算子之后,用于指示在当前的处理单元基于算子处理完成时,向其他处理单元发送处理结果以及数据处理指令,以使其他处理单元响应于该数据处理指令,对该处理结果进行处理,使得在没有控制单元的参与下,多个处理单元在共同基于神经网络进行数据处理时,能够避免数据冲突和资源冲突,实现了自同步机制。
并且,由于神经网络中的相邻算子之前具有数据依赖性,如果分配到任一处理单元的两个相邻的算子之间没有数据依赖性,说明与这两个算子中的前一算子具有数据依赖性的算子被分配到了其他处理单元中,因此,在存储器中相邻的至少两个算子之间存在关联关系的情况下,在至少两个算子中的第一个算子之前插入等待指令,在至少两个算子中的最后一个算子之后插入数据发送指令,使得具有数据依赖关系的两个算子能够被连续处理,从而保证神经网络中算子的正确执行。
并且,考虑到神经网络中的多个算子之间具有数据依赖性,因此,在执行完第一算子之后,将该第一算子的关联算子确定为第二算子,后续向第二算子匹配的处理单元发送第一算子的处理结果,则能够保证第二算子的执行能够依据第一算子的处理结果,保证神经网络中的算子的正确执行。
并且,第一处理单元无需基于总线将处理结果存储到公共存储单元中,再由第二处理单元基于总线从公共存储单元中读取该处理结果。而是基于与第二处理单元之间的直连通路,直接将该处理结果存储到第二处理单元的存储器中,使得第二处理单元的处理器在接收到数据处理指令的情况下,能够直接从自己的存储器中读取该处理结果,并进行处理,极大地缩短了数据的传输链路,从而提高了数据交互的效率。
并且,第一处理单元能够基于第三算子对处理结果进行处理,得到更新后的处理结果,然后再向第二处理单元发送更新后的处理结果,也就是说,同一处理单元能够连续执行多个匹配的算子,这样就保证了多个处理单元在基于神经网络共同进行数据处理时,各个处理单元能够执行与自己匹配的算子,且神经网络中的多个算子的执行顺序是准确的。
并且,由于等待指令用于指示停止执行数据处理操作,直至接收到数据处理指令时重新执行数据处理操作,使第二处理器执行等待指令,实现了通过数据处理指令控制第二处理器执行数据处理操作的时机。
并且,通过在第二存储器中的第二算子之前存储等待指令,使得第二处理单元在接收到数据处理指令的情况下,才能执行第二算子,从而实现了控制第二处理器执行数据处理操作的时机。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图8,其示出了本申请一个示例性实施例提供的数据处理装置的结构框图。该数据处理装置包括:
第一处理模块801,用于通过第一处理单元,基于神经网络的第一算子对输入数据进行处理,得到处理结果,第一处理单元与第一算子匹配;
数据发送模块802,用于基于第一处理单元与第二处理单元之间的直连通路,向第二处理单元发送处理结果,第二处理单元与神经网络的第二算子匹配;
第二处理模块803,用于通过第二处理单元,基于第二算子对处理结果进行处理。
本申请实施例提供的数据处理方案,在处理单元之间添加了直连通路,使得处理单元之间能够直接通过该直连通路进行数据交互,极大地提高了处理单元之间的交互效率,这种情况下,处理单元在基于匹配的算子进行数据处理后,将得到的处理结果,直接发送给另一个处理单元,另一个处理单元就能够直接获取到该处理结果,对该处理结果继续进行处理,这种方案摆脱了控制单元,使得处理单元之间能够直接地、无障碍地进行合作,从而提高了通过神经网络中的算子进行数据处理的效率。
在一种可能的实现方式中,第一处理单元包括第一处理器,
第一处理模块801,用于通过第一处理器,执行等待指令以等待数据处理指令;响应于接收到数据处理指令,基于第一算子对输入数据进行处理,得到处理结果。
在一种可能的实现方式中,第二处理单元包括第二处理器和第二存储器,
数据发送模块802,用于通过第一处理单元,基于直连通路,在第二存储器中存储处理结果,以及向第二处理器发送数据处理指令。
在一种可能的实现方式中,第二处理模块803,用于通过第二处理器,执行等待指令以等待来自第一处理单元的数据处理指令;响应于接收到来自第一处理单元的数据处理指令,基于第二算子对处理结果进行处理。
在一种可能的实现方式中,装置还包括:
单元确定模块,用于确定神经网络包含的多个算子中的每个算子匹配的处理单元;
数据存储模块,用于对于每个处理单元,按照处理单元匹配的多个算子在神经网络中的排列顺序,在处理单元的存储器中存储多个算子,在存储器中的至少一个算子之前插入等待指令,以及在至少一个算子之后插入数据发送指令;
其中,等待指令用于指示停止执行数据处理操作,直至接收到数据处理指令时重新执行数据处理操作,数据发送指令用于指示在当前的处理单元基于算子处理完成时,向其他处理单元发送处理结果以及数据处理指令。
在一种可能的实现方式中,数据存储模块,用于在存储器中相邻的至少两个算子之间存在关联关系的情况下,在至少两个算子中的第一个算子之前插入等待指令,在至少两个算子中的最后一个算子之后插入数据发送指令;其中存在关联关系的算子之间具有数据依赖性。
在一种可能的实现方式中,第一处理模块801,还用于通过第一处理单元,基于第三算子对处理结果进行处理,得到更新后的处理结果,第三算子与第一处理单元匹配。
在一种可能的实现方式中,装置还包括:
算子确定模块,用于获取算子关联关系,算子关联关系指示神经网络包含的算子的关联算子,关联算子的数据处理依赖于算子的处理结果;从算子关联关系中,查询第一算子的关联算子;将查询到的关联算子确定为第二算子。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器;该存储器存储有至少一条程序代码,该至少一条程序代码用于被处理器执行以实现如上述各个方法实施例提供的数据处理方法。
可选地,计算机设备中配置有芯片,例如,人工智能芯片,计算机设备能够通过该芯片执行本申请实施例中的数据处理方法。
在一些实施例中,该计算机设备为终端,请参考图9,其示出了本申请一个示例性实施例提供的终端的结构方框图。在一些实施例中,终端900是智能手机、平板电脑、可穿戴设备等能够作为无线站点接入无线局域网的终端。本申请中的终端900至少包括一个或多个以下部件:处理器910、存储器920和至少两个无线链路930。
在一些实施例中,处理器910包括一个或者多个处理核心。处理器910利用各种接口和线路连接整个终端900内的各个部分,通过运行或执行存储在存储器920内的程序代码,以及调用存储在存储器920内的数据,执行终端900的各种功能和处理结果。在一些实施例中,处理器910采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器910能集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。能够理解的是,上述调制解调器也能不集成到处理器910中,单独通过一块芯片进行实现。
在一些实施例中,该处理器910用于控制至少两个无线链路930的工作状况,相应的,该处理器910为集成了无线保真(Wireless Fidelity,Wi-Fi)芯片的处理器。其中,该Wi-Fi芯片为具有双Wi-Fi处理能力的芯片。例如,该Wi-Fi芯片为双频双发(Dual BandDual Concurrent,DBDC)芯片,或者,双频同步(Dual Band Simultaneous,DBS)芯片等。
在一些实施例中,存储器920包括随机存储器(Random Access Memory,RAM),在一些实施例中,存储器920包括只读存储器(Read-Only Memory,ROM)。在一些实施例中,该存储器920包括非瞬时性计算机可读介质(non-transitory computer-readable storagemedium)。存储器920可用于存储程序代码。存储器920可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据终端900的使用所创建的数据(比如音频数据、电话本)等。
在一些实施例中,存储器920中存储有不同的无线链路930的接收信标帧的接收方案。以及,不同的无线链路930连接的接入节点的标识、无线链路930的标识等。
该至少两个无线链路930用于连接不同的接入节点(Access Point,AP)。接收AP下发的下行数据。其中,该不同的接入节点为同一路由器中的接入节点或者不同路由器中的接入节点。
在一些实施例中,终端900中还包括显示屏。显示屏是用于显示用户界面的显示组件。在一些实施例中,该显示屏为具有触控功能的显示屏,通过触控功能,用户可以使用手指、触摸笔等任何适合的物体在显示屏上进行触控操作。在一些实施例中,显示屏通常设置在终端900的前面板。在一些实施例中,显示屏被设计成为全面屏、曲面屏、异型屏、双面屏或折叠屏。在一些实施例中,显示屏还被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合等,本实施例对此不加以限定。
除此之外,本领域技术人员能够理解,上述附图所示出的终端900的结构并不构成对终端900的限定,终端900包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端900中还包括麦克风、扬声器、输入单元、传感器、音频电路、模块、电源、蓝牙模块等部件,在此不再赘述。
在一些实施例中,该计算机设备为服务器,请参考图10,其示出了本申请一个示例性实施例提供的服务器的结构方框图,该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1001和一个或一个以上的存储器1002,其中,所述存储器1002中存储有至少一条程序代码,所述至少一条程序代码由所述处理器1001加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请还提供一种计算机可读存储介质,该存储介质存储有至少一条程序代码,该至少一条程序代码由该处理器加载并执行以实现如上各个实施例示出的数据处理方法。
根据本申请实施例的另一方面,提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片在终端上运行时,用于实现如上各个实施例示出的数据处理方法。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,该至少一条程序代码由该处理器加载并执行以实现如上各个实施例示出的数据处理方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的数据处理方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
通过第一处理单元,基于神经网络的第一算子对输入数据进行处理,得到处理结果,所述第一处理单元与所述第一算子匹配;
基于所述第一处理单元与第二处理单元之间的直连通路,向所述第二处理单元发送所述处理结果,所述第二处理单元与所述神经网络的第二算子匹配;
通过所述第二处理单元,基于所述第二算子对所述处理结果进行处理。
2.根据权利要求1所述的方法,其特征在于,所述第一处理单元包括第一处理器,所述通过第一处理单元,基于神经网络的第一算子对输入数据进行处理,得到处理结果,包括:
通过所述第一处理器,执行等待指令以等待数据处理指令;
响应于接收到所述数据处理指令,基于所述第一算子对所述输入数据进行处理,得到所述处理结果。
3.根据权利要求1所述的方法,其特征在于,所述第二处理单元包括第二处理器和第二存储器,所述基于所述第一处理单元与第二处理单元之间的直连通路,向所述第二处理单元发送所述处理结果,包括:
通过所述第一处理单元,基于所述直连通路,在所述第二存储器中存储所述处理结果,以及向所述第二处理器发送数据处理指令。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过所述第二处理器,执行等待指令以等待来自所述第一处理单元的数据处理指令;
响应于接收到来自所述第一处理单元的数据处理指令,基于所述第二算子对所述处理结果进行处理。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
确定所述神经网络包含的多个算子中的每个算子匹配的处理单元;
对于每个所述处理单元,按照所述处理单元匹配的多个算子在所述神经网络中的排列顺序,在所述处理单元的存储器中存储所述多个算子,在所述存储器中的至少一个算子之前插入等待指令,以及在至少一个算子之后插入数据发送指令;
其中,所述等待指令用于指示停止执行数据处理操作,直至接收到数据处理指令时重新执行数据处理操作,所述数据发送指令用于指示在当前的所述处理单元基于所述算子处理完成时,向其他处理单元发送处理结果以及所述数据处理指令。
6.根据权利要求5所述的方法,其特征在于,所述在所述存储器中的至少一个算子之前插入等待指令,以及在至少一个算子之后插入数据发送指令,包括:
在所述存储器中相邻的至少两个算子之间存在关联关系的情况下,在所述至少两个算子中的第一个算子之前插入所述等待指令,在所述至少两个算子中的最后一个算子之后插入所述数据发送指令;
其中存在所述关联关系的算子之间具有数据依赖性。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述通过第一处理单元,基于神经网络的第一算子对输入数据进行处理,得到处理结果之后,以及在向所述第二处理单元发送所述处理结果之前,所述方法还包括:
通过所述第一处理单元,基于第三算子对所述处理结果进行处理,得到更新后的所述处理结果,所述第三算子与所述第一处理单元匹配。
8.根据权利要求1-4任一项所述的方法,其特征在于,所述基于所述第一处理单元与第二处理单元之间的直连通路,向所述第二处理单元发送所述处理结果之前,所述方法还包括:
获取算子关联关系,所述算子关联关系指示所述神经网络包含的算子的关联算子,所述关联算子的数据处理依赖于所述算子的处理结果;
从所述算子关联关系中,查询所述第一算子的关联算子;
将查询到的关联算子确定为所述第二算子。
9.一种数据处理装置,其特征在于,所述装置包括:
第一处理模块,用于通过第一处理单元,基于神经网络的第一算子对输入数据进行处理,得到处理结果,所述第一处理单元与所述第一算子匹配;
数据发送模块,用于基于所述第一处理单元与第二处理单元之间的直连通路,向所述第二处理单元发送所述处理结果,所述第二处理单元与所述神经网络的第二算子匹配;
第二处理模块,用于通过所述第二处理单元,基于所述第二算子对所述处理结果进行处理。
10.根据权利要求9所述的装置,其特征在于,所述第一处理单元包括第一处理器,
所述第一处理模块,用于通过所述第一处理器,执行等待指令以等待数据处理指令;响应于接收到所述数据处理指令,基于所述第一算子对所述输入数据进行处理,得到所述处理结果。
11.根据权利要求9所述的装置,其特征在于,所述第二处理单元包括第二处理器和第二存储器,
所述数据发送模块,用于通过所述第一处理单元,基于所述直连通路,在所述第二存储器中存储所述处理结果,以及向所述第二处理器发送数据处理指令。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
所述第二处理模块,用于通过所述第二处理器,执行等待指令以等待来自所述第一处理单元的数据处理指令;响应于接收到来自所述第一处理单元的数据处理指令,基于所述第二算子对所述处理结果进行处理。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条程序代码,所述至少一条程序代码用于被所述处理器执行以实现如权利要求1至8任一所述的数据处理方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条程序代码,所述至少一条程序代码用于被处理器执行以实现如权利要求1至8任一所述的数据处理方法。
15.一种芯片,其特征在于,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片在终端上运行时,用于实现如权利要求1至8任一所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111596506.XA CN116362305A (zh) | 2021-12-24 | 2021-12-24 | 数据处理方法、装置、计算机设备及存储介质 |
PCT/CN2022/133413 WO2023116312A1 (zh) | 2021-12-24 | 2022-11-22 | 数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111596506.XA CN116362305A (zh) | 2021-12-24 | 2021-12-24 | 数据处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116362305A true CN116362305A (zh) | 2023-06-30 |
Family
ID=86901190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111596506.XA Pending CN116362305A (zh) | 2021-12-24 | 2021-12-24 | 数据处理方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116362305A (zh) |
WO (1) | WO2023116312A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549934B (zh) * | 2018-04-25 | 2020-06-19 | 福州瑞芯微电子股份有限公司 | 一种基于自动集群神经网络芯片组的运算方法和装置 |
US20200065654A1 (en) * | 2018-08-22 | 2020-02-27 | Electronics And Telecommunications Research Institute | Neural network fusion apparatus and modular neural network fusion method and matching interface generation method for the same |
CN109359732B (zh) * | 2018-09-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法 |
CN111782403B (zh) * | 2020-07-17 | 2022-04-19 | Oppo广东移动通信有限公司 | 数据处理方法、装置以及电子设备 |
CN111860820A (zh) * | 2020-07-31 | 2020-10-30 | 北京灵汐科技有限公司 | 神经网络算子的划分方法、装置及划分设备 |
-
2021
- 2021-12-24 CN CN202111596506.XA patent/CN116362305A/zh active Pending
-
2022
- 2022-11-22 WO PCT/CN2022/133413 patent/WO2023116312A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023116312A1 (zh) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107241689B (zh) | 一种耳机语音交互方法及其装置、终端设备 | |
CN112784989B (zh) | 推理系统、推理方法、电子设备及计算机存储介质 | |
US11853767B2 (en) | Inter-core data processing method, system on chip and electronic device | |
US11016769B1 (en) | Method and apparatus for processing information | |
CN109684008A (zh) | 卡片渲染方法、装置、终端及计算机可读存储介质 | |
CN112783506A (zh) | 一种模型运行方法及相关装置 | |
CN110955390A (zh) | 数据处理方法、装置和电子设备 | |
CN111045732A (zh) | 数据处理方法、芯片、设备及存储介质 | |
CN114168301A (zh) | 线程调度方法、处理器以及电子装置 | |
CN114222003A (zh) | 服务调用方法、系统、装置、设备及存储介质 | |
CN116721007B (zh) | 任务控制方法、系统及装置、电子设备和存储介质 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110597643B (zh) | 核间通信方法、处理器以及电子设备 | |
CN111611065A (zh) | 机器学习算法的调用方法、装置、存储介质及电子设备 | |
CN116362305A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN113144606B (zh) | 虚拟对象的技能触发方法及相关设备 | |
CN113286349B (zh) | 个人热点连接方法、装置、终端及存储介质 | |
CN115269013A (zh) | 一种支持并发处理多个计算加速引擎的异步计算方法及装置 | |
CN111061518B (zh) | 基于驱动节点的数据处理方法、系统、终端设备和存储介质 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN113849951A (zh) | 芯片仿真方法、装置、设备、系统及存储介质 | |
CN111813407A (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
CN112073505A (zh) | 在云服务器上进行卸载的方法、控制装置、存储介质 | |
CN117112044B (zh) | 基于网卡的指令处理方法、装置、设备和介质 | |
CN116204201B (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 |