CN111338695A - 基于流水线技术的数据处理方法及相关产品 - Google Patents
基于流水线技术的数据处理方法及相关产品 Download PDFInfo
- Publication number
- CN111338695A CN111338695A CN201811555572.0A CN201811555572A CN111338695A CN 111338695 A CN111338695 A CN 111338695A CN 201811555572 A CN201811555572 A CN 201811555572A CN 111338695 A CN111338695 A CN 111338695A
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- intermediate result
- input
- inference
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
Abstract
本申请涉及一种基于流水线技术的数据处理方法及相关产品,不同处理器执行不同的运算任务,包括第一数据处理操作、第二数据处理操作以及第三数据处理操作,实现了第一处理器和第二处理器同时为多个输入数据的不同数据处理步骤进行工作,减少了第一处理器的运算量,提高了处理数据的效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种基于流水线技术的数据处理方法及相关产品。
背景技术
随着数据处理技术的飞速发展,数据处理的方式越来越多。针对不同的技术领域会有不同的数据处理方式,比如,在待处理数据的数据量非常之大的神经网络技术领域,出现了利用神经网络离线模型对神经网络数据进行数据处理的处理方式。其中,神经网络离线模型是一种神经网络的执行方式,首先获取原始网络的模型数据集及模型结构参数,模型数据集包括原始网络中各个计算节点对应的网络权值,模型结构参数包括原始网络中多个计算节点的连接关系及各个计算节点的计算属性;再根据原始网络的模型数据集和模型结构参数运行原始网络,获得原始网络中各个计算节点对应的指令;最后根据原始网络的各个计算节点对应的网络权值及指令,生成原始网络对应的神经网络离线模型。
在传统技术中,针对这些待处理数据的数据量非常之大的技术领域,其数据处理的工作流程多是在CPU(中央处理器)中执行。然而,随着待处理数据的数据量日益增大,采用传统技术存在效率低下的问题。
发明内容
基于此,有必要针对上述效率低下的技术问题,提供一种能够提高数据处理效率的基于流水线技术的数据处理方法及相关产品。
一种基于流水线技术的数据处理方法,所述方法包括:
第一处理器对当前输入数据进行第一数据处理操作,得到当前第一中间结果,之后获取下一输入数据,并对所述下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;
第二处理器获取所述当前第一中间结果,并对所述当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后获取所述下一输入数据对应的下一第一中间结果,并对所述下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;
所述第一处理器获取所述当前第二中间结果,并对所述当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后获取所述下一第一中间结果对应的下一第二中间结果,并对所述下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;
其中,所述第一处理器对所述下一输入数据进行第一数据处理操作的开始时间不能晚于所述第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。
在其中一个实施例中,所述第一数据处理操作包括数据预处理,和/或所述第二数据处理操作包括数据推理,和/或所述第三数据处理操作包括数据后处理;
其中,若第二数据处理操作包括数据推理,则所述第二处理器获取所述当前第一中间结果,并对所述当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后获取所述下一输入数据对应的下一第一中间结果,并对所述下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作,包括:
第二处理器获取所述当前第一中间结果,并使用神经网络离线模型对所述当前第一中间结果进行数据推理,得到当前推理数据,之后获取所述下一输入数据对应的下一第一中间结果,并使用神经网络离线模型对所述下一第一中间结果进行数据推理,直至完成最后一个第一中间结果的数据推理。
在其中一个实施例中,所述第一中间结果包括预处理数据,所述方法还包括:
所述第一处理器查找状态为空闲的输入存储空间,并将预处理数据写入所述空闲的输入存储空间;其中,所述输入存储空间的数量为多个;所述空闲的输入存储空间写入所述预处理数据后,所述空闲的输入存储空间的状态更新为占用状态。
在其中一个实施例中,所述方法还包括:
所述第二处理器查找所述状态为占用的输入存储空间,并从所述占用的输入存储空间中读取所述预处理数据;其中,所述第二处理器读取所述预处理数据后,所述占用的输入存储空间的状态更新为空闲状态。
在其中一个实施例中,所述方法还包括:
所述第二处理器查找状态为空闲的输出存储空间,并将推理数据写入所述空闲的输出存储空间;其中,所述输出存储空间的数量为多个;所述空闲的输出存储空间写入所述推理数据后,所述空闲的输出存储空间的状态更新为占用状态。
在其中一个实施例中,所述方法还包括:
所述第一处理器查找所述状态为占用的输出存储空间,并从所述占用的输出存储空间中读取所述推理数据;其中,所述第一处理器读取所述推理数据后,所述占用的输出存储空间的状态更新为空闲状态。
在其中一个实施例中,所述输入存储空间为两个,所述两个输入存储空间构成乒乓结构;和/或
所述输出存储空间为两个,所述两个输出存储空间构成乒乓结构。
在其中一个实施例中,所述方法还包括:
所述第一处理器获取所述预处理数据的属性信息以及所述多个输入存储空间的属性信息;根据所述预处理数据的属性信息和所述多个输入存储空间的属性信息,确定与所述预处理数据相匹配的输入存储空间,并将所述预处理数据写入所述匹配的输入存储空间。
在其中一个实施例中,所述方法还包括:
所述第二处理器获取所述推理数据的属性信息以及所述多个输出存储空间的属性信息;根据所述推理数据的属性信息和所述多个输出存储空间的属性信息,确定与所述推理数据相匹配的输出存储空间,并将所述推理数据写入所述匹配的输出存储空间。
在其中一个实施例中,数据的属性信息包括数据大小、数据类型和数据格式中的至少一个,对应地,存储空间的属性信息包括存储空间大小、存储空间所能存储的数据类型和存储空间所能存储的数据格式中的至少一个。
在其中一个实施例中,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
一种基于流水线技术的数据处理装置,所述装置包括:
输入数据处理模块,用于第一处理器对当前输入数据进行第一数据处理操作,得到当前第一中间结果,之后获取下一输入数据,并对所述下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;
第一中间结果处理模块,用于第二处理器获取所述当前第一中间结果,并对所述当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后获取所述下一输入数据对应的下一第一中间结果,并对所述下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;
输出结果确定模块,用于所述第一处理器获取所述当前第二中间结果,并对所述当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后获取所述下一第一中间结果对应的下一第二中间结果,并对所述下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;
其中,所述第一处理器对所述下一输入数据进行第一数据处理操作的开始时间不能晚于所述第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。
一种基于流水线技术的数据处理方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述通用处理器接收输入数据,并对输入数据进行预处理得到预处理数据;
所述通用处理器接收所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理得到的推理数据,并对所述推理数据进行后处理,得到后处理数据,并且所述通用处理器对所述推理数据进行后处理得到后处理数据结束之前,再次执行接收输入数据的步骤。
一种基于流水线技术的数据处理方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述人工智能处理器接收预处理数据,并通过神经网络离线模型对所述预处理数据进行推理,得到推理数据;其中,所述预处理数据为所述通用处理器接收输入数据并对输入数据预处理获得;
所述人工智能处理器将所述推理数据输入至所述通用处理器,以使所述通用处理器对所述推理数据进行后处理,得到后处理数据;
其中,所述通用处理器对下一输入数据进行预处理的开始时间不能晚于所述通用处理器对所述推理数据进行后处理的结束时间。
一种基于流水线技术的数据处理方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述通用处理器接收输入数据,并对输入数据进行预处理得到预处理数据;
所述通用处理器接收所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理得到的推理数据;并且所述通用处理器在所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理时,并行执行再次接收输入数据,并对再次接收的输入数据进行预处理的步骤,以及对所述推理数据进行后处理,得到后处理数据。
一种基于流水线技术的数据处理方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述人工智能处理器接收预处理数据,并通过神经网络离线模型对所述预处理数据进行推理,得到推理数据;其中,所述预处理数据为所述通用处理器接收输入数据并对输入数据处理获得;
所述人工智能处理器将所述推理数据输入所述通用处理器,以使所述通用处理器对所述推理数据进行后处理,得到后处理数据;
其中,所述人工智能处理器对所述预处理数据进行推理时,所述通用处理器并行执行再次接收输入数据并对再次接收输入数据进行预处理的步骤以及对所述人工智能处理器输入的所述推理数据进行后处理的步骤。
一种板卡,应用于异构计算架构中,所述板卡包括:人工智能处理器,所述人工智能处理器用于执行上述的方法。
一种主板,应用于异构计算架构中,所述主板包括:通用处理器和上述的板卡。
一种电子设备,应用于异构计算架构中,所述电子设备包括上述的主板。
上述基于流水线技术的数据处理方法及相关产品,首先第一处理器对当前输入数据进行第一数据处理操作得到当前第一中间结果,之后对下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;接着第二处理器获取当前第一中间结果,并对当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后对下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;最后第一处理器获取当前第二中间结果,并对当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后对下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;其中,第一处理器对下一输入数据进行第一数据处理操作的开始时间不能晚于第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。可以理解,本申请将数据处理的工作流程分为三级流水线,在第一级流水线中,第一处理器执行第一数据处理操作步骤;在第二级流水线中,第二处理器执行第二数据处理操作步骤;在第三级流水线中,第一处理器执行第三数据处理操作步骤。这样,实现了第一处理器和第二处理器同时为多个输入数据的不同数据处理步骤进行工作,高效地进行不同的数据处理步骤在不同处理器上执行,减少了第一处理器的运算量,提高了处理数据的效率。
附图说明
图1为一个实施例中数据处理系统的结构示意图;
图2为另一个实施例中数据处理系统的结构示意图;
图3为一个实施例中基于流水线技术的数据处理方法的流程示意图;
图4为另一个实施例中基于流水线技术的数据处理方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于流水线技术的数据处理方法,可以应用于如图1所示的数据处理系统10中。其中,该数据处理系统10包括第一处理器110和第二处理器120,该第一处理器110和该第二处理器120连接。需要清楚,以将该数据处理方法应用到神经网络离线模型的工作流程为例,本申请实施例将神经网络离线模型的工作流程分为三个步骤:数据预处理(DataPreProcessor)步骤、数据推理(Inferencer)步骤和数据后处理(PostProcessor)步骤。其中,第一处理器110用于执行数据预处理步骤和数据后处理步骤,第二处理器120执行数据推理步骤。
具体地,在第一级流水线中,第一处理器110执行数据预处理(DataPreProcessor)步骤。可选地,数据预处理包括导入原始数据、格式转换、均值处理等。在第二级流水线中,第二处理器120执行数据推理步骤。可选地,数据推理包括离线模型导入、内存申请数据拷贝、推理计算等。在第三级流水线中,第一处理器110执行数据后处理步骤。可选地,数据后处理包括数据拷贝、结果计算等。通过流水线技术对数据预处理步骤、数据推理步骤和数据后处理步骤进行重新排布,使其更高效地执行。
在一个实施例中,神经网络离线模型流水执行处理的3个步骤:数据预处理(DataPreProcessor)步骤、数据推理(Inferencer)步骤和数据后处理(PostProcessor)步骤的流水排布如表1所示:
| D(1) | D(2) | D(3) | … | D(n) | D(n+1) | D(n+2) | … | D(m) | ||
| I(1) | I(2) | … | I(n-1) | I(n) | I(n+1) | … | I(m-1) | I(m) | ||
| P(1) | … | P(n-2) | P(n-1) | P(n) | … | P(m-2) | P(m-1) | P(m) |
表1
其中,D(1)代表第一处理器对第一个输入数据进行预处理步骤,I(1)代表第二处理器对第一个预处理数据进行数据推理步骤,P(1)代表第一处理器对第一个推理数据进行后处理步骤,依次类推,按照流水线技术,直至完成第m个输入数据的全部工作流程。
从表1中可以看出,第二处理器120在进行第n个预处理数据的数据推理时,第一处理器110同时在进行第n+1个输入数据的数据预处理和第n-1个推理数据的数据后处理。在本实施例中,由于采用了流水线技术,在硬件条件有空闲的前提下,通过对神经网络离线模型的工作流程进行划分,让第一处理器110和第二处理器120处于填满状态,可以理解,整个数据处理过程为:填充流水线-流水线填满-流水线排空。在流水线填满步骤,第一处理器110和第二处理器120都处于工作状态,理论上性能为非流水线的3倍,提高了网络处理数据的效率。
需要清楚的是,上述表1所示的神经网络离线模型的三个数据处理步骤的流水排布仅仅是以示例性的形式示出了其中一种排布情况,对于其他排布情况,举个简单的例子,例如,第一处理器110在进行第1个推理数据的数据后处理时,第一处理器110同时进行第2个输入数据的数据预处理。这种方式,同样实现了第一处理器110和第二处理器120同时为多个输入数据的不同数据处理步骤进行工作,减少了第一处理器110的运算量,高效地进行神经网络离线模型在异构处理器上执行,提高了网络处理数据的效率。本申请对于神经网络离线模型的三个数据处理步骤的流水排布并不做限定,只要能实现第一处理器110和第二处理器120同时为多个输入数据的不同数据处理步骤进行工作的目的即可。
可选地,第一处理器110可以是CPU等通用处理器,也可以为其他类型的处理器。第二处理器120可以作为第一处理器110的协处理器。可选地,第二处理器120可以是IPU(Intelligence Processing Unit,智能处理器)或NPU(Neural-network Process Unit,神经网络处理器)等人工智能处理器;也可以是GPU等专用智能处理器;还可以是CPU等通用处理器。
其中,当处理器的类型为IPU(Intelligence Processing Unit,智能处理器)时,该智能处理器包括一个主处理电路和多个从处理电路。在一个实施例中,智能处理器还包括:树型模块,所述树型模块包括:一个根端口和多个支端口,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令。
在另一个实施例中,所述智能处理器还包括一个或多个分支处理电路,每个分支处理电路连接至少一个从处理电路,所述主处理电路,具体用于确定所述输入神经元为广播数据,权值为分发数据块,将一个分发数据输入神经元分配成多个数据块,将所述多个数据块中的至少一个数据块、权值广播数据以及多个运算指令中的至少一个运算指令发送给所述分支处理电路;所述分支处理电路,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值广播数据以及运算指令;所述多个从处理电路,用于依据该运算指令对接收到的数据块以及广播数据权值执行运算得到中间结果,并将中间结果传输给所述分支处理电路;所述主处理电路,用于将分支处理电路发送的中间结果进行后续处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
在又一个实施例中,所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个基础电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路;所述K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及指令的转发;所述主处理电路,用于确定所述输入神经元为广播数据,权值为分发数据,将一个输入数据分发数据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述K个从处理电路;所述K个从处理电路,用于转换所述主处理电路与所述多个从处理电路之间的数据;所述多个从处理电路,用于依据该运算指令对接收到的数据块执行运算得到中间结果,并将运算结果传输给所述K个从处理电路;所述主处理电路,用于将所述K个从处理电路发送的中间结果进行后续处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
在一个实施例中,请参阅图2,第一处理器110设置于主设备(Host设备)10a中,第二处理器120设置于辅助设备(Device设备)10b中。
在一个实施例中,数据处理系统10还包括预处理数据存储单元130和推理数据存储单元140,该预处理数据存储单元130分别连接第一处理器110和第二处理器120,该推理数据存储单元140分别连接第一处理器110和第二处理器120,预处理数据存储单元130包括多个输入存储空间,推理数据存储单元140包括多个输出存储空间。可选地,输入存储空间和输出存储空间各开辟乒乓缓存。其中,预处理数据存储单元130或推理数据存储单元140可以包括:寄存器、缓存中的一个或任意组合。具体地,所述缓存,用于存储运算指令;所述寄存器,用于存储神经网络离线模型、数据和标量;所述缓存为高速暂存缓存。可选地,预处理数据存储单元130和推理数据存储单元140设置于辅助设备(Device设备)10b中。
在一个实施例中,数据处理系统10还包括状态更新单元,状态更新单元分别连接第一处理器110、第二处理器120、预处理数据存储单元130和推理数据存储单元140。该状态更新单元用于更新预处理数据存储单元130中输入存储空间的状态,以及更新推理数据存储单元140中输出存储空间的状态。可选地,输入存储空间的状态包括占用状态和空闲状态,输出存储空间的状态也包括占用状态和空闲状态。其中,占用状态是指存储有数据的状态,空闲状态是指未存储数据的状态。可选地,状态更新单元设置于辅助设备(Device设备)10b中。
作为一种可能的实施方式,以图2中的数据处理系统10为例进行详细说明。其中,该数据处理系统10包括主设备(Host设备)10a和辅助设备(Device设备)10b,该主设备(Host设备)10a包括第一处理器110,该辅助设备(Device设备)10b包括第二处理器120、预处理数据存储单元130、推理数据存储单元140以及状态更新单元。具体地,请结合表1一起阅读,主设备(Host设备)10a在完成第n+1个输入数据的预处理后,先获取辅助设备(Device设备)10b中状态为空闲的输入缓存,进而主设备(Host设备)10a将第n+1个预处理数据拷贝至该空闲的输入缓存中,同时辅助设备(Device设备)10b将该输入缓存的缓存状态更新为占用状态。辅助设备(Device设备)10b在进行第n个预处理数据的数据推理前,先查找状态为占用的输入缓存和状态为空闲的输出缓存,再从占用的输入缓存中读取第n个预处理数据,并将数据推理后的第n个推理数据实时存储至空闲的输出缓存中,并将该输入缓存的缓存状态更新为空闲状态、输出缓存的缓存状态更新为占用状态。主设备(Host设备)10a在进行第n-1个推理数据的后处理前,先查找辅助设备(Device设备)10b中状态为占用的输出缓存,然后将该输出缓存中的第n-1个推理数据拷贝至主设备(Host设备)10a的内存中,在辅助设备(Device设备)10b将该输出缓存设置为空闲之后,主设备(Host设备)10a再进行数据后处理。本实施方式将乒乓操作技术与流水线技术配合使用,能够更高效地对片上空间进行管理。
在一个实施例中,提供了一种基于流水线技术的数据处理方法,以该方法应用于图1中的数据处理系统10为例进行说明,包括以下步骤:
第一处理器对当前输入数据进行第一数据处理操作,得到当前第一中间结果,之后获取下一输入数据,并对所述下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;
第二处理器获取所述当前第一中间结果,并对所述当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后获取所述下一输入数据对应的下一第一中间结果,并对所述下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;
所述第一处理器获取所述当前第二中间结果,并对所述当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后获取所述下一第一中间结果对应的下一第二中间结果,并对所述下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;
其中,所述第一处理器对所述下一输入数据进行第一数据处理操作的开始时间不能晚于所述第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。
具体地,本实施例提供的数据处理方法,首先第一处理器对当前输入数据进行第一数据处理操作得到当前第一中间结果,之后对下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;接着第二处理器获取当前第一中间结果,并对当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后对下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;最后第一处理器获取当前第二中间结果,并对当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后对下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;其中,第一处理器对下一输入数据进行第一数据处理操作的开始时间不能晚于第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。可以理解,本申请将数据处理的工作流程分为三级流水线,在第一级流水线中,第一处理器执行第一数据处理操作步骤;在第二级流水线中,第二处理器执行第二数据处理操作步骤;在第三级流水线中,第一处理器执行第三数据处理操作步骤。这样,实现了第一处理器和第二处理器同时为多个输入数据的不同数据处理步骤进行工作,高效地进行不同的数据处理步骤在不同处理器上执行,减少了第一处理器的运算量,提高了处理数据的效率。
在一个实施例中,将基于流水线技术的数据处理方法应用于神经网络离线模型的工作流程中,需要清楚的是,本实施例将神经网络离线模型的工作流程分为数据预处理步骤、数据推理步骤以及数据后处理步骤。在上述实施例的基础上,可对应得到,第一数据处理操作包括数据预处理,和/或第二数据处理操作包括数据推理,和/或第三数据处理操作包括数据后处理。如图3所示,本实施例包括如下步骤:
S202,第一处理器对当前输入数据进行预处理得到当前预处理数据,之后获取下一输入数据,并对所述下一输入数据进行预处理,直至完成最后一个输入数据的预处理。
其中,输入数据可包括图像、音频或者文本等格式的数据。图像包括静态图片、组成视频的图片、视频等。音频包括人声音频、乐曲、噪声等。文本包括结构化文本、各种语言的文本字符等。可选地,输入数据为输入神经元数据。
具体地,本实施例采用流水线技术,其需要输入数据的数量为多个,可以是10个输入数据,也可以是100个输入数据,还可以是更多,输入数据的数量可根据实际需求进行划分,本实施例对此并不做限定。第一处理器首先获取第一个输入数据,对第一个输入数据进行预处理,得到第一个预处理数据,在将第一个预处理数据输出后,立即获取下一个输入数据,或者在输出后的预设时间内获取下一个输入数据,并执行下一个输入数据的预处理,直到完成最后一个输入数据的预处理。其中,输出后的预设时间需要满足第一处理器对下一输入数据进行预处理的开始时间不能晚于下述描述的第一处理器对当前推理数据进行后处理的结束时间。需要清楚的是,任一个输入数据都可以作为当前输入数据,其下一个输入数据为下一输入数据。
可选地,以图像为例,第一处理器获取第一个输入图像数据,对该输入图像数据进行格式转换、均值处理等预处理操作,得到第一个预处理图像数据。之后,立即获取下一个输入图像数据,并对下一个输入图像数据进行格式转换、均值处理等预处理操作,得到下一个预处理图像数据,以此重复执行其他输入图像数据的预处理,直到完成最后一个输入图像数据的预处理。
S204,第二处理器获取所述当前预处理数据,并使用神经网络离线模型对所述当前预处理数据进行数据推理,得到当前推理数据,之后获取所述下一输入数据对应的下一预处理数据,并对所述下一预处理数据进行数据推理,直至完成最后一个预处理数据的数据推理。
具体地,第二处理器首先获取第一个预处理数据,并获取对应的神经网络离线模型,根据该神经网络离线模型对第一个预处理数据进行数据推理,得到第一个推理数据,在将第一个推理数据输出后,立即获取下一个预处理数据,或者在输出后的预设时间内获取下一个预处理数据,并根据该神经网络离线模型执行下一个预处理数据的数据推理,直到完成最后一个预处理数据的数据推理。其中,输出后的预设时间需要满足第一处理器对下一输入数据进行预处理的开始时间不能晚于下述描述的第一处理器对当前推理数据进行后处理的结束时间。需要清楚的是,任一个预处理数据都可以作为当前预处理数据,其下一个预处理数据为下一预处理数据。
可选地,再次以图像为例,第二处理器获取第一个预处理图像数据,并获取对应的神经网络离线模型,根据该神经网络离线模型对第一个预处理图像数据进行内存申请数据拷贝等数据推理计算,得到第一个推理图像数据。之后,立即获取下一个预处理图像数据,并根据该神经网络离线模型对下一个预处理图像数据进行内存申请数据拷贝等数据推理计算,得到下一个推理图像数据。以此重复执行其他预处理图像数据的数据推理,直到完成最后一个预处理图像数据的数据推理。
S206,所述第一处理器获取所述当前推理数据,并对所述当前推理数据进行后处理,得到当前后处理数据,之后获取所述下一预处理数据对应的下一推理数据,并对所述下一推理数据进行后处理,直至完成最后一个推理数据的后处理。
具体地,基于上述S202和S204的过程,第一处理器首先获取第一个推理数据,并对第一个推理数据进行后处理,得到第一个后处理数据,在将第一个后处理数据输出后,立即获取下一个推理数据,或者在输出后的预设时间内获取下一个推理数据,并执行下一个推理数据的后处理,直到完成最后一个推理数据的后处理。其中,输出后的预设时间需要满足第一处理器对下一输入数据进行预处理的开始时间不能晚于下述描述的第一处理器对当前推理数据进行后处理的结束时间。需要清楚的是,任一个推理数据都可以作为当前推理数据,其下一个推理数据为下一推理数据。
可选地,再次以图像为例,第一处理器获取第一个推理图像数据,对该推理图像数据进行数据拷贝、结果计算等后处理操作,得到第一个后处理数据。之后,立即获取下一个推理图像数据,并对下一个推理图像数据进行数据拷贝、结果计算等后处理操作,得到下一个后处理数据,以此重复执行其他推理图像数据的后处理,直到完成最后一个推理图像数据的后处理。
上述基于流水线技术的数据处理方法,首先第一处理器对当前输入数据进行预处理得到当前预处理数据,之后对下一输入数据进行预处理,直至完成最后一个输入数据的预处理;接着第二处理器获取当前预处理数据,并使用神经网络离线模型对当前预处理数据进行数据推理,得到当前推理数据,之后对下一预处理数据进行数据推理,直至完成最后一个预处理数据的数据推理;最后第一处理器获取当前推理数据,并对当前推理数据进行后处理,得到当前后处理数据,之后获取对下一推理数据进行后处理,直至完成最后一个推理数据的后处理;其中,第一处理器对下一输入数据进行预处理的开始时间不能晚于第一处理器对当前推理数据进行后处理的结束时间。可以理解,本申请将神经网络离线模型的工作流程分为三级流水线,在第一级流水线中,第一处理器执行数据预处理步骤;在第二级流水线中,第二处理器执行数据推理步骤;在第三级流水线中,第一处理器执行数据后处理步骤。这样,实现了第一处理器和第二处理器同时为多个输入数据的不同数据处理步骤进行工作,高效地进行神经网络离线模型在异构处理器上执行,减少了第一处理器的运算量,提高了网络处理数据的效率。
在一个实施例中,请参阅图4,图4为另一个实施例中基于流水线技术的数据处理方法的流程示意图。本实施例涉及第一处理器将预处理数据写入空闲的输入存储空间的具体过程。在上述实施例的基础上,所述方法还包括以下步骤:
S302,所述第一处理器查找状态为空闲的输入存储空间,并将预处理数据写入所述空闲的输入存储空间。
其中,所述输入存储空间的数量为多个;所述空闲的输入存储空间写入所述预处理数据后,所述空闲的输入存储空间的状态更新为占用状态。
具体地,输入存储空间的数量为多个,例如,输入存储空间的数量为2个,该两个输入存储空间构成乒乓结构。当然,输入存储空间的数量可以为3个、4个或5个,还可以是更多,输入存储空间的数量可根据实际需求进行划分,本实施例对此并不做限定。输入存储空间的状态可分为空闲状态和占用状态,空闲状态为输入存储空间未存储有预处理数据,占用状态为输入存储空间存储有预处理数据。可选地,输入存储空间的状态可用状态标识进行区分。
可选地,乒乓结构的输入存储空间的工作方式可以为:乒乓结构的两个输入存储空间交替地被读(即读取预处理数据)和被写(即存储预处理数据)。读写的过程在两个输入存储空间之间交替进行。一开始两个输入存储空间中的内容均无效,即空闲状态,其不能被读;然后在其中一个输入存储空间(多是乒结构的输入存储空间先被写)中写入前一个预处理数据,完毕后该输入存储空间变为有效状态;然后在另一个输入存储空间中写入后一个预处理数据使另一个输入存储空间变为有效状态,与此同时,可以从所述其中一个输入存储空间中读取前一个预处理数据,读完后该输入存储空间变成空闲状态,其又可以读入其他预处理数据;之后,所述另一个输入存储空间中的后一个预处理数据被读,该输入存储空间也变为空闲状态,如此循环……由此可见对于每个输入存储空间来说,可能的状态有四种并按如下顺序循环往复地转换:可读=>在读=>可写=>在写=>可读=>……
当第一处理器获得预处理数据时,先查找状态为空闲的输入存储空间,将其确定为空闲输入存储空间,第一处理器在确定有空闲输入存储空间后,将预处理数据写入该空闲输入存储空间中进行存储,以便于后续的调取。其中,该空闲输入存储空间写入预处理数据后,空闲输入存储空间的状态由状态更新单元更新为占用状态。
本实施例中,通过将预处理数据写入空闲输入存储空间中进行保存,防止数据处理过程中发生错误时,还可以再次从该输入存储空间中获取该预处理数据,保证了数据的准确性。
在一个实施例中,涉及第二处理器从占用的输入存储空间中读取预处理数据的具体过程。在上述实施例的基础上,所述方法还包括以下步骤:
S304,所述第二处理器查找所述状态为占用的输入存储空间,并从所述占用的输入存储空间中读取所述预处理数据;其中,所述第二处理器读取所述预处理数据后,所述占用的输入存储空间的状态更新为空闲状态。
具体地,在第二处理器进行预处理数据的数据推理前,第二处理器先查找状态为占用的输入存储空间,将其确定为占用输入存储空间,第二处理器在确定有占用输入存储空间后,从该占用输入存储空间中读取预处理数据。其中,该第二处理器读取预处理数据后,占用输入存储空间的状态由状态更新单元更新为空闲状态。
在一个实施例中,涉及第二处理器将推理数据写入空闲的输出存储空间的具体过程。在上述实施例的基础上,所述方法还包括以下步骤:
S306,所述第二处理器查找状态为空闲的输出存储空间,并将推理数据写入所述空闲的输出存储空间;其中,所述输出存储空间的数量为多个;所述空闲的输出存储空间写入所述推理数据后,所述空闲的输出存储空间的状态更新为占用状态。
具体地,输出存储空间的数量为多个,例如,输出存储空间的数量为2个,该两个输出存储空间构成乒乓结构。当然,输出存储空间的数量可以为3个、4个或5个,还可以是更多,输出存储空间的数量可根据实际需求进行划分,本实施例对此并不做限定。输出存储空间的状态可分为空闲状态和占用状态,空闲状态为输出存储空间未存储有推理数据,占用状态为输出存储空间存储有推理数据。可选地,输出存储空间的状态可用状态标识进行区分。
可选地,乒乓结构的输出存储空间的工作方式可以为:乒乓结构的两个输出存储空间交替地被读(即读取推理数据)和被写(即存储推理数据)。读写的过程在两个输出存储空间之间交替进行。一开始两个输出存储空间中的内容均无效,即空闲状态,其不能被读;然后在其中一个输出存储空间(多是乒结构的输出存储空间先被写)中写入前一个推理数据,完毕后该输出存储空间变为有效状态;然后在另一个输出存储空间中写入后一个推理数据使另一个输出存储空间变为有效状态,与此同时,可以从所述其中一个输出存储空间中读取前一个推理数据,读完后该输出存储空间变成空闲状态,其又可以读入其他推理数据;之后,所述另一个输出存储空间中的后一个推理数据被读,该输出存储空间也变为空闲状态,如此循环……由此可见对于每个输出存储空间来说,可能的状态有四种并按如下顺序循环往复地转换:可读=>在读=>可写=>在写=>可读=>……
当第二处理器获得推理数据时,先查找状态为空闲的输出存储空间,将其确定为空闲输出存储空间,第一处理器在确定有空闲输出存储空间后,将推理数据写入该空闲输出存储空间中进行存储,以便于后续的调取。其中,该空闲输出存储空间写入推理数据后,空闲输出存储空间的状态由状态更新单元更新为占用状态。
本实施例中,通过将推理数据写入空闲输出存储空间中进行保存,防止数据处理过程中发生错误时,还可以再次从该输出存储空间中获取该推理数据,保证了数据的准确性。
在一个实施例中,涉及第一处理器从占用的输出存储空间中读取推理数据的具体过程。在上述实施例的基础上,所述方法还包括以下步骤:
S308,所述第一处理器查找所述状态为占用的输出存储空间,并从所述占用的输出存储空间中读取所述推理数据;其中,所述第一处理器读取所述推理数据后,所述占用的输出存储空间的状态更新为空闲状态。
具体地,在第一处理器进行推理数据的后处理前,第一处理器先查找状态为占用的输出存储空间,将其确定为占用输出存储空间,第一处理器在确定有占用输出存储空间后,从该占用输出存储空间中读取推理数据。其中,该第一处理器读取推理数据后,占用输出存储空间的状态由状态更新单元更新为空闲状态。
在其中一个实施例中,所述方法还包括:
S402,所述第一处理器获取所述预处理数据的属性信息以及所述多个输入存储空间的属性信息;根据所述预处理数据的属性信息和所述多个输入存储空间的属性信息,确定与所述预处理数据相匹配的输入存储空间,并将所述预处理数据写入所述匹配的输入存储空间。
具体地,预处理数据的属性信息是指能表征预处理数据性质的信息,输入存储空间的属性信息是指能表征输入存储空间性质的信息。可选地,预处理数据的属性信息包括预处理数据大小、预处理数据类型和预处理数据格式中的至少一个,对应地,输入存储空间的属性信息包括输入存储空间大小、输入存储空间所能存储的数据类型和输入存储空间所能存储的数据格式中的至少一个。在第一处理器获取到预处理数据的属性信息和多个输入存储空间的属性信息后,第一处理器会根据预处理数据的属性信息和多个输入存储空间的属性信息,确定与预处理数据相匹配的输入存储空间,这里的“匹配”可以是预处理数据大小不大于输入存储空间大小,也可以是预处理数据类型与输入存储空间所能存储的数据类型相同,还可以是预处理数据格式与输入存储空间所能存储的数据格式相同,或者上述内容的组合。
当第一处理器确定有与预处理数据相匹配的输入存储空间时,第一处理器将预处理数据写入该匹配的输入存储空间。
在其中一个实施例中,所述方法还包括:
所述第二处理器获取所述推理数据的属性信息以及所述多个输出存储空间的属性信息;根据所述推理数据的属性信息和所述多个输出存储空间的属性信息,确定与所述推理数据相匹配的输出存储空间,并将所述推理数据写入所述匹配的输出存储空间。
具体地,推理数据的属性信息是指能表征推理数据性质的信息,输出存储空间的属性信息是指能表征输出存储空间性质的信息。可选地,推理数据的属性信息包括推理数据大小、推理数据类型和推理数据格式中的至少一个,对应地,输出存储空间的属性信息包括输处存储空间大小、输出存储空间所能存储的数据类型和输出存储空间所能存储的数据格式中的至少一个。在第二处理器获取到推理数据的属性信息和多个输出存储空间的属性信息后,第二处理器会根据推理数据的属性信息和多个输出存储空间的属性信息,确定与推理数据相匹配的输出存储空间,这里的“匹配”可以是推理数据大小不大于输出存储空间大小,也可以是推理数据类型与输出存储空间所能存储的数据类型相同,还可以是推理数据格式与输出存储空间所能存储的数据格式相同,或者上述内容的组合。
当第二处理器确定有与推理数据相匹配的输出存储空间时,第二处理器将推理数据写入该匹配的输出存储空间。
应该理解的是,虽然图3-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-4中的至少一部分步骤可以包括多个子步骤或者多个步骤,这些子步骤或者步骤并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者步骤的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者步骤的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种基于流水线技术的数据处理装置,所述装置包括:
输入数据处理模块,用于第一处理器对当前输入数据进行第一数据处理操作,得到当前第一中间结果,之后获取下一输入数据,并对所述下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;
第一中间结果处理模块,用于第二处理器获取所述当前第一中间结果,并对所述当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后获取所述下一输入数据对应的下一第一中间结果,并对所述下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;
输出结果确定模块,用于所述第一处理器获取所述当前第二中间结果,并对所述当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后获取所述下一第一中间结果对应的下一第二中间结果,并对所述下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;
其中,所述第一处理器对所述下一输入数据进行第一数据处理操作的开始时间不能晚于所述第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。
上述基于流水线技术的数据处理装置,首先第一处理器对当前输入数据进行第一数据处理操作得到当前第一中间结果,之后对下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;接着第二处理器获取当前第一中间结果,并对当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后对下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;最后第一处理器获取当前第二中间结果,并对当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后对下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;其中,第一处理器对下一输入数据进行第一数据处理操作的开始时间不能晚于第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。可以理解,本申请将数据处理的工作流程分为三级流水线,在第一级流水线中,第一处理器执行第一数据处理操作步骤;在第二级流水线中,第二处理器执行第二数据处理操作步骤;在第三级流水线中,第一处理器执行第三数据处理操作步骤。这样,实现了第一处理器和第二处理器同时为多个输入数据的不同数据处理步骤进行工作,高效地进行不同的数据处理步骤在不同处理器上执行,减少了第一处理器的运算量,提高了处理数据的效率。
关于基于流水线技术的数据处理装置的具体限定可以参见上文中对于基于流水线技术的数据处理方法的限定,在此不再赘述。上述基于流水线技术的数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,还提供了一种基于流水线技术的数据处理方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述通用处理器接收输入数据,并对输入数据进行预处理得到预处理数据;
所述通用处理器接收所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理得到的推理数据,并对所述推理数据进行后处理,得到后处理数据,并且所述通用处理器对所述推理数据进行后处理得到后处理数据结束之前,再次执行接收输入数据的步骤。
在本实施例中,上述步骤的具体实现过程可以参见上述图3所示的实施例中的描述,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,还提供了一种基于流水线技术的数据处理方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述人工智能处理器接收预处理数据,并通过神经网络离线模型对所述预处理数据进行推理,得到推理数据;其中,所述预处理数据为所述通用处理器接收输入数据并对输入数据预处理获得;
所述人工智能处理器将所述推理数据输入至所述通用处理器,以使所述通用处理器对所述推理数据进行后处理,得到后处理数据;
其中,所述通用处理器对下一输入数据进行预处理的开始时间不能晚于所述通用处理器对所述推理数据进行后处理的结束时间。
在本实施例中,上述步骤的具体实现过程可以参见上述图3所示的实施例中的描述,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,还提供了一种基于流水线技术的数据处理方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述通用处理器接收输入数据,并对输入数据进行预处理得到预处理数据;
所述通用处理器接收所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理得到的推理数据;并且所述通用处理器在所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理时,并行执行再次接收输入数据,并对再次接收的输入数据进行预处理的步骤,以及对所述推理数据进行后处理,得到后处理数据。
在本实施例中,上述步骤的具体实现过程可以参见上述图3所示的实施例中的描述,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,还提供了一种基于流水线技术的数据处理方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述人工智能处理器接收预处理数据,并通过神经网络离线模型对所述预处理数据进行推理,得到推理数据;其中,所述预处理数据为所述通用处理器接收输入数据并对输入数据处理获得;
所述人工智能处理器将所述推理数据输入所述通用处理器,以使所述通用处理器对所述推理数据进行后处理,得到后处理数据;
其中,所述人工智能处理器对所述预处理数据进行推理时,所述通用处理器并行执行再次接收输入数据并对再次接收输入数据进行预处理的步骤以及对所述人工智能处理器输入的所述推理数据进行后处理的步骤。
在本实施例中,上述步骤的具体实现过程可以参见上述图3所示的实施例中的描述,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,还提供了一种板卡,应用于异构计算架构中,所述板卡包括:人工智能处理器,所述人工智能处理器用于执行上述实施例涉及的方法。
在一个实施例中,还提供了一种主板,应用于异构计算架构中,所述主板包括:通用处理器和上述板卡。
在一个实施例中,还提供了一种电子设备,应用于异构计算架构中,所述电子设备包括上述主板。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (19)
1.一种基于流水线技术的数据处理方法,其特征在于,所述方法包括:
第一处理器对当前输入数据进行第一数据处理操作,得到当前第一中间结果,之后获取下一输入数据,并对所述下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;
第二处理器获取所述当前第一中间结果,并对所述当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后获取所述下一输入数据对应的下一第一中间结果,并对所述下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;
所述第一处理器获取所述当前第二中间结果,并对所述当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后获取所述下一第一中间结果对应的下一第二中间结果,并对所述下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;
其中,所述第一处理器对所述下一输入数据进行第一数据处理操作的开始时间不能晚于所述第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。
2.根据权利要求1所述的方法,其特征在于,所述第一数据处理操作包括数据预处理,和/或所述第二数据处理操作包括数据推理,和/或所述第三数据处理操作包括数据后处理;
其中,若第二数据处理操作包括数据推理,则所述第二处理器获取所述当前第一中间结果,并对所述当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后获取所述下一输入数据对应的下一第一中间结果,并对所述下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作,包括:
第二处理器获取所述当前第一中间结果,并使用神经网络离线模型对所述当前第一中间结果进行数据推理,得到当前推理数据,之后获取所述下一输入数据对应的下一第一中间结果,并使用神经网络离线模型对所述下一第一中间结果进行数据推理,直至完成最后一个第一中间结果的数据推理。
3.根据权利要求2所述的方法,其特征在于,所述第一中间结果包括预处理数据,所述方法还包括:
所述第一处理器查找状态为空闲的输入存储空间,并将预处理数据写入所述空闲的输入存储空间;其中,所述输入存储空间的数量为多个;所述空闲的输入存储空间写入所述预处理数据后,所述空闲的输入存储空间的状态更新为占用状态。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第二处理器查找所述状态为占用的输入存储空间,并从所述占用的输入存储空间中读取所述预处理数据;其中,所述第二处理器读取所述预处理数据后,所述占用的输入存储空间的状态更新为空闲状态。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第二处理器查找状态为空闲的输出存储空间,并将推理数据写入所述空闲的输出存储空间;其中,所述输出存储空间的数量为多个;所述空闲的输出存储空间写入所述推理数据后,所述空闲的输出存储空间的状态更新为占用状态。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第一处理器查找所述状态为占用的输出存储空间,并从所述占用的输出存储空间中读取所述推理数据;其中,所述第一处理器读取所述推理数据后,所述占用的输出存储空间的状态更新为空闲状态。
7.根据权利要求3-6任一所述的方法,其特征在于,
所述输入存储空间为两个,所述两个输入存储空间构成乒乓结构;和/或
所述输出存储空间为两个,所述两个输出存储空间构成乒乓结构。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第一处理器获取所述预处理数据的属性信息以及所述多个输入存储空间的属性信息;根据所述预处理数据的属性信息和所述多个输入存储空间的属性信息,确定与所述预处理数据相匹配的输入存储空间,并将所述预处理数据写入所述匹配的输入存储空间。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第二处理器获取所述推理数据的属性信息以及所述多个输出存储空间的属性信息;根据所述推理数据的属性信息和所述多个输出存储空间的属性信息,确定与所述推理数据相匹配的输出存储空间,并将所述推理数据写入所述匹配的输出存储空间。
10.根据权利要求8或9所述的方法,其特征在于,数据的属性信息包括数据大小、数据类型和数据格式中的至少一个,对应地,存储空间的属性信息包括存储空间大小、存储空间所能存储的数据类型和存储空间所能存储的数据格式中的至少一个。
11.根据权利要求1所述的方法,其特征在于,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
12.一种基于流水线技术的数据处理装置,其特征在于,所述装置包括:
输入数据处理模块,用于第一处理器对当前输入数据进行第一数据处理操作,得到当前第一中间结果,之后获取下一输入数据,并对所述下一输入数据进行第一数据处理操作,直至完成最后一个输入数据的第一数据处理操作;
第一中间结果处理模块,用于第二处理器获取所述当前第一中间结果,并对所述当前第一中间结果进行第二数据处理操作,得到当前第二中间结果,之后获取所述下一输入数据对应的下一第一中间结果,并对所述下一第一中间结果进行第二数据处理操作,直至完成最后一个第一中间结果的第二数据处理操作;
输出结果确定模块,用于所述第一处理器获取所述当前第二中间结果,并对所述当前第二中间结果进行第三数据处理操作,得到当前输出结果,之后获取所述下一第一中间结果对应的下一第二中间结果,并对所述下一第二中间结果进行第三数据处理操作,直至完成最后一个第二中间结果的第三数据处理操作;
其中,所述第一处理器对所述下一输入数据进行第一数据处理操作的开始时间不能晚于所述第一处理器对当前第二中间结果进行第三数据处理操作的结束时间。
13.一种基于流水线技术的数据处理方法,其特征在于,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述通用处理器接收输入数据,并对输入数据进行预处理得到预处理数据;
所述通用处理器接收所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理得到的推理数据,并对所述推理数据进行后处理,得到后处理数据,并且所述通用处理器对所述推理数据进行后处理得到后处理数据结束之前,再次执行接收输入数据的步骤。
14.一种基于流水线技术的数据处理方法,其特征在于,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述人工智能处理器接收预处理数据,并通过神经网络离线模型对所述预处理数据进行推理,得到推理数据;其中,所述预处理数据为所述通用处理器接收输入数据并对输入数据预处理获得;
所述人工智能处理器将所述推理数据输入至所述通用处理器,以使所述通用处理器对所述推理数据进行后处理,得到后处理数据;
其中,所述通用处理器对下一输入数据进行预处理的开始时间不能晚于所述通用处理器对所述推理数据进行后处理的结束时间。
15.一种基于流水线技术的数据处理方法,其特征在于,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述通用处理器接收输入数据,并对输入数据进行预处理得到预处理数据;
所述通用处理器接收所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理得到的推理数据;并且所述通用处理器在所述人工智能处理器使用神经网络离线模型对所述预处理数据进行数据推理时,并行执行再次接收输入数据,并对再次接收的输入数据进行预处理的步骤,以及对所述推理数据进行后处理,得到后处理数据。
16.一种基于流水线技术的数据处理方法,其特征在于,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,所述方法包括:
所述人工智能处理器接收预处理数据,并通过神经网络离线模型对所述预处理数据进行推理,得到推理数据;其中,所述预处理数据为所述通用处理器接收输入数据并对输入数据处理获得;
所述人工智能处理器将所述推理数据输入所述通用处理器,以使所述通用处理器对所述推理数据进行后处理,得到后处理数据;
其中,所述人工智能处理器对所述预处理数据进行推理时,所述通用处理器并行执行再次接收输入数据并对再次接收输入数据进行预处理的步骤以及对所述人工智能处理器输入的所述推理数据进行后处理的步骤。
17.一种板卡,其特征在于,应用于异构计算架构中,所述板卡包括:人工智能处理器,所述人工智能处理器用于执行如权利要求14所述的方法或如权利要求16所述的方法。
18.一种主板,其特征在于,应用于异构计算架构中,所述主板包括:通用处理器和如权利要求17所述的板卡。
19.一种电子设备,其特征在于,应用于异构计算架构中,所述电子设备包括如权利要求18所述的主板。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811555572.0A CN111338695B (zh) | 2018-12-19 | 2018-12-19 | 基于流水线技术的数据处理方法及相关产品 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811555572.0A CN111338695B (zh) | 2018-12-19 | 2018-12-19 | 基于流水线技术的数据处理方法及相关产品 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111338695A true CN111338695A (zh) | 2020-06-26 |
| CN111338695B CN111338695B (zh) | 2022-05-17 |
Family
ID=71181661
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201811555572.0A Active CN111338695B (zh) | 2018-12-19 | 2018-12-19 | 基于流水线技术的数据处理方法及相关产品 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111338695B (zh) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111985635A (zh) * | 2020-09-02 | 2020-11-24 | 北京小米松果电子有限公司 | 一种加速神经网络推理处理的方法、装置及介质 |
| CN112804003A (zh) * | 2021-02-19 | 2021-05-14 | 上海剑桥科技股份有限公司 | 一种基于光模块通信的存储方法、系统及终端 |
| CN113076181A (zh) * | 2021-03-04 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种数据处理流程优化方法、系统及存储介质 |
| CN113159290A (zh) * | 2021-04-26 | 2021-07-23 | 青岛本原微电子有限公司 | 一种神经网络模型网络推理的优化方法 |
| CN113421209A (zh) * | 2021-06-21 | 2021-09-21 | 安谋科技(中国)有限公司 | 图像处理方法、片上系统、电子设备和介质 |
| CN115511079A (zh) * | 2021-06-07 | 2022-12-23 | 上海寒武纪信息科技有限公司 | 离线模型推理的方法、装置、计算机设备和存储介质 |
| WO2023124428A1 (zh) * | 2021-12-30 | 2023-07-06 | 上海商汤智能科技有限公司 | 芯片、加速卡以及电子设备、数据处理方法 |
| CN116521378A (zh) * | 2023-07-03 | 2023-08-01 | 苏州浪潮智能科技有限公司 | 服务器的传感器访问方法、装置和基板管理控制器 |
| CN117669668A (zh) * | 2023-05-04 | 2024-03-08 | 合肥辉羲智能科技有限公司 | 一种反馈式神经网络模型计算流流水线排布方法及ai编译器 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101221490A (zh) * | 2007-12-20 | 2008-07-16 | 清华大学 | 一种具有数据前送结构的浮点乘加单元 |
| CN101504638A (zh) * | 2009-03-19 | 2009-08-12 | 北京理工大学 | 一种可变点数流水线fft处理器 |
| US20140196043A1 (en) * | 2013-01-09 | 2014-07-10 | Nvidia Corporation | System and method for re-factorizing a square matrix into lower and upper triangular matrices on a parallel processor |
| CN106095345A (zh) * | 2015-04-30 | 2016-11-09 | 佳能株式会社 | 具有多个处理单元的图像形成装置及其控制方法 |
| CN106406812A (zh) * | 2015-10-02 | 2017-02-15 | 上海兆芯集成电路有限公司 | 微处理器和微处理器内的执行融合复合算术运算的方法 |
| CN107229596A (zh) * | 2016-03-25 | 2017-10-03 | 扬智科技股份有限公司 | 非流水线式快速傅立叶转换处理器及其运算控制方法 |
| CN108491924A (zh) * | 2018-02-11 | 2018-09-04 | 江苏金羿智芯科技有限公司 | 一种面向人工智能计算的神经网络数据串行流水处理装置 |
| CN108804141A (zh) * | 2017-04-28 | 2018-11-13 | 英特尔公司 | 支持所学习的分支预测器 |
-
2018
- 2018-12-19 CN CN201811555572.0A patent/CN111338695B/zh active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101221490A (zh) * | 2007-12-20 | 2008-07-16 | 清华大学 | 一种具有数据前送结构的浮点乘加单元 |
| CN101504638A (zh) * | 2009-03-19 | 2009-08-12 | 北京理工大学 | 一种可变点数流水线fft处理器 |
| US20140196043A1 (en) * | 2013-01-09 | 2014-07-10 | Nvidia Corporation | System and method for re-factorizing a square matrix into lower and upper triangular matrices on a parallel processor |
| CN106095345A (zh) * | 2015-04-30 | 2016-11-09 | 佳能株式会社 | 具有多个处理单元的图像形成装置及其控制方法 |
| CN106406812A (zh) * | 2015-10-02 | 2017-02-15 | 上海兆芯集成电路有限公司 | 微处理器和微处理器内的执行融合复合算术运算的方法 |
| CN107229596A (zh) * | 2016-03-25 | 2017-10-03 | 扬智科技股份有限公司 | 非流水线式快速傅立叶转换处理器及其运算控制方法 |
| CN108804141A (zh) * | 2017-04-28 | 2018-11-13 | 英特尔公司 | 支持所学习的分支预测器 |
| CN108491924A (zh) * | 2018-02-11 | 2018-09-04 | 江苏金羿智芯科技有限公司 | 一种面向人工智能计算的神经网络数据串行流水处理装置 |
Non-Patent Citations (1)
| Title |
|---|
| 张珩等: "基于Multi-GPU平台的大规模图数据处理", 《计算机研究与发展》 * |
Cited By (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111985635A (zh) * | 2020-09-02 | 2020-11-24 | 北京小米松果电子有限公司 | 一种加速神经网络推理处理的方法、装置及介质 |
| CN112804003A (zh) * | 2021-02-19 | 2021-05-14 | 上海剑桥科技股份有限公司 | 一种基于光模块通信的存储方法、系统及终端 |
| CN113076181A (zh) * | 2021-03-04 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种数据处理流程优化方法、系统及存储介质 |
| CN113076181B (zh) * | 2021-03-04 | 2023-09-26 | 山东英信计算机技术有限公司 | 一种数据处理流程优化方法、系统及存储介质 |
| CN113159290A (zh) * | 2021-04-26 | 2021-07-23 | 青岛本原微电子有限公司 | 一种神经网络模型网络推理的优化方法 |
| CN113159290B (zh) * | 2021-04-26 | 2022-08-09 | 青岛本原微电子有限公司 | 一种神经网络模型网络推理的优化方法 |
| CN115511079A (zh) * | 2021-06-07 | 2022-12-23 | 上海寒武纪信息科技有限公司 | 离线模型推理的方法、装置、计算机设备和存储介质 |
| CN113421209B (zh) * | 2021-06-21 | 2022-12-30 | 安谋科技(中国)有限公司 | 图像处理方法、片上系统、电子设备和介质 |
| CN113421209A (zh) * | 2021-06-21 | 2021-09-21 | 安谋科技(中国)有限公司 | 图像处理方法、片上系统、电子设备和介质 |
| WO2023124428A1 (zh) * | 2021-12-30 | 2023-07-06 | 上海商汤智能科技有限公司 | 芯片、加速卡以及电子设备、数据处理方法 |
| CN117669668A (zh) * | 2023-05-04 | 2024-03-08 | 合肥辉羲智能科技有限公司 | 一种反馈式神经网络模型计算流流水线排布方法及ai编译器 |
| CN117669668B (zh) * | 2023-05-04 | 2024-11-26 | 北京辉羲智能信息技术有限公司 | 一种反馈式神经网络模型计算流流水线排布方法及ai编译器 |
| CN116521378A (zh) * | 2023-07-03 | 2023-08-01 | 苏州浪潮智能科技有限公司 | 服务器的传感器访问方法、装置和基板管理控制器 |
| CN116521378B (zh) * | 2023-07-03 | 2023-09-19 | 苏州浪潮智能科技有限公司 | 服务器的传感器访问方法、装置和基板管理控制器 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111338695B (zh) | 2022-05-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111338695B (zh) | 基于流水线技术的数据处理方法及相关产品 | |
| CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
| CN109657782B (zh) | 运算方法、装置及相关产品 | |
| CN109543832B (zh) | 一种计算装置及板卡 | |
| CN109522052B (zh) | 一种计算装置及板卡 | |
| CN109685201B (zh) | 运算方法、装置及相关产品 | |
| CN113449859A (zh) | 一种数据处理方法及其装置 | |
| EP3754503B1 (en) | Allocation system, method and apparatus for machine learning, and computer device | |
| CN111353591A (zh) | 一种计算装置及相关产品 | |
| CN110929854B (zh) | 一种数据处理方法、装置及硬件加速器 | |
| CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
| CN109711540B (zh) | 一种计算装置及板卡 | |
| CN111047045B (zh) | 机器学习运算的分配系统及方法 | |
| EP3447690A1 (en) | Maxout layer operation apparatus and method | |
| CN114330682A (zh) | 应用于Fastformer神经网络的硬件架构及其计算方法 | |
| CN112596872A (zh) | 任务调度、预处理、处理方法及设备、处理单元、介质 | |
| CN112348182B (zh) | 一种神经网络maxout层计算装置 | |
| CN109740730B (zh) | 运算方法、装置及相关产品 | |
| CN119416826B (zh) | 一种算子执行方法、设备、存储介质及程序产品 | |
| CN119783812B (zh) | 面向新一代异构超算大模型并行训练与推理适配优化方法 | |
| CN119358617B (zh) | 算力引擎构建方法、装置、设备和存储介质 | |
| CN111382848B (zh) | 一种计算装置及相关产品 | |
| CN109711538B (zh) | 运算方法、装置及相关产品 | |
| CN116804915A (zh) | 基于存储器的数据交互方法、处理器、设备以及介质 | |
| US11086634B2 (en) | Data processing apparatus and method |
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 |