CN110515626B - 深度学习计算框架的代码编译方法及相关产品 - Google Patents
深度学习计算框架的代码编译方法及相关产品 Download PDFInfo
- Publication number
- CN110515626B CN110515626B CN201910770871.4A CN201910770871A CN110515626B CN 110515626 B CN110515626 B CN 110515626B CN 201910770871 A CN201910770871 A CN 201910770871A CN 110515626 B CN110515626 B CN 110515626B
- Authority
- CN
- China
- Prior art keywords
- neural network
- model
- network models
- operator
- support list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/045—Combinations of networks
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (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)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种深度学习计算框架的代码编译方法及相关产品,通过读取模型支持列表,模型支持列表中包括深度学习计算框架需要的多个目标神经网络模型,获取多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,根据多个算子集合生成算子支持列表,对算子支持列表中的所有算子进行编译,得到第一代码,如此,可通过仅对需要的神经网络模型的算子进行编译,减少不需要的算子,进而减少编译的代码量。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种深度学习计算框架的代码编译方法及相关产品。
背景技术
深度学习计算框架可用于完成模型推理,采用合适的数据结构来表示神经网络模型,神经网络模型中一般包括多个算子。随着深度学习技术的不断发展,深度学习的算子数量也在与日俱增,一些复杂的神经网络模型中会包括上百个算子。
目前的深度学习计算框架,会把已有的算子都编译成代码,当算子数量较多时,深度学习计算框架对这些算子进行编译后得到的代码量会非常大,导致需要消耗的内存也非常大。
发明内容
本申请实施例提供了一种深度学习计算框架的代码编译方法及相关产品,可通过仅对需要的神经网络模型的算子进行编译,减少不需要的算子,进而缩小编译的代码量,减少代码占用的内存。
第一方面,本申请实施例提供了一种深度学习计算框架的代码编译方法,所述方法包括:
读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型;
获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子;
根据所述多个算子集合生成算子支持列表;
对所述算子支持列表中的所有算子进行编译,得到第一代码。
第二方面,本申请实施例提供了一种深度学习计算框架的代码编译装置,所述深度学习计算框架的代码编译装置包括:
读取单元,用于读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型;
获取单元,用于获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子;
处理单元,用于根据所述多个算子集合生成算子支持列表;
编译单元,用于对所述算子支持列表中的所有算子进行编译,得到第一代码。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和通信接口;以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置成由所述处理器执行,所述程序包括用于如本申请实施例第一方面中所描述的部分或全部步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤的指令。
第五方面,本申请实施例提供了一种计算机程序产品,其中,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,具有如下有益效果:
可以看出,本申请实施例中所描述的深度学习计算框架的代码编译方法及相关产品,通过读取模型支持列表,模型支持列表中包括深度学习计算框架需要的多个目标神经网络模型,获取多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,根据多个算子集合生成算子支持列表,对算子支持列表中的所有算子进行编译,得到第一代码,如此,可通过仅对需要的神经网络模型的算子进行编译,减少不需要的算子,进而减少编译的代码量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种电子设备的结构示意图;
图1B是本申请实施例提供的一种深度学习计算框架的代码编译方法的流程示意图;
图1C是本申请实施例提供的一种针对两个目标神经网络模型对应的两个算子集合取并集的演示示意图;
图2是本申请实施例提供的另一种深度学习计算框架的代码编译方法的流程示意图;
图3是本申请实施例提供的另一种深度学习计算框架的代码编译方法的流程示意图;
图4是本申请实施例提供的另一种电子设备的结构示意图;
图5A是本申请实施例提供的一种深度学习计算框架的代码编译装置的结构示意图;
图5B是本申请实施例提供的如图5A所示的深度学习计算框架的代码编译装置的变型结构;
图6是本申请实施例提供的电子设备的另一种结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的电子设备可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS),终端设备(terminaldevice)等等。为方便描述,上面提到的设备统称为电子设备。
下面对本申请实施例进行详细介绍。
请参阅图1A,图1A是本申请实施例提供的一种电子设备100的结构示意图,上述电子设备100包括:壳体110、设置于所述壳体110内的电路板120,所述电路板120上设置有处理器、和存储器122。
其中,处理器可包括以下至少一种:中央处理器(Center Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural NetworkProcessing Unit,NPU)、数字信号处理器(Digital Signal Processor,DSP)等。处理器可实现神经网络模型中的算子。
请参阅图1B,图1B是本申请实施例提供的一种深度学习计算框架的代码编译方法的流程示意图,本实施例中所描述的深度学习计算框架的代码编译方法,该深度学习计算框架的代码编译方法包括:
101、读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型。
本申请实施例中,在特定的电子设备中,需要使用的目标神经网络模型是确定的,因此,可预先确定深度学习计算框架需要的多个目标神经网络模型,并根据深度学习计算框架需要的多个目标神经网络模型生成一个模型支持列表,从而,在深度学习计算框架进行代码编译之前,可以读取模型支持列表。如下表1所示,为本申请实施例提供的一种模型支持列表的示例。
目标神经网络模型 |
MobileNet-V1 |
SqueezeNet |
Shufflenetv2 |
YOLOV3 |
… |
表1
可选地,本申请实施例中,在读取模型支持列表之前,还可包括以下步骤:
A1、获取预设的模型列表,所述模型列表中包括所述深度学习计算框架能够运行的多个神经网络模型;
A2、获取模型需求信息;
A3、根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型,根据所述多个目标神经网络模型生成所述模型支持列表。
其中,上述预设的模型列表包括深度学习计算框架能够运行的多个神经网络模型,具体地,开发人员在开发一个神经网络模型后,可在神经网络模型的属性信息中设置该神经网络模型是否能在深度学习计算框架中运行的信息,因此,电子设备在获取模型支持列表之前,可预先获取深度学习计算框架能够运行的多个神经网络模型,并根据该多个神经网络模型生成预设的模型列表,从而,针对特定的电子设备,可获取电子设备的模型需求信息,其中,模型需求信息包括根据电子设备的功能需求确定的该电子设备中需要的神经网络模型的功能,进而,可根据模型需求信息从模型列表中选取深度学习计算框架需要的多个目标神经网络模型,最后,可根据多个目标神经网络模型生成模型支持列表。
如图下表2-表3所示,为本申请实施例提供的一种预设的模型列表和根据所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型的示例。
表2
如表2所示,预设的模型列表中可包括深度学习计算框架能够运行的多个神经网络模型。
神经网络模型 | 是否需要 |
MobileNet-V1 | Y |
Inception-V3 | N |
SqueezeNet | Y |
ResNet | N |
Shufflenetv2 | Y |
YOLOV3 | Y |
Deeplab v2 | N |
… | … |
表3
进而,如表3所示,可获取模型需求信息,模型需求信息包括电子设备需要使用哪些神经网络模型,其中,“Y”表示电子设备需要对应的神经网络模型,“N”表示电子设备不需要对应的神经网络模型,进而,可根据模型需求信息从模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型,根据所述多个目标神经网络模型生成所述模型支持列表,得到如表1所示的模型支持列表。
可选地,所述模型需求信息包括多个功能参数,上述步骤A3中,根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型,可包括以下步骤:
A31、从所述模型列表中选取所述多个功能参数中每一功能参数对应的一组参考神经网络模型,得到多组参考神经网络模型,每一组所述参考神经网络模型包括至少一个参考神经网络模型;
A32、获取所述多组参考神经网络模型中每一组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数,所述参考神经网络模型与所述性能参数一一对应;
A33、根据所述多组参考神经网络模型中每一组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数确定对应一组参考神经网络模型中性能最优的目标神经网络模型,得到多个目标神经网络模型,所述多个目标神经网络模型与所述多组参考神经网络模型一一对应。
本申请实施例中,考虑到针对电子设备的任一功能参数,可能对应深度学习计算框架能够运行的两个以上神经网络模型,因此,可针对每一功能参数确定一组参考神经网络模型,然后,获取该组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数,进而,可根据至少一个性能参数确定该组参考神经网络模型中性能最优的目标神经网络模型,如此,针对多个功能参数,可确定更加适合实现电子设备的功能需求的多个目标神经网络模型,提高选取目标神经网络模型的合理性和智能性。
102、获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子。
其中,多个目标神经网络模型中每一目标神经网络模型对应的算子集合包括至少一个算子,因此可获取多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,其中,任意两个目标神经网络模型之间可能存在相同的算子。
103、根据所述多个算子集合生成算子支持列表。
本申请实施例中,根据多个算子集合生成算子支持列表,具体地,可将多个算子集合中的所有算子添加至算子支持列表。
可选地,上述步骤103中,根据所述多个算子集合生成算子支持列表,可包括以下步骤:
31、对所述多个算子集合取并集,得到并集中的多个目标算子;
32、根据所述多个目标算子生成所述算子支持列表。
其中,考虑任意两个目标神经网络模型之间可能存在相同的算子,因此,可对所述多个算子集合取并集,得到并集中的多个目标算子,然后根据多个目标算子生成算子支持列表,具体地,将多个目标算子添加至算子支持列表。如图1C所示,图1C为本申请实施例提供的一种针对两个目标神经网络模型对应的两个算子集合取并集的演示示意图,其中,目标神经网络模型MobileNet-V1对应的第一算子集合包括卷积convolution算子、最大池化max pool算子、激活函数Relue算子等,目标神经网络模型YOLOV3对应的第二算子集合包括卷积convolution算子、上采样upsample算子、最大池化max pool算子等,对第一算子集合和第二算子集合取并集,可得到卷积convolution算子、最大池化max pool算子、激活函数Relue算子、上采样upsample算子等多个目标算子,进而可将该多个目标算子添加至算子支持列表。如此,可使算子支持列表中不会出现相同的算子,避免对相同的算子重复进行代码编译。
104、对所述算子支持列表中的所有算子进行编译,得到第一代码。
其中,可对算子支持列表中存在的所有算子编译代码,得到第一代码,如此,对于算子支持列表中没有出现的算子,则不进行编译,通过仅对电子设备中深度学习计算框架需要的算子进行编译,可缩小代码量。
可选地,本申请实施例中,在步骤104之后,还可包括以下步骤:
B1、获取模型升级信息,所述模型升级信息包括新增模型信息和删除模型信息;
B2、根据所述新增模型信息和删除模型信息对所述模型支持列表进行更新,得到更新后的模型支持列表;
B3、根据所述更新后的模型支持列表对所述算子支持列表进行更新,得到新的算子支持列表;
B4、对所述新的算子支持列表中的所有算子进行编译,得到第二代码。
其中,根据更新后的模型支持列表对算子支持列表进行更新,得到新的算子支持列表,具体地,可对更新后的模型支持列表中的多个新的目标标神经网络模型对应的多个算子集合取并集,得到多个新的目标算子,然后,根据多个新的目标算子生成新的算子支持列表。
本申请实施例中,在电子设备处于使用的阶段,可能需要对电子设备的功能进行升级,因此,可获取模型升级信息,该模型升级信息可包括需要新增的模型信息和需要进行删除的模型信息,然后,根据新增模型信息和删除模型信息对模型支持列表进行更新,得到更新后的模型支持列表,进而,根据更新后的模型支持列表对算子支持列表进行更新,得到新的算子支持列表,最后,对新的算子支持列表中的所有算子进行编译,得到第二代码。
可以看出,本申请实施例中所描述的深度学习计算框架的代码编译方法,通过读取模型支持列表,模型支持列表中包括深度学习计算框架需要的多个目标神经网络模型,获取多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,根据多个算子集合生成算子支持列表,对算子支持列表中的所有算子进行编译,得到第一代码,如此,可通过仅对需要的神经网络模型的算子进行编译,减少不需要的算子,进而减少编译的代码量,减少代码占用的内存。
请参阅图2,图2是本申请实施例提供的另一种深度学习计算框架的代码编译方法的流程示意图,本实施例中所描述的深度学习计算框架的代码编译方法,该方法可包括以下步骤:
201、读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型。
202、获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子。
203、对所述多个算子集合取并集,得到并集中的多个目标算子。
204、根据所述多个目标算子生成算子支持列表。
205、对所述算子支持列表中的所有算子进行编译,得到第一代码。
其中,上述步骤201-205的具体实现过程可参照步骤101-104中相应的描述,在此不再赘述。
可以看出,本申请实施例中所描述的深度学习计算框架的代码编译方法,通过读取模型支持列表,模型支持列表中包括深度学习计算框架需要的多个目标神经网络模型,获取多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,对所述多个算子集合取并集,得到并集中的多个目标算子,根据多个目标算子生成算子支持列表,对算子支持列表中的所有算子进行编译,得到第一代码,如此,可通过仅对需要的神经网络模型的算子进行编译,减少不需要的算子,进而减少编译的代码量,减少代码占用的内存。
与上述一致地,请参阅图3,为本申请实施例提供的另一种深度学习计算框架的代码编译方法的流程示意图,本实施例中所描述的深度学习计算框架的代码编译方法,该方法可包括以下步骤:
301、获取预设的模型列表,所述模型列表中包括所述深度学习计算框架能够运行的多个神经网络模型。
302、获取模型需求信息。
303、根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型,根据所述多个目标神经网络模型生成模型支持列表。
304、读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型。
305、获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子。
306、对所述多个算子集合取并集,得到并集中的多个目标算子。
307、根据所述多个目标算子生成算子支持列表。
308、对所述算子支持列表中的所有算子进行编译,得到第一代码。
其中,步骤301-308的具体实现过程可参见步骤101-104中相应的描述,在此不再赘述。
可以看出,本申请实施例中所描述的深度学习计算框架的代码编译方法,通过获取预设的模型列表,模型列表中包括所述深度学习计算框架能够运行的多个神经网络模型,获取模型需求信息,根据模型需求信息从模型列表中选取深度学习计算框架需要的多个目标神经网络模型,根据多个目标神经网络模型生成模型支持列表,读取模型支持列表,模型支持列表中包括深度学习计算框架需要的多个目标神经网络模型,获取多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,对所述多个算子集合取并集,得到并集中的多个目标算子,根据多个目标算子生成算子支持列表,对算子支持列表中的所有算子进行编译,得到第一代码,如此,可通过仅对需要的神经网络模型的算子进行编译,减少不需要的算子,进而减少编译的代码量,减少代码占用的内存。
以下是实施上述深度学习计算框架的代码编译方法的装置,具体如下:
与上述一致地,请参阅图4,图4是本申请实施例提供的一种电子设备的结构示意图,该电子设备包括:处理器410、通信接口430和存储器420;以及一个或多个程序421,所述一个或多个程序421被存储在所述存储器420中,并且被配置成由所述处理器执行,所述程序421包括用于执行以下步骤的指令:
读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型;
获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子;
根据所述多个算子集合生成算子支持列表;
对所述算子支持列表中的所有算子进行编译,得到第一代码
在一个可能的示例中,在所述根据所述多个算子集合生成算子支持列表方面,所述程序421包括用于执行以下步骤的指令:
对所述多个算子集合取并集,得到并集中的多个目标算子;
根据所述多个目标算子生成所述算子支持列表。
在一个可能的示例中,所述程序421还包括用于执行以下步骤的指令:
获取预设的模型列表,所述模型列表中包括所述深度学习计算框架能够运行的多个神经网络模型;
获取模型需求信息;
根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型,根据所述多个目标神经网络模型生成所述模型支持列表。
在一个可能的示例中,所述模型需求信息包括多个功能参数,在所述根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型方面,所述程序421包括用于执行以下步骤的指令:
从所述模型列表中选取所述多个功能参数中每一功能参数对应的一组参考神经网络模型,得到多组参考神经网络模型,每一组所述参考神经网络模型包括至少一个参考神经网络模型;
获取所述多组参考神经网络模型中每一组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数,所述参考神经网络模型与所述性能参数一一对应;
根据所述多组参考神经网络模型中每一组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数确定对应一组参考神经网络模型中性能最优的目标神经网络模型,得到多个目标神经网络模型,所述多个目标神经网络模型与所述多组参考神经网络模型一一对应。
在一个可能的示例中,所述程序421还包括用于执行以下步骤的指令:
获取模型升级信息,所述模型升级信息包括新增模型信息和删除模型信息;
根据所述新增模型信息和删除模型信息对所述模型支持列表进行更新,得到更新后的模型支持列表;
根据所述更新后的模型支持列表对所述算子支持列表进行更新,得到新的算子支持列表;
对所述新的算子支持列表中的所有算子进行编译,得到第二代码。
请参阅图5A,图5A是本实施例提供的一种深度学习计算框架的代码编译装置的结构示意图,所述深度学习计算框架的代码编译装置包括读取单元501、获取单元502和处理单元503和编译单元504,其中,
所述读取单元501,用于读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型;
所述获取单元502,用于获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子;
所述处理单元503,用于根据所述多个算子集合生成算子支持列表;
所述编译单元504,用于对所述算子支持列表中的所有算子进行编译,得到第一代码。
可选地,所述处理单元503具体用于:
对所述多个算子集合取并集,得到并集中的多个目标算子;
根据所述多个目标算子生成所述算子支持列表。
可选地,如图5B所示,图5B为图5A所示的深度学习计算框架的代码编译装置的变型结构,其与图5A相比较,还可以包括:选取单元505,其中,
所述获取单元502,还用于获取预设的模型列表,所述模型列表中包括所述深度学习计算框架能够运行的多个神经网络模型;以及获取模型需求信息;
所述选取单元505,用于根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型,根据所述多个目标神经网络模型生成所述模型支持列表。
可选地,所述模型需求信息包括多个功能参数,在所述根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型方面,所述测试单元503具体用于:
根据所述检查数据和所述运算结果确定所述第一算子的第一精度误差;
若所述第一精度误差小于预设精度误差,确定所述第一算子运行正确。
可选地,所述获取单元502,还用于获取模型升级信息,所述模型升级信息包括新增模型信息和删除模型信息;
所述处理单元503,还用于根据所述新增模型信息和删除模型信息对所述模型支持列表进行更新,得到更新后的模型支持列表;
所述处理单元503,还用于根据所述更新后的模型支持列表对所述算子支持列表进行更新,得到新的算子支持列表;
所述编译单元504,还用于对所述新的算子支持列表中的所有算子进行编译,得到第二代码。
可以看出,本申请实施例中所描述的深度学习计算框架的代码编译装置,通过读取模型支持列表,模型支持列表中包括深度学习计算框架需要的多个目标神经网络模型,获取多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,根据多个算子集合生成算子支持列表,对算子支持列表中的所有算子进行编译,得到第一代码,如此,可通过仅对需要的神经网络模型的算子进行编译,减少不需要的算子,进而减少编译的代码量,减少代码占用的内存。
可以理解的是,本实施例的深度学习计算框架的代码编译装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本申请实施例还提供了另一种电子设备,如图6所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该电子设备可以为包括手机、平板电脑、PDA(personal digital assistant,个人数字助理)、POS(point of sales,销售终端)、车载电脑等任意终端设备,以电子设备为手机为例:
图6示出的是与本申请实施例提供的电子设备相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路910、存储器920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(Wireless Fidelity,Wi-Fi)模块970、处理器980以及电源990等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路910可用于信息的接收和发送。通常,RF电路910包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路910还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元930可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元930可包括指纹识别模组931以及其他输入设备932。指纹识别模组931,可采集用户在其上的指纹数据。除了指纹识别模组931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于触控屏、物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元940可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元940可包括显示屏941,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机或无机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示屏941。
手机还可包括至少一种传感器950,其中,传感器包括环境传感器,环境传感器可包括温度传感器、湿度传感器和环境光传感器。除了环境传感器951,传感器950还可以包括其他传感器952,比如运动传感器、压力传感器等等。其中,环境光传感器还可根据环境光线的明暗来调节手机的背光亮度,进而调节显示屏941的亮度,接近传感器可在手机移动到耳边时,关闭显示屏941和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路960、扬声器961,传声器962可提供用户与手机之间的音频接口。音频电路960可将接收到的音频数据转换后的电信号,传输到扬声器961,由扬声器961转换为声音信号播放;另一方面,传声器962将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据播放处理器980处理后,经RF电路910以发送给比如另一手机,或者将音频数据播放至存储器920以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了Wi-Fi模块970,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器980是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器980可包括一个或多个处理单元;优选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
手机还包括给各个部件供电的电源990(比如电池),优选的,电源可以通过电源管理系统与处理器980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
手机还可以包括摄像头,摄像头用于拍摄图像与视频,并将拍摄的图像和视频传输到处理器980进行处理。
手机还可以包括蓝牙模块等,在此不再赘述。
前述图1B、图2和图3所示的实施例中,各步骤方法流程可以基于该手机的结构实现。
本申请实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述深度学习计算框架的代码编译方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一深度学习计算框架的代码编译方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (7)
1.一种深度学习计算框架的代码编译方法,其特征在于,所述方法包括:
读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型;
获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子;
根据所述多个算子集合生成算子支持列表;
对所述算子支持列表中的所有算子进行编译,得到第一代码;
所述方法还包括:获取预设的模型列表,所述模型列表中包括所述深度学习计算框架能够运行的多个神经网络模型;
获取模型需求信息,所述模型需求信息包括多个功能参数;
根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型,包括:从所述模型列表中选取所述多个功能参数中每一功能参数对应的一组参考神经网络模型,得到多组参考神经网络模型,每一组所述参考神经网络模型包括至少一个参考神经网络模型,获取所述多组参考神经网络模型中每一组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数,所述参考神经网络模型与所述性能参数一一对应,根据所述多组参考神经网络模型中每一组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数确定对应一组参考神经网络模型中性能最优的目标神经网络模型,得到多个目标神经网络模型,所述多个目标神经网络模型与所述多组参考神经网络模型一一对应;
根据所述多个目标神经网络模型生成所述模型支持列表。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个算子集合生成算子支持列表,包括:
对所述多个算子集合取并集,得到并集中的多个目标算子;
根据所述多个目标算子生成所述算子支持列表。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取模型升级信息,所述模型升级信息包括新增模型信息和删除模型信息;
根据所述新增模型信息和删除模型信息对所述模型支持列表进行更新,得到更新后的模型支持列表;
根据所述更新后的模型支持列表对所述算子支持列表进行更新,得到新的算子支持列表;
对所述新的算子支持列表中的所有算子进行编译,得到第二代码。
4.一种深度学习计算框架的代码编译装置,其特征在于,所述深度学习计算框架的代码编译装置包括:
读取单元,用于读取模型支持列表,所述模型支持列表中包括所述深度学习计算框架需要的多个目标神经网络模型;
获取单元,用于获取所述多个目标神经网络模型中每一目标神经网络模型对应的算子集合,得到多个算子集合,每一所述算子集合包括对应目标神经网络模型的至少一个算子;
处理单元,用于根据所述多个算子集合生成算子支持列表;
编译单元,用于对所述算子支持列表中的所有算子进行编译,得到第一代码;
所述装置还包括选取单元,其中,
所述获取单元,还用于获取预设的模型列表,所述模型列表中包括所述深度学习计算框架能够运行的多个神经网络模型;以及获取模型需求信息,所述模型需求信息包括多个功能参数;
所述选取单元,用于根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型,根据所述多个目标神经网络模型生成所述模型支持列表;
在所述根据所述模型需求信息从所述模型列表中选取所述深度学习计算框架需要的所述多个目标神经网络模型方面,所述选取单元具体用于从所述模型列表中选取所述多个功能参数中每一功能参数对应的一组参考神经网络模型,得到多组参考神经网络模型,每一组所述参考神经网络模型包括至少一个参考神经网络模型,获取所述多组参考神经网络模型中每一组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数,所述参考神经网络模型与所述性能参数一一对应,根据所述多组参考神经网络模型中每一组参考神经网络模型中至少一个参考神经网络模型的至少一个性能参数确定对应一组参考神经网络模型中性能最优的目标神经网络模型,得到多个目标神经网络模型,所述多个目标神经网络模型与所述多组参考神经网络模型一一对应。
5.根据权利要求4所述的装置,其特征在于,所述处理单元具体用于:
对所述多个算子集合取并集,得到并集中的多个目标算子;
根据所述多个目标算子生成所述算子支持列表。
6.一种电子设备,其特征在于,包括:处理器、存储器和通信接口;以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置成由所述处理器执行,所述程序包括用于如权利要求1-3任一项所述的方法的指令。
7.一种计算机可读存储介质,其特征在于,其用于存储计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910770871.4A CN110515626B (zh) | 2019-08-20 | 2019-08-20 | 深度学习计算框架的代码编译方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910770871.4A CN110515626B (zh) | 2019-08-20 | 2019-08-20 | 深度学习计算框架的代码编译方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110515626A CN110515626A (zh) | 2019-11-29 |
CN110515626B true CN110515626B (zh) | 2023-04-18 |
Family
ID=68626862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910770871.4A Active CN110515626B (zh) | 2019-08-20 | 2019-08-20 | 深度学习计算框架的代码编译方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515626B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113033760B (zh) * | 2019-12-09 | 2024-05-10 | 中科寒武纪科技股份有限公司 | 用于测试神经网络中算子精度的方法、测试装置及其系统 |
CN111580828B (zh) * | 2020-04-30 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 机器学习模型的编译优化方法和装置 |
CN112101571B (zh) * | 2020-09-25 | 2024-08-16 | 北京百度网讯科技有限公司 | 用于监控深度学习框架下的算子兼容性的方法和装置 |
CN112270413B (zh) * | 2020-10-22 | 2024-02-27 | 北京百度网讯科技有限公司 | 算子合并方法、装置、电子设备及存储介质 |
CN114519167A (zh) * | 2020-11-19 | 2022-05-20 | 华为技术有限公司 | 一种算子计算方法、装置、设备及系统 |
CN112764755B (zh) * | 2021-01-13 | 2022-04-12 | 北京百度网讯科技有限公司 | 代码转换方法、装置、设备以及存储介质 |
CN112799642B (zh) * | 2021-01-18 | 2022-04-05 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置、设备以及存储介质 |
CN113031966B (zh) * | 2021-05-20 | 2021-09-21 | 之江实验室 | 一种智能选择编译加速库的深度学习编译优化方法 |
CN113220306A (zh) * | 2021-05-31 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 操作执行方法、装置和电子设备 |
CN114924745A (zh) * | 2022-05-19 | 2022-08-19 | 北京百度网讯科技有限公司 | 深度学习编译器的运行方法、装置及电子设备 |
CN118394348B (zh) * | 2024-06-28 | 2024-10-22 | 浪潮电子信息产业股份有限公司 | 一种算子调度方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894070A (zh) * | 2010-06-04 | 2010-11-24 | 中国科学院软件研究所 | 一种基于加权调整的新需求代码量量化评估方法及系统 |
CN105912381A (zh) * | 2016-04-27 | 2016-08-31 | 华中科技大学 | 一种基于规则库的编译期代码安全检测方法 |
CN106487803A (zh) * | 2016-11-10 | 2017-03-08 | 深圳市任子行科技开发有限公司 | 用于大流量网络入侵检测系统的模式匹配算法和系统 |
CN107633295A (zh) * | 2017-09-25 | 2018-01-26 | 北京地平线信息技术有限公司 | 用于适配神经网络的参数的方法和装置 |
CN109643229A (zh) * | 2018-04-17 | 2019-04-16 | 深圳鲲云信息科技有限公司 | 网络模型的应用开发方法及相关产品 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2525729A1 (en) * | 2004-11-08 | 2006-05-08 | At&T Corp. | System and method for compiling rules created by machine learning program |
CN107239315B (zh) * | 2017-04-11 | 2019-11-15 | 赛灵思公司 | 面向神经网络异构计算平台的编程模型 |
US10606566B2 (en) * | 2017-06-03 | 2020-03-31 | Apple Inc. | Integration of learning models into a software development system |
-
2019
- 2019-08-20 CN CN201910770871.4A patent/CN110515626B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894070A (zh) * | 2010-06-04 | 2010-11-24 | 中国科学院软件研究所 | 一种基于加权调整的新需求代码量量化评估方法及系统 |
CN105912381A (zh) * | 2016-04-27 | 2016-08-31 | 华中科技大学 | 一种基于规则库的编译期代码安全检测方法 |
CN106487803A (zh) * | 2016-11-10 | 2017-03-08 | 深圳市任子行科技开发有限公司 | 用于大流量网络入侵检测系统的模式匹配算法和系统 |
CN107633295A (zh) * | 2017-09-25 | 2018-01-26 | 北京地平线信息技术有限公司 | 用于适配神经网络的参数的方法和装置 |
CN109643229A (zh) * | 2018-04-17 | 2019-04-16 | 深圳鲲云信息科技有限公司 | 网络模型的应用开发方法及相关产品 |
Non-Patent Citations (2)
Title |
---|
ALAMO: FPGA acceleration of deep learning algorithms with a modularized RTL compiler;YufeiMa 等;《Integration》;20180630;第14-23页 * |
基于ReRAM的神经网络加速器发展概况;周川波;《西部广播电视》;20181231;第246-251页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110515626A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515626B (zh) | 深度学习计算框架的代码编译方法及相关产品 | |
CN107708168B (zh) | Sim卡切换方法、移动终端以及计算机可读存储介质 | |
CN110210605B (zh) | 硬件算子匹配方法及相关产品 | |
CN103455330A (zh) | 应用程序管理方法、终端、设备及系统 | |
CN106413070B (zh) | 一种功率调整方法、移动终端及计算机可读存储介质 | |
CN104598443A (zh) | 语言服务提供方法、装置及系统 | |
CN110428782B (zh) | 亮度调节方法及相关产品 | |
CN104954159A (zh) | 一种网络信息统计的方法和装置 | |
CN106534288A (zh) | 一种数据传输方法及移动终端 | |
CN109126124B (zh) | 引擎适配方法、相关设备以及计算机可读存储介质 | |
CN109960581B (zh) | 硬件资源配置方法、装置、移动终端及存储介质 | |
CN105550316A (zh) | 音频列表的推送方法及装置 | |
CN109316751B (zh) | 游戏适配方法、相关设备以及计算机可读存储介质 | |
CN107368998A (zh) | 日程管理方法及相关产品 | |
CN110597973A (zh) | 一种人机对话的方法、装置、终端设备和可读存储介质 | |
CN107566654B (zh) | 解锁控制方法及相关产品 | |
CN104102560A (zh) | 系统性能测试的方法及装置 | |
CN112328304A (zh) | 一种脚本适配方法、系统、设备及计算机存储介质 | |
CN107979688B (zh) | 一种应用程序的管理方法及移动终端 | |
CN105354067A (zh) | 一种界面配置方法及装置 | |
CN117009845A (zh) | 一种类增量模型的训练方法、装置以及存储介质 | |
CN113012267B (zh) | 一种特效动画的测试方法和相关装置 | |
CN105681723A (zh) | 音视频通话方法及装置 | |
CN116450808B (zh) | 一种数据的处理方法、装置以及存储介质 | |
CN117094307A (zh) | 一种语句处理的方法和相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |