CN111723935A - 神经网络计算图的处理方法、计算机存储介质及电子设备 - Google Patents
神经网络计算图的处理方法、计算机存储介质及电子设备 Download PDFInfo
- Publication number
- CN111723935A CN111723935A CN202010588526.1A CN202010588526A CN111723935A CN 111723935 A CN111723935 A CN 111723935A CN 202010588526 A CN202010588526 A CN 202010588526A CN 111723935 A CN111723935 A CN 111723935A
- Authority
- CN
- China
- Prior art keywords
- operator
- neural network
- operators
- mapping
- tensor
- 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
Images
Classifications
-
- 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供了一种神经网络计算图的处理方法、计算机存储介质及电子设备。神经网络计算图的处理方法包括基于用户创建神经网络模型的需求获取创建所需神经网络模型的程序代码;根据程序代码生成所需神经网络模型的计算图;将计算图进行格式转换,得到目标计算图,目标计算图包含多个算子和各算子之间的连接关系;根据各算子的特征将各算子映射到与各算子的特征匹配的运算设备中,得到运算设备和算子的映射关系表;根据映射关系表将各算子加载到与算子匹配的运算设备中以进行计算。通过根据映射关系表将各算子加载到与算子匹配的运算设备中以进行计算,可以充分发挥每个运算设备的优点,提高运算设备的运算效率。
Description
技术领域
本发明涉及人工智能算法技术领域,特别是涉及一种神经网络计算图的处理方法、计算机存储介质及电子设备。
背景技术
现有的神经网络计算图的处理方法中,神经网络计算图中的各算子在同一运行时间内往往只能运行在专用集成电路(Application Specific Integrated Circuit,ASIC)、图形处理器(Graphic Processing Unit,GPU)、张量处理器(Tensor Processing Unit,TPU)运算设备中,或者运行在中央处理器(Central Processing Unit,CPU)、可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)运算设备中。对于异构架构的边缘计算推理平台,运算设备中同时存在中央处理器、图形处理器、张量处理器、专用集成电路、现场可编程逻辑门阵列等运算设备时,现有的神经网络计算图的处理方法不能充分的利用他们来协同完成整体任务。具体地,例如无法根据神经网络计算图中的各算子的控制逻辑复杂度和计算量大小的特征将各算子映射到与各算子的特征匹配的运算设备中,导致运算设备的运算效率比较低下。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的神经网络计算图的处理方法、计算机存储介质及电子设备。
本发明的一个目的是要提供一种提高运算设备运算效率的神经网络计算图的处理方法、计算机存储介质及电子设备。
本发明的一个进一步的目的是提供任意类型的输入输出张量从而提高了算子的灵活性和运算效率。
根据本发明的一个方面,本发明提供了一种神经网络计算图的处理方法,包括:
基于用户创建神经网络模型的需求获取创建所需神经网络模型的程序代码;
根据所述程序代码生成所述所需神经网络模型的计算图;
将所述计算图进行格式转换,得到目标计算图,所述目标计算图包含多个算子和各所述算子之间的连接关系;
根据各所述算子的特征将各所述算子映射到与各所述算子的特征匹配的运算设备中,得到所述运算设备和所述算子的映射关系表;
根据所述映射关系表将各所述算子加载到与所述算子匹配的运算设备中以进行计算。
可选的,还包括:
将各所述算子通过匹配的运算设备的计算结果基于各所述算子之间的连接关系进行逻辑处理后,创建所述所需神经网络模型。
可选的,各所述算子至少包括输入张量和输出张量。
可选的,各所述算子还包括权重参数张量。
可选的,所述输入张量、所述输出张量和所述权重参数张量为任意数据类型。
可选的,根据各所述算子的特征将各所述算子映射到与各所述算子的特征匹配的运算设备中,包括:
按照各所述算子的控制逻辑复杂度和计算量大小的特征对各所述算子进行分类;
将不同类别的所述算子分别映射到与所述算子特征匹配的运算设备中。
可选的,所述按照各所述算子的控制逻辑复杂度和计算量大小的特征对各所述算子进行分类,包括:
将所述所需神经网络模型中的卷积算子、全连接算子、矩阵乘算子、矩阵加算子和/或矩阵乘加算子作为第一类别算子;
将所述所需神经网络模型中的维特比解码算子、池化算子、激活函数算子和/或索引查表算子作为第二类别算子;
将所述所需神经网络模型中的长短记忆网络算子作为第三类算子;
所述将不同类别的所述算子分别映射到与所述算子特征匹配的运算设备中,包括:
将所述第一类别算子映射到图形处理器、张量处理器和/或专用集成电路;
将所述第二类别算子映射到中央处理器和/或数字信号处理器;
将所述第三类别算子映射到网络处理器。
根据本发明的另一方面,提供一种计算机存储介质,包括,
所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据上述任一项所述的神经网络计算图的处理方法。
根据本发明的再一方面,提供一种电子设备,包括:
存储器和处理器,所述存储器内存储有控制程序,所述控制程序被所述处理器执行时用于实现根据上述任一项所述的神经网络计算图的处理方法。
在本发明实施例的神经网络计算图的处理方法中,通过将计算图进行格式转换,得到目标计算图,目标计算图包含多个算子和各算子之间的连接关系。根据各算子的特征将各算子映射到与各算子的特征匹配的运算设备中,得到运算设备和算子的映射关系表。然后,再根据映射关系表将各算子加载到与算子匹配的运算设备中以进行计算,可以充分发挥每个运算设备的优点,提高运算设备的运算效率。
进一步地,在本发明中,各算子的输入张量、输出张量和权重参数张量为任意数据类型,从而提高了算子的灵活性和运算效率。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是现有技术中Tensorflow的系统架构图的示意图;
图2是现有技术中Tensorflow的层结构的示意图;
图3是根据本发明一个实施例的神经网络计算图的处理方法的流程图;
图4是根据本发明一个实施例的神经网络计算图的各个算子之间的连接关系的示意图;
图5是根据本发明一个实施例的神经网络计算图的算子映射加载到运算设备后执行的示意图。
具体实施方式
在现有技术中,存在很多通用的机器学习平台,例如,google的Tensorflow、Keras、Pytorch以及百度的PaddlePaddle等。在这些平台中,会对神经网络的算子和算子的连接关系进行定义。
这些平台一般可以分为前端和后端。下面以Tensorflow为例,对平台的架构进行说明。图1是现有技术中Tensorflow的系统架构图的示意图。参见图1,前端提供给最终用户,作为用户编程接口,可以提供c/c++版本、python版本、java版本以及其他编程语言版本的应用程序接口,方便用户编写自己的神经网络模型,生成神经网络计算图。神经网络计算图是一种包含各种算子、参数、网络拓扑结构的数据结合,一般以文件的格式存在。
后端用于分析用户设计好的神经网络计算图,将神经网络计算图拆解映射到运算设备上。具体地,例如,可以通过分布式主机、工作服务或者数据流执行器根据内核实现将神经网络计算图拆解映射到图形处理器、张量处理器、中央处理器、现场可编程门阵列或专用集成电路等运算设备。运算设备执行运算,并把运算结果返回给前端。后端与运算设备相关,不同的运算设备需要按照后端接口编写不同的程序来适配。
若按照功能来区分,Tensorflow可以分成多个层。图2是现有技术中Tensorflow的层结构的示意图,如图2所示,每个层具有对应的功能和组件。例如,视图层对应的功能为计算图可视化,对应的组件为可视化工具,如tensorboard。工作流层对应的功能为数据集准备存储、加载,对应的组件为人工神经网络库组件,如Kerasflow core。计算图层对应的功能为计算图构造与优化前向计算、后向传播,对应的组件为计算组件,如Tensorflow core。高维计算层对应的功能为高位数组处理,对应的组件为程序库,如Eigen。数值计算层对应的功能为矩阵计算和卷积计算,对应的组件为线性代数子程序,如BLAS、cuBLAS或cuDNN。网络层对应的功能为通信,对应的组件为通信组件,如远程直接数据存取(Remote DirectMemory Access,RDMA)。设备层对应的功能为硬件,对应的组件为处理器,如中央处理器、图形处理器、张量处理器或者可编程逻辑门阵列。后端包含高维计算层、数值计算层、网络层和设备层等。
现有技术的通用机器学习平台的框架比较庞大,内存和计算开销比较重。一个新的边缘计算设备,要适配机器学习平台,后端代码编写比较复杂,工作量大,特别是当边缘计算设备上有多种设备的异构架构时,代码开发成本比较高。现有神经网络模型的算子为了兼容性更好,设计的比较通用,且算子数据类型是固定的,在整个算子计算过程中使用同一种数据类型,也就是说,算子的输入、输出、参数是同一种数据类型,例如,算子的输入和输出同是整型int32类型或者同是单精度浮点类型,这样牺牲了灵活性和效率。然而,实际应用中需要一个算子有不同的数据类型,例如全连接层算子,输入范围比较大,可以是int16类型,输出经过sign/tanh激活函数后比较小,可以是int8类型,现有技术显然无法满足这种需求。另外,现有通用机器学习平台通常同一时间只能运行在专用集成电路、图形处理器、张量处理器运算设备中,或者运行在中央处理器、可编程逻辑门阵列运算设备中。对于异构架构的边缘计算推理平台,同时存在中央处理器、图形处理器、张量处理器、专用集成电路和可编程逻辑门阵列时,现有机器学习平台不能利用中央处理器、图形处理器、张量处理器、专用集成电路和可编程逻辑门阵列来协同完成整体任务,效率比较低下。
为解决或至少部分地解决上述技术问题,本发明实施例提出了一种神经网络计算图的处理方法。
图3是根据本发明一个实施例的神经网络计算图的处理方法。参见图3,神经网络计算图的处理方法一般可包括以下步骤S102至步骤S110:
步骤S102:基于用户创建神经网络模型的需求获取创建所需神经网络模型的程序代码。
步骤S104:根据程序代码生成所需神经网络模型的计算图。
步骤S106:将计算图进行格式转换,得到目标计算图,目标计算图包含多个算子和各算子之间的连接关系。
步骤S108:根据各算子的特征将各算子映射到与各算子的特征匹配的运算设备中,得到运算设备和算子的映射关系表。
步骤S110:根据映射关系表将各算子加载到与算子匹配的运算设备中以进行计算。
在本实施例的神经网络计算图的处理方法中,通过将计算图进行格式转换,得到目标计算图,目标计算图包含多个算子和各算子之间的连接关系。其中,格式转换具体可以理解为对计算图进行解析,然后生成包含本发明的算子和各算子之间的连接关系的目标计算图。例如,将Tensorflow格式的计算图进行解析,得到包含本发明的算子和各算子之间的连接关系的目标计算图。根据各算子的特征将各算子映射到与各算子的特征匹配的运算设备中,得到运算设备和算子的映射关系表。然后,再根据映射关系表将各算子加载到与算子匹配的运算设备中以进行计算。每个运算设备对与自身匹配的算子进行运算,可以充分发挥每个运算设备的优点,提高运算设备的运算效率,进而提高了神经网络计算图的处理效率。
本实施例的神经网络计算图的处理方法可以是针对自然语言处理应用场景的,用户可以根据需求创建自然语言处理应用的神经网络模型,其中应用可以包括分类、命名实体识别等。可以使用c/c++、java或者python编程创建所需神经网络模型。
一般情况下,根据用户创建神经网络模型的需求,可以获取创建所需神经网络模型的基于视图层和工作流所构造的程序代码。程序代码可以包含所需神经网络模型的神经网络拓扑结构和运行流程信息。下面以表示一个分类应用的神经网络模型的程序代码为例,对程序代码所包含的神经网络拓扑结构和运行流程信息进行说明。举例的程序代码如下所示:
model=tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28,28)),//对应Flatten变型层
tf.keras.layers.Dense(128,activation='relu'),//对应全连接层和relu激活层
tf.keras.layers.Dropout(0.2),//对应dropout随机丢弃层
tf.keras.layers.Dense(10,activation='softmax')//对应全连接层和softmax激活层
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
由上述程序代码得知,该分类应用的神经网络模型有6层结构。其中,第1层为Flatten变型层,负责把输入二维数据[28,28]变型成一维784的向量。第2层是全连接层,作用是维度转换和特征映射。第3层是relu激活层,作用是为神经网络模型增加非线性功能。第4层是dropout随机丢弃层,作用是为神经网络模型增加泛化功能。第5层是全连接层,作用是维度转换和特征映射。第6层是softmax激活层,作用是输出归一化,使得每一个值为它的概率。
在上文步骤S104中,根据程序代码生成的所需神经网络模型的计算图可以为Tensorflow计算图。计算图中可以包含算子、权重参数和神经网络结构图。算子、权重参数和神经网络结构图是神经网络模型运算的高层抽象。计算图包含的信息满足后端在不同的硬件设备上进行计算。算子是指神经网络模型中完成某个计算功能的代码集合。例如,对于前文介绍的6层机构的分类应用的神经网络模型,第1层中算子的功能是把数据从一种维度变换到另一种维度,例如把输入二维数据[28,28]变型成一维784的向量,可以称作数据变型算子。第2层中算子的功能是维度转换和特征映射,可以称作全连接算子。第3层中算子的功能是为神经网络模型增加非线性能力,可以称作relu激活函数算子。第4层中算子的功能是为神经网络模型增加泛化功能,可以称作dropout随机丢弃算子。第5层中算子的功能与第2层中算子的功能相同,也可称作全连接算子。第6层中算子的功能是输出归一化,使得每一个值为它的概率,可以称作softmax激活函数算子。另外,有的算子需要附带参数,例如全连接层算子需要权重参数和偏置参数。
在上文步骤S106中,目标计算图包含多个算子和各算子之间的连接关系。图4示例性地示出了各算子之间的连接关系的一种图形表达方式。每个连接可以表示算子之间的数据处理流程。连接1用于连接算子1和算子2,方向是从算子1到算子2,表示数据经过算子1处理后传递给算子2。连接2用于连接算子1和算子3,方向是从算子1到算子3,表示数据经过算子1处理后传递给算子3。连接3用于连接算子2和算子4,方向是从算子2到算子4,表示数据经过算子2处理后传递给算子4。连接4用于连接算子3和算子4,方向是从算子3到算子4,表示数据经过算子3处理后传递给算子4。连接5用于连接算子4和算子5,方向是从算子4到算子5,表示数据经过算子4处理后传递给算子5。其中,第1个算子中包含输入张量1,输出张量2,参数张量3。第2个算子中包含输入张量2,输出张量4,参数张量5。第3个算子中包含输入张量2,输出张量6。第4个算子中包含输入张量4、输入张量6、输出张量9、参数张量7、参数张量8。第5个算子中包含输入张量9、输出张量10。第1个算子中还包含参数张量3。第2个算子中还包含参数张量5。第4个算子中还包含参数张量7、参数张量8。上述各个参数张量可以理解为权重参数张量。以上信息都保存在目标计算图的描述信息中。
算子和各算子之间的连接关系还可以用表格的方式展示。下表1和表2分别示出了上述图4所示的算子和各算子之间的连接关系的文字表达方式。下面结合表1、表2对算子和各算子之间的连接关系的具体格式进行介绍。
算子的具体格式可以参照如下表1。表1中包含了算子的索引、名称、功能、输入张量、输出张量、参数张量、计算类型以及其他定制参数。其中,索引的数据类型可以为int32。名字的数据类型可以为char*。算子的功能可以包括卷积、全连接、矩阵乘、矩阵加、矩阵乘加、维特比解码、池化、长短记忆网络(Long Short-Term Memory,LSTM)、激活函数、索引查表等。输入张量可包括输入张量1、输入张量2、输入张量3等。输出张量可包括输出张量1、输出张量2、输出张量4等。参数张量可包括参数张量1、参数张量2、参数张量5等。计算类型可以包括类型1、类型2和类型3等。其他定制参数根据实际应用需求进行设置。
表1如下代码为表1中算子的一个具体示例:
算子之间的连接关系的具体格式可以参照如下表2。表2中包含了连接关系的索引、名字、输入和输出。其中,索引的类型可以为int32。名字的类型可以为char*。输入中可包含算子索引和输出张量索引。输出中可以包含算子索引和输入张量索引。本领域的技术人员可以理解,根据算子之间的连接关系,上一个算子的输出张量可以作为下一个算子的输入。
表2如下代码为表2中连接关系的一个具体示例:
算子中包含的张量(例如输入张量、输出张量、参数张量)的具体格式可以参照如下表3。表3中包含了张量的索引、名称、类型、维度、量化零点、量化尺度以及内存分配方式。其中,索引的数据类型可以为int32。名字的数据类型可以为char*。张量的类型可以包括float16、float32、float64、int8、uint8、int16、uint16、int32以及uint32等。维度可包括数组int data[]和数组中元素的个数int size。量化零点的类型可以为int32。量化尺度的类型可以为float。内存分配方式可包括动态预分配、运行时分配、外部分配、预分配常量等。
表3如下代码为表3中张量的一个具体示例:
本发明的一个实施例中,各算子的输入张量、输出张量和权重参数张量可以为任意数据类型。例如输入张量的类型为int 32,输出张量的类型为int 16,权重参数张量的类型float16。与现有技术中将算子的数据类型设定为固定的同一种数据类型相比,显著提高了算子的灵活性和运算效率。
上文步骤S108中,根据各算子的特征将各算子映射到与各算子的特征匹配的运算设备中的步骤可以如下实施:首先,按照各算子的控制逻辑复杂度和计算量大小的特征对各算子进行分类。然后,将不同类别的算子分别映射到与算子特征匹配的运算设备中。具体地,例如,所需神经网络模型中的卷积算子、全连接算子、矩阵乘算子、矩阵加算子、矩阵乘加算子的乘加计算量比较大但是控制逻辑比较简单,因此可将这类算子作为第一类别算子(对应表2中的类型1)。可以将第一类别算子映射到第一类设备中。第一类设备可包括图形处理器、张量处理器和专用集成电路。所需神经网络模型中的维特比解码算子、池化算子、激活函数算子、索引查表算子的乘加计算量比较小但是控制逻辑比较复杂,因此将这类算子作为第二类别算子(对应表2中的类型2)。将第二类别算子映射到第二类设备中。第二类设备可包括中央处理器和数字信号处理器。所需神经网络模型中的长短记忆网络算子的乘加计算量比较大而且控制逻辑比较复杂,因此将这类算子作为第三类别算子(对应表2中的类型3)。将第三类别算子映射到第三类设备中。第三类设备可包括网络处理器NPU(Neural-network Processing Unit,简称NPU),也可称为嵌入式神经网络处理器。
将各算子映射到与各算子的特征匹配的运算设备中,得到运算设备和算子的映射关系表。运算设备和算子的映射关系表可如表4所示:
表4中包含了设备索引、设备类型、算子索引和算子名称。其中设备索引和算子索引的类型可以为int32。设备类型和算子名称的类型可以为char*。
| 设备索引 | 设备类型 | 算子索引 | 算子名称 |
| int32 | char* | int32 | char* |
表4
基于不同算子映射到对应运算设备得到映射关系表,执行步骤S110,根据映射关系表将各算子加载到与算子匹配的运算设备中以进行计算。图5示例性地示出了根据本发明一个实施例的神经网络计算图的算子映射加载到运算设备后执行的示意图。参见图5所示,本实施例的神经网络计算图共包括7个算子,并分别映射至三类运算设备。具体地,算子分别为算子1至算子7。三类运算设备分别为第一类设备、第二类设备以及第三类设备。其中,算子1、算子2、算子5和算子7可以为第一类别算子中的任一种,被映射到第一类设备中。算子3和算子4可以为第二类别算子中的任一种,被映射到第二类设备中。算子6为第三类别算子中的任一种,被映射到第三类设备中。由于算子2、算子3和算子4没有依赖,可以并行执行,所以算子2被映射到第一类设备上,算子3和算子4被同时映射到第二类设备上并行执行,这样提高了运行效率。另外,对算子加载的过程中,实际加载的可以是算子的张量。其中,权重参数张量是不变的常量,可以一次加载,常驻运算设备内存,提高效率。输入张量和输出张量是一直在变化的,每次需要更新,因此,一般由后端处理程序在中央处理器中或者外部的随机存取存储器(Random Access Memory,RAM)中分配一块空间,作为输入张量和输出张量的内存地址,运算设备使用直接存储器访问(Direct Memory Access,DMA)访问该空间的地址,实现动态传输数据,减轻中央处理器的负载。并且,根据映射关系表将各算子加载到与算子匹配的运算设备中以进行计算可以提高将各算子加载到与算子匹配的运算设备中的效率和准确率。
在本发明一个实施例中,在步骤S110之后,神经网络计算图的处理方法还可包括将各算子通过匹配的运算设备的计算结果基于各算子之间的连接关系进行逻辑处理后,创建所需神经网络模型。
基于同一发明构思,本发明还提供了一种计算机存储介质。计算机存储介质存储有计算机程序代码。当计算机程序代码在计算设备上运行时,导致计算设备执行上述任一项实施例的神经网络计算图的处理方法。
基于同一发明构思,本发明还提供了一种电子设备。电子设备包括存储器和处理器。存储器内存储有控制程序,控制程序被处理器执行时用于实现上述任一项实施例的神经网络计算图的处理方法。
根据上述任意一个可选实施例或多个可选实施例的组合,本发明实施例能够达到如下有益效果:
在本发明实施例的神经网络计算图的处理方法中,通过将计算图进行格式转换,得到目标计算图,目标计算图包含多个算子和各算子之间的连接关系。根据各算子的特征将各算子映射到与各算子的特征匹配的运算设备中,得到运算设备和算子的映射关系表。然后,再根据映射关系表将各算子加载到与算子匹配的运算设备中以进行计算,可以充分发挥每个运算设备的优点,提高运算设备的运算效率。进一步地,在本发明中,各算子的输入张量、输出张量和权重参数张量为任意数据类型,从而提高了算子的灵活性和运算效率。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (9)
1.一种神经网络计算图的处理方法,其特征在于,包括:
基于用户创建神经网络模型的需求获取创建所需神经网络模型的程序代码;
根据所述程序代码生成所述所需神经网络模型的计算图;
将所述计算图进行格式转换,得到目标计算图,所述目标计算图包含多个算子和各所述算子之间的连接关系;
根据各所述算子的特征将各所述算子映射到与各所述算子的特征匹配的运算设备中,得到所述运算设备和所述算子的映射关系表;
根据所述映射关系表将各所述算子加载到与所述算子匹配的运算设备中以进行计算。
2.根据权利要求1所述的神经网络计算图的处理方法,其特征在于,还包括:
将各所述算子通过匹配的运算设备的计算结果基于各所述算子之间的连接关系进行逻辑处理后,创建所述所需神经网络模型。
3.根据权利要求1所述的神经网络计算图的处理方法,其特征在于,各所述算子至少包括输入张量和输出张量。
4.根据权利要求3所述的神经网络计算图的处理方法,其特征在于,各所述算子还包括权重参数张量。
5.根据权利要求4所述的神经网络计算图的处理方法,其特征在于,所述输入张量、所述输出张量和所述权重参数张量为任意数据类型。
6.根据权利要求1所述的神经网络计算图的处理方法,其特征在于,根据各所述算子的特征将各所述算子映射到与各所述算子的特征匹配的运算设备中,包括:
按照各所述算子的控制逻辑复杂度和计算量大小的特征对各所述算子进行分类;
将不同类别的所述算子分别映射到与所述算子特征匹配的运算设备中。
7.根据权利要求6所述的神经网络计算图的处理方法,其特征在于,所述按照各所述算子的控制逻辑复杂度和计算量大小的特征对各所述算子进行分类,包括:
将所述所需神经网络模型中的卷积算子、全连接算子、矩阵乘算子、矩阵加算子和/或矩阵乘加算子作为第一类别算子;
将所述所需神经网络模型中的维特比解码算子、池化算子、激活函数算子和/或索引查表算子作为第二类别算子;
将所述所需神经网络模型中的长短记忆网络算子作为第三类算子;
所述将不同类别的所述算子分别映射到与所述算子特征匹配的运算设备中,包括:
将所述第一类别算子映射到图形处理器、张量处理器和/或专用集成电路;
将所述第二类别算子映射到中央处理器和/或数字信号处理器;
将所述第三类别算子映射到网络处理器。
8.一种计算机存储介质,其特征在于,
所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据权利要求1-7中任一项所述的神经网络计算图的处理方法。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器内存储有控制程序,所述控制程序被所述处理器执行时用于实现根据权利要求1-7中任一项所述的神经网络计算图的处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010588526.1A CN111723935A (zh) | 2020-06-24 | 2020-06-24 | 神经网络计算图的处理方法、计算机存储介质及电子设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010588526.1A CN111723935A (zh) | 2020-06-24 | 2020-06-24 | 神经网络计算图的处理方法、计算机存储介质及电子设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111723935A true CN111723935A (zh) | 2020-09-29 |
Family
ID=72568792
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010588526.1A Pending CN111723935A (zh) | 2020-06-24 | 2020-06-24 | 神经网络计算图的处理方法、计算机存储介质及电子设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111723935A (zh) |
Cited By (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112101529A (zh) * | 2020-10-14 | 2020-12-18 | 杭州海康威视数字技术股份有限公司 | 一种用于神经网络模型推理跨平台的部署方法及架构 |
| CN112328227A (zh) * | 2020-11-03 | 2021-02-05 | 清华大学 | 编译方法、装置、计算设备和介质 |
| CN112884120A (zh) * | 2021-01-29 | 2021-06-01 | 北京大学 | 图神经网络表示架构 |
| CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
| CN113052305A (zh) * | 2021-02-19 | 2021-06-29 | 展讯通信(上海)有限公司 | 神经网络模型的运行方法、电子设备和存储介质 |
| CN113469328A (zh) * | 2021-06-24 | 2021-10-01 | 上海寒武纪信息科技有限公司 | 执行转数穿过的装置、板卡、方法及可读存储介质 |
| CN113867950A (zh) * | 2021-09-26 | 2021-12-31 | 浪潮电子信息产业股份有限公司 | 一种统一异构计算系统,一种ai加速平台 |
| CN114004335A (zh) * | 2021-10-28 | 2022-02-01 | 上海商汤科技开发有限公司 | 一种数据处理的方法、装置、电子设备及存储介质 |
| CN114429211A (zh) * | 2022-02-07 | 2022-05-03 | 北京百度网讯科技有限公司 | 用于生成信息的方法、装置、设备、介质和产品 |
| CN114489604A (zh) * | 2022-02-17 | 2022-05-13 | 山东产业技术研究院智能计算研究院 | 一种基于计算图的算子监测方法及系统 |
| CN114692711A (zh) * | 2020-12-29 | 2022-07-01 | 华为技术有限公司 | 计算图的算子映射方法以及装置 |
| CN114970845A (zh) * | 2022-01-12 | 2022-08-30 | 厦门壹普智慧科技有限公司 | 一种面向通用神经网络张量处理器的统一计算方法 |
| WO2022222839A1 (zh) * | 2022-02-17 | 2022-10-27 | 之江实验室 | 一种面向神经网络模型计算的中间表示方法和装置 |
| WO2023125628A1 (zh) * | 2021-12-31 | 2023-07-06 | 华为技术有限公司 | 神经网络模型优化方法、装置及计算设备 |
| CN116724316A (zh) * | 2020-12-31 | 2023-09-08 | 华为技术有限公司 | 模型处理方法和装置 |
| WO2024031968A1 (zh) * | 2022-08-11 | 2024-02-15 | 华为云计算技术有限公司 | 一种因子计算方法、装置及计算设备 |
| CN120255872A (zh) * | 2025-06-06 | 2025-07-04 | 启元实验室 | 基于计算图的模型代码生成方法及系统 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170132513A1 (en) * | 2015-11-09 | 2017-05-11 | Google Inc. | Training neural networks represented as computational graphs |
| CN108292241A (zh) * | 2015-10-28 | 2018-07-17 | 谷歌有限责任公司 | 处理计算图 |
| CN110321999A (zh) * | 2018-03-30 | 2019-10-11 | 北京深鉴智能科技有限公司 | 神经网络计算图优化方法 |
| CN110490309A (zh) * | 2019-08-14 | 2019-11-22 | 北京中科寒武纪科技有限公司 | 一种用于神经网络的算子融合方法及其相关产品 |
| CN111222636A (zh) * | 2020-01-07 | 2020-06-02 | 深圳鲲云信息科技有限公司 | 深度学习模型的转化方法、装置、服务器及存储介质 |
-
2020
- 2020-06-24 CN CN202010588526.1A patent/CN111723935A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108292241A (zh) * | 2015-10-28 | 2018-07-17 | 谷歌有限责任公司 | 处理计算图 |
| US20170132513A1 (en) * | 2015-11-09 | 2017-05-11 | Google Inc. | Training neural networks represented as computational graphs |
| CN110321999A (zh) * | 2018-03-30 | 2019-10-11 | 北京深鉴智能科技有限公司 | 神经网络计算图优化方法 |
| CN110490309A (zh) * | 2019-08-14 | 2019-11-22 | 北京中科寒武纪科技有限公司 | 一种用于神经网络的算子融合方法及其相关产品 |
| CN111222636A (zh) * | 2020-01-07 | 2020-06-02 | 深圳鲲云信息科技有限公司 | 深度学习模型的转化方法、装置、服务器及存储介质 |
Non-Patent Citations (2)
| Title |
|---|
| 朱虎明 等: "深度神经网络并行化研究综述", 《计算机学报》 * |
| 郏乘帆: "面向大规模神经网络数据并行训练的运行时系统优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112101529A (zh) * | 2020-10-14 | 2020-12-18 | 杭州海康威视数字技术股份有限公司 | 一种用于神经网络模型推理跨平台的部署方法及架构 |
| CN112328227A (zh) * | 2020-11-03 | 2021-02-05 | 清华大学 | 编译方法、装置、计算设备和介质 |
| CN114692711A (zh) * | 2020-12-29 | 2022-07-01 | 华为技术有限公司 | 计算图的算子映射方法以及装置 |
| CN116724316A (zh) * | 2020-12-31 | 2023-09-08 | 华为技术有限公司 | 模型处理方法和装置 |
| CN112884120A (zh) * | 2021-01-29 | 2021-06-01 | 北京大学 | 图神经网络表示架构 |
| CN113052305A (zh) * | 2021-02-19 | 2021-06-29 | 展讯通信(上海)有限公司 | 神经网络模型的运行方法、电子设备和存储介质 |
| CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
| CN113469328A (zh) * | 2021-06-24 | 2021-10-01 | 上海寒武纪信息科技有限公司 | 执行转数穿过的装置、板卡、方法及可读存储介质 |
| CN113469328B (zh) * | 2021-06-24 | 2024-03-19 | 上海寒武纪信息科技有限公司 | 执行转数穿过的装置、板卡、方法及可读存储介质 |
| CN113867950A (zh) * | 2021-09-26 | 2021-12-31 | 浪潮电子信息产业股份有限公司 | 一种统一异构计算系统,一种ai加速平台 |
| CN114004335A (zh) * | 2021-10-28 | 2022-02-01 | 上海商汤科技开发有限公司 | 一种数据处理的方法、装置、电子设备及存储介质 |
| WO2023125628A1 (zh) * | 2021-12-31 | 2023-07-06 | 华为技术有限公司 | 神经网络模型优化方法、装置及计算设备 |
| CN114970845A (zh) * | 2022-01-12 | 2022-08-30 | 厦门壹普智慧科技有限公司 | 一种面向通用神经网络张量处理器的统一计算方法 |
| CN114970845B (zh) * | 2022-01-12 | 2025-03-25 | 厦门壹普智慧科技有限公司 | 一种面向通用神经网络张量处理器的统一计算方法 |
| CN114429211A (zh) * | 2022-02-07 | 2022-05-03 | 北京百度网讯科技有限公司 | 用于生成信息的方法、装置、设备、介质和产品 |
| WO2022222839A1 (zh) * | 2022-02-17 | 2022-10-27 | 之江实验室 | 一种面向神经网络模型计算的中间表示方法和装置 |
| US11823053B2 (en) | 2022-02-17 | 2023-11-21 | Zhejiang Lab | Method of neural network model computation-oriented intermediate representation by constructing physical computation graph, inferring information of input and output tensor edges of each node therein, performing memory optimization on tensor edges, and optimizing physical computation graph |
| CN114489604A (zh) * | 2022-02-17 | 2022-05-13 | 山东产业技术研究院智能计算研究院 | 一种基于计算图的算子监测方法及系统 |
| CN114489604B (zh) * | 2022-02-17 | 2025-06-17 | 济南中科泛在智能计算研究院 | 一种基于计算图的算子监测方法及系统 |
| WO2024031968A1 (zh) * | 2022-08-11 | 2024-02-15 | 华为云计算技术有限公司 | 一种因子计算方法、装置及计算设备 |
| CN120255872A (zh) * | 2025-06-06 | 2025-07-04 | 启元实验室 | 基于计算图的模型代码生成方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111723935A (zh) | 神经网络计算图的处理方法、计算机存储介质及电子设备 | |
| US20230267319A1 (en) | Training neural network accelerators using mixed precision data formats | |
| US11645493B2 (en) | Flow for quantized neural networks | |
| US20190340499A1 (en) | Quantization for dnn accelerators | |
| US12307370B2 (en) | Neural network data computation using mixed-precision | |
| US20220414439A1 (en) | Neuromorphic Synthesizer | |
| EP3899801A1 (en) | Scaled learning for training dnn | |
| CN114461221B (zh) | 编译方法、编译装置、电子设备、存储介质 | |
| US20200193273A1 (en) | Residual quantization for neural networks | |
| US12135703B2 (en) | Method and apparatus for operating accelerator using softmax approximation | |
| US20200202195A1 (en) | Neural network processing using mixed-precision data representation | |
| US20170061279A1 (en) | Updating an artificial neural network using flexible fixed point representation | |
| MacCallum | Computer algebra in gravity research | |
| US20250117637A1 (en) | Neural Network Parameter Quantization Method and Apparatus | |
| US20220207358A1 (en) | Model optimization in infrastructure processing unit (ipu) | |
| CN114239803B (zh) | 神经网络模型的编译方法和装置、电子设备和存储介质 | |
| WO2024239971A1 (zh) | 神经网络模型的编译方法、推理方法、装置、设备和介质 | |
| Sousa et al. | TbGAL: a tensor-based library for geometric algebra | |
| CN114730331B (zh) | 数据处理装置和数据处理方法 | |
| US6173247B1 (en) | Method and apparatus for accurately modeling digital signal processors | |
| US20250068891A1 (en) | Dynamic triplet convolution for convolutional neural networks | |
| Fernandes | Exploring lazy evaluation and compile-time simplifications for efficient geometric algebra computations | |
| Kanagachidambaresan et al. | Python Packages for Learning Algorithms | |
| CN114692861A (zh) | 计算图更新方法、计算图处理方法以及相关设备 | |
| WO2020118051A1 (en) | Neural network processing using specialized data representation |
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 | ||
| RJ01 | Rejection of invention patent application after publication | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200929 |