CN111667061B - 一种基于目标众核的深度学习框架移植与优化方法及系统 - Google Patents
一种基于目标众核的深度学习框架移植与优化方法及系统 Download PDFInfo
- Publication number
- CN111667061B CN111667061B CN202010305857.XA CN202010305857A CN111667061B CN 111667061 B CN111667061 B CN 111667061B CN 202010305857 A CN202010305857 A CN 202010305857A CN 111667061 B CN111667061 B CN 111667061B
- Authority
- CN
- China
- Prior art keywords
- deep learning
- core
- target many
- compiling
- parallel
- 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
- 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
- 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/08—Learning methods
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种基于目标众核的深度学习框架移植与优化方法及系统,包括:移植过程为:将深度学习框架的源码移植到目标众核机器上,依据目标众核机器的编译指令,对该框架进行修改与编译,使其满足目标众核机器的运行条件;加速优化过程为:使用该框架在国产众核上分别运行基于深度学习的功能模型,并使用目标众核性能分析工具对代码进行分析,实现对热点函数的确认与提取;对热点函数的特征以及函数参数进行分析与测试,使用并行加速库对热点函数进行加速,确定优化策略,最终在确保框架正确性的前提下提高该框架的加速比,并根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。
Description
技术领域
本发明涉及高性能计算技术领域,并且更具体地,涉及一种基于目标众核的深度学习框架移植与优化方法及系统。
背景技术
随着人工智能的迅速发展,深度学习作为人工智能的强大技术支撑,已经在手写数字识别、语音识别和图像理解等方面实现了广泛的应用。而随着数据和硬件设备的迅速发展,卷积神经网络也从最初的5层、6层到类似MSRA提出的152层ResidualNet,甚至更深的层次。并且随着人类对信息处理能力的要求越来越高,普通单核或多核处理器已经无法满足深度学习中海量计算的需求。
目前,神经网络都是依托于GPU上的图形计算,在国产众核架构平台上暂时没有灵活性以及扩展性较强的深度学习框架。而国产众核平台是我国自主研发的高性能计算集群,以国产众核处理器为核心,每个处理器包含多个异构核组,且每个核组由1个运算控制核心和64个加速运算核心构成。众核为深度学习提供超强算力,深度学习帮助超算实现更优化的资源分配和能源管理,基于国产众核的高性能并行计算与深度学习的结合将成为未来的趋势。但其硬件结构的独特性,目前卷积神经网络算法在该系统上运行存在两个问题,一是该平台不支持人工智能框架,必须经过移植才可以运行,另一个是,CNN移植成功后,需要对算法进行主从核并行加速计算,才可以充分调用国产众核处理器的计算资源。
目前用户对深度学习框架的移植和优化的需求主要体现在三方面:(1)由于神经网络是一个非线性网络模型,计算复杂度超高,要求计算机的性能极高,而众核作为现代超级计算机的新型计算机资源,基于新型体系结构的并行化方法是实现深度学习神经网络算法并行加速的最佳选择。(2)目前针对神经网络的研究几乎都是基于GPU的方式实现计算并行化,而国产众核处理器暂时还没有一种较灵活且具有高扩展性的可并行的深度学习框架。因此,为使该框架可以在国产众核处理器上加速运行,对神经网络的移植和并行加速的研究是不可或缺的。(3)分布式和并行计算是提高神经网络收敛速度的主要方法,而如何在相同超参数的条件下实现卷积神经网络更快的收敛速度,一直都是人工智能领域所关注的重点。
发明内容
本发明提出一种基于目标众核的深度学习框架移植与优化方法及系统,以解决如何对基于目标众核的深度学习框架进行移植和优化的问题。
为了解决上述问题,根据本发明的一个方面,提供了一种基于目标众核的深度学习框架移植与优化方法,所述方法包括:
将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型;
利用所述深度学习框架在所述目标众核处理器上分别运行预设的深度学习模型,并利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,获取所述热点函数的统计结果;
根据所述热点函数的统计结果,将所述热点函数中涉及的参数以结构体进行打包,并利用加速库编写每个热点函数对应的主从核并行代码;
分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比;
根据所述加速比确定优化策略,并根据所述优化策略重新进行主从核并行代码的编写,直至所述加速比满足预设的加速比阈值时,根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。
优选地,其中所述将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型,包括:
将深度学习框架的源码传入目标众核处理器的主控服务器,对所述深度学习框架的编译顺序以及编译规则进行分析;
依据所述目标众核处理器的编译指令对所述深度学习框架进行修改和编译,获取基于所述目标众核处理器的深度学习框架编译文件,以满足所述目标众核处理器的运行条件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型。
优选地,其中所述预设的深度学习模型包括:图像分类模型、目标检测模型和文本预测模型。
优选地,其中所述利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,包括:
利用目标众核性能分析工具gprof对深度学习框架的源码和运行日志进行分析,确定每个函数的计算时间、调用次数以及在深度学习模型训练期间占据的比例,并根据每个函数的算时间、调用次数以及在深度学习模型训练期间占据的比例,确定并提取热点函数。
优选地,其中所述方法还包括:
在分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比之前,对所述主从核并行代码进行随机变量赋值的测试,确定并行加速结果的准确性;若所并行加速结果的准确性不满足预设的准确性要求,则修改所述主从核并行代码。
优选地,其中所述根据所述加速比确定优化策略,包括:
若当前的加速比小于预设的加速比阈值,则根据所述深度学习框架当前的编译文件,添加基于从核的编译优化指令,并更新所述深度学习框架的编译文件;同时,分析热点函数中运算变量与从核ID之间的对应关系,基于并行加速库添加DMA与RMA结合的数据共享策略和传输并行优化策略。
根据本发明的另一个方面,提供了一种基于目标众核的深度学习框架移植与优化系统,所述系统包括:
深度学习框架移植单元,用于将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型;
热点函数获取单元,用于利用所述深度学习框架在所述目标众核处理器上分别运行预设的深度学习模型,并利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,获取所述热点函数的统计结果;
主从核并行代码编写单元,用于根据所述热点函数的统计结果,将所述热点函数中涉及的参数以结构体进行打包,并利用加速库编写每个热点函数对应的主从核并行代码;
加速比计算单元,用于分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比;
优化单元,用于根据所述加速比确定优化策略,并根据所述优化策略重新进行主从核并行代码的编写,直至所述加速比满足预设的加速比阈值时,根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。
优选地,其中所述深度学习框架移植单元,将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型,包括:
将深度学习框架的源码传入目标众核处理器的主控服务器,对所述深度学习框架的编译顺序以及编译规则进行分析;
依据所述目标众核处理器的编译指令对所述深度学习框架进行修改和编译,获取基于所述目标众核处理器的深度学习框架编译文件,以满足所述目标众核处理器的运行条件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型。
优选地,其中所述预设的深度学习模型包括:图像分类模型、目标检测模型和文本预测模型。
优选地,其中所述热点函数确定单元,利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,包括:
利用目标众核性能分析工具gprof对深度学习框架的源码和运行日志进行分析,确定每个函数的计算时间、调用次数以及在深度学习模型训练期间占据的比例,并根据每个函数的算时间、调用次数以及在深度学习模型训练期间占据的比例,确定并提取热点函数。
优选地,其中所述系统还包括:
并行加速结果的准确定确定单元,用于在分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比之前,对所述主从核并行代码进行随机变量赋值的测试,确定并行加速结果的准确性;若所并行加速结果的准确性不满足预设的准确性要求,则修改所述主从核并行代码。
优选地,其中所述优化单元,根据所述加速比确定优化策略,包括:
若当前的加速比小于预设的加速比阈值,则根据所述深度学习框架当前的编译文件,添加基于从核的编译优化指令,并更新所述深度学习框架的编译文件;同时,分析热点函数中运算变量与从核ID之间的对应关系,基于并行加速库添加DMA与RMA结合的数据共享策略和传输并行优化策略。
本发明提供了一种基于目标众核的深度学习框架移植与优化方法及系统,将深度学习框架的源码移植到目标众核机器上,依据目标众核机器的编译指令,对该框架进行修改与编译,使其满足目标众核机器的运行条件;加速优化的过程为:使用该框架在国产众核上分别运行基于深度学习的功能模型,并使用目标众核性能分析工具对代码进行分析,实现对热点函数的确认与提取;对热点函数的特征以及函数参数进行分析与测试,使用并行加速库对热点函数进行加速,确定优化策略,最终在确保框架正确性的前提下提高该框架的加速比,并根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。本发明的方法能够根据用户设计的神经网络结构自动调用已封装好的从核加速代码,整个过程省去了人工尝试各种主从核代码方案的时间和精力,对用户来说是一劳永逸的,也就是说,当主控服务器完成深度学习框架得移植和加速后,用户可通过该框架直接获得最优的并行加速效果且无需再长时间的等待参数的收敛和模型的生成,无需再进行多次尝试。大大降低了深度学习领域的时间成本,提高了开发人员的效率。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明实施方式的基于目标众核的深度学习框架移植与优化方法100的流程图;
图2为根据本发明实施方式的客户端使用深度学习框架生成模型的流程图;
图3为根据本发明实施方式的基于目标众核的深度学习框架移植与优化系统300的结构是示意图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明实施方式的基于目标众核的深度学习框架移植与优化方法100的流程图。如图1所示,本发明实施方式提供的基于目标众核的深度学习框架移植与优化方法,能够根据用户设计的神经网络结构自动调用已封装好的从核加速代码,整个过程省去了人工尝试各种主从核代码方案的时间和精力,对用户来说是一劳永逸的,也就是说,当主控服务器完成深度学习框架得移植和加速后,用户可通过该框架直接获得最优的并行加速效果且无需再长时间的等待参数的收敛和模型的生成,无需再进行多次尝试。大大降低了深度学习领域的时间成本,提高了开发人员的效率。本发明实施方式提供的基于目标众核的深度学习框架移植与优化方法100,从步骤101处开始,在步骤101将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型。
优选地,其中所述将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型,包括:
将深度学习框架的源码传入目标众核处理器的主控服务器,对所述深度学习框架的编译顺序以及编译规则进行分析;
依据所述目标众核处理器的编译指令对所述深度学习框架进行修改和编译,获取基于所述目标众核处理器的深度学习框架编译文件,以满足所述目标众核处理器的运行条件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型。
在本发明的实施方式中,所述深度学习框架可以为darket,目标众核可以为国产众核。在进行深度学习框架移植时,将深度学习框架的源代码传入国产众核的主控服务器,对该框架的编译顺序以及编译规则进行分析,然后依据国产众核处理器的编译指令,对该框架的编译文件进行修改并重新编译该框架,使所述深度学习框架编译文件满足国产众核机器的运行条件,并能够在主核串行模式下运行深度学习模型。
在步骤102,利用所述深度学习框架在所述目标众核处理器上分别运行预设的深度学习模型,并利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,获取所述热点函数的统计结果。
优选地,其中所述预设的深度学习模型包括:图像分类模型、目标检测模型和文本预测模型。
优选地,其中所述利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,包括:
利用目标众核性能分析工具gprof对深度学习框架的源码和运行日志进行分析,确定每个函数的计算时间、调用次数以及在深度学习模型训练期间占据的比例,并根据每个函数的算时间、调用次数以及在深度学习模型训练期间占据的比例,确定并提取热点函数。
在本发明的实施方式中,热点函数代码特征提取的过程为:在主控服务器使用该深度学习框架在目标众核上分别运行基于深度学习的图像分类、目标检测和文本预测等功能的经典模型,并使用国产众核性能分析工具gprof对代码和运行日志进行分析,统计每个函数的计算时间、调用次数以及在模型训练期间占据的比例,以实现对热点函数的确认与提取,获取多个热点函数。
在步骤103,根据所述热点函数的统计结果,将所述热点函数中涉及的参数以结构体进行打包,并利用加速库编写每个热点函数对应的主从核并行代码。
在步骤104,分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比。
优选地,其中所述方法还包括:在分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比之前,对所述主从核并行代码进行随机变量赋值的测试,确定并行加速结果的准确性;若所并行加速结果的准确性不满足预设的准确性要求,则修改所述主从核并行代码。
在本发明的实施方式中,并行加速的过程包括:首先,根据对热点函数的统计结果,将每个热点函数中涉及的参数以结构体进行打包,以满足并行加速时传递多参数的要求,并编写各个热点函数对应的主从核加速代码。然后,对当前的主从核并行代码进行随机变量赋值进行测试,以检测并行加速结果的准确性;若并行加速结果的准确性满足要求,则确定当前的主从核并行代码;反之,则修改当前的主从核并行代码,直至并行加速结果的准确性通过测试后,确定当前的主从核并行代码。最后,分别在主核串行模式和主从核并行模式下运行深度学习模型,确定主核串行运行时间和主从核加速运行时间,并计算主核串行运行时间与主从核加速运行时间的差值与所述主从核加速运行时间的比值,将该比值作为加速比。
在步骤105,根据所述加速比确定优化策略,并根据所述优化策略重新进行主从核并行代码的编写,直至所述加速比满足预设的加速比阈值时,根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。
优选地,其中所述根据所述加速比确定优化策略,包括:
若当前的加速比小于预设的加速比阈值,则根据所述深度学习框架当前的编译文件,添加基于从核的编译优化指令,并更新所述深度学习框架的编译文件;同时,分析热点函数中运算变量与从核ID之间的对应关系,基于并行加速库添加DMA与RMA结合的数据共享策略和传输并行优化策略。
在本发明的实施方式中,若当前的加速比小于预设的加速比阈值,则根据所述深度学习框架当前的编译文件,添加基于从核的编译优化指令;同时,分析热点函数中运算变量与从核ID之间的对应关系,研究核组8*8阵列结构,基于并行加速库添加DMA与RMA结合的数据共享策略和传输并行优化策略,利用所述优化策略进行优化,以在确保框架正确性的前提下提高该框架的加速比。直至所述加速比满足预设的加速比阈值时,根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。
本发明实施方式提供的深度学习框架移植和优化方法,围绕深度学习框架源代码的可并行性以及可扩展性等问题,研究基于国产众核的并行加速方法,能够自动对用户输入的模型进行并行加速,整个过程省去了人工尝试代码编写调整和模型生成的时间,对用户来说是一劳永逸的,也就是说,当用户下一次再用这个框架实现神经网络模型时就可以直接使用加速好的框架针对输入的模型参数进行训练,而无需再进行多次尝试。
图2为根据本发明实施方式的客户端使用深度学习框架生成模型的流程图。如图2所示,在客户端获取一个已训练完成的模型具体过程为:客户端向所述主控服务器发送登录账号和密码,所述主控服务器在所述用户身份数据库内进行验证,待验证通过,所述客户端生成一个下载请求信息,将该下载请求信息发送至所述主控服务器,所述主控服务器根据请求下载的存储地址访问数据存储服务器,数据存储服务器检索至对应的信息,供所述主控服务器下载,所述主控服务器将下载的已训练完成的模型返回给所述客户端。
图3为根据本发明实施方式的基于目标众核的深度学习框架移植与优化系统300的结构示意图。如图3所示,本发明实施方式提供的基于目标众核的深度学习框架移植与优化系统300,包括:深度学习框架移植单元301、热点函数获取单元302、主从核并行代码编写单元303、加速比计算单元304和优化单元305。
优选地,所述深度学习框架移植单元301,用于将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型。
优选地,其中所述深度学习框架移植单元301,将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型,包括:
将深度学习框架的源码传入目标众核处理器的主控服务器,对所述深度学习框架的编译顺序以及编译规则进行分析;
依据所述目标众核处理器的编译指令对所述深度学习框架进行修改和编译,获取基于所述目标众核处理器的深度学习框架编译文件,以满足所述目标众核处理器的运行条件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型。
优选地,所述热点函数获取单元302,用于利用所述深度学习框架在所述目标众核处理器上分别运行预设的深度学习模型,并利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,获取所述热点函数的统计结果。
优选地,其中所述预设的深度学习模型包括:图像分类模型、目标检测模型和文本预测模型。
优选地,其中所述热点函数确定单元302,利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,包括:
利用目标众核性能分析工具gprof对深度学习框架的源码和运行日志进行分析,确定每个函数的计算时间、调用次数以及在深度学习模型训练期间占据的比例,并根据每个函数的算时间、调用次数以及在深度学习模型训练期间占据的比例,确定并提取热点函数。
优选地,所述主从核并行代码编写单元303,用于根据所述热点函数的统计结果,将所述热点函数中涉及的参数以结构体进行打包,并利用加速库编写每个热点函数对应的主从核并行代码。
优选地,所述加速比计算单元304,用于分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比。
优选地,其中所述系统还包括:并行加速结果的准确定确定单元,用于在分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比之前,对所述主从核并行代码进行随机变量赋值的测试,确定并行加速结果的准确性;若所并行加速结果的准确性不满足预设的准确性要求,则修改所述主从核并行代码。
优选地,所述优化单元305,用于根据所述加速比确定优化策略,并根据所述优化策略重新进行主从核并行代码的编写,直至所述加速比满足预设的加速比阈值时,根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。
优选地,其中所述优化单元,根据所述加速比确定优化策略,包括:若当前的加速比小于预设的加速比阈值,则根据所述深度学习框架当前的编译文件,添加基于从核的编译优化指令,并更新所述深度学习框架的编译文件;同时,分析热点函数中运算变量与从核ID之间的对应关系,基于并行加速库添加DMA与RMA结合的数据共享策略和传输并行优化策略。
本发明的实施例的基于目标众核的深度学习框架移植与优化系统300与本发明的另一个实施例的基于目标众核的深度学习框架移植与优化方法100相对应,在此不再赘述。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (12)
1.一种基于目标众核的深度学习框架移植与优化方法,其特征在于,所述方法包括:
将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型;
利用所述深度学习框架在所述目标众核处理器上分别运行预设的深度学习模型,并利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,获取所述热点函数的统计结果;
根据所述热点函数的统计结果,将所述热点函数中涉及的参数以结构体进行打包,并利用加速库编写每个热点函数对应的主从核并行代码;
分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比;
根据所述加速比确定优化策略,并根据所述优化策略重新进行主从核并行代码的编写,直至所述加速比满足预设的加速比阈值时,根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。
2.根据权利要求1所述的方法,其特征在于,所述将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型,包括:
将深度学习框架的源码传入目标众核处理器的主控服务器,对所述深度学习框架的编译顺序以及编译规则进行分析;
依据所述目标众核处理器的编译指令对所述深度学习框架进行修改和编译,获取基于所述目标众核处理器的深度学习框架编译文件,以满足所述目标众核处理器的运行条件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型。
3.根据权利要求1所述的方法,其特征在于,所述预设的深度学习模型包括:图像分类模型、目标检测模型和文本预测模型。
4.根据权利要求1所述的方法,其特征在于,所述利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,包括:
利用目标众核性能分析工具gprof对深度学习框架的源码和运行日志进行分析,确定每个函数的计算时间、调用次数以及在深度学习模型训练期间占据的比例,并根据每个函数的算时间、调用次数以及在深度学习模型训练期间占据的比例,确定并提取热点函数。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比之前,对所述主从核并行代码进行随机变量赋值的测试,确定并行加速结果的准确性;若所并行加速结果的准确性不满足预设的准确性要求,则修改所述主从核并行代码。
6.根据权利要求1所述的方法,其特征在于,所述根据所述加速比确定优化策略,包括:
若当前的加速比小于预设的加速比阈值,则根据所述深度学习框架当前的编译文件,添加基于从核的编译优化指令,并更新所述深度学习框架的编译文件;同时,分析热点函数中运算变量与从核ID之间的对应关系,基于并行加速库添加DMA与RMA结合的数据共享策略和传输并行优化策略。
7.一种基于目标众核的深度学习框架移植与优化系统,其特征在于,所述系统包括:
深度学习框架移植单元,用于将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型;
热点函数获取单元,用于利用所述深度学习框架在所述目标众核处理器上分别运行预设的深度学习模型,并利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,获取所述热点函数的统计结果;
主从核并行代码编写单元,用于根据所述热点函数的统计结果,将所述热点函数中涉及的参数以结构体进行打包,并利用加速库编写每个热点函数对应的主从核并行代码;
加速比计算单元,用于分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比;
优化单元,用于根据所述加速比确定优化策略,并根据所述优化策略重新进行主从核并行代码的编写,直至所述加速比满足预设的加速比阈值时,根据当前的主从核并行代码对所述深度学习框架的编译文件进行修改与测试,以实现当前的主从核并行代码的混合编译与运行。
8.根据权利要求7所述的系统,其特征在于,所述深度学习框架移植单元,将深度学习框架的源码移植到目标众核处理器上,并编写基于所述目标众核处理器的深度学习框架编译文件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型,包括:
将深度学习框架的源码传入目标众核处理器的主控服务器,对所述深度学习框架的编译顺序以及编译规则进行分析;
依据所述目标众核处理器的编译指令对所述深度学习框架进行修改和编译,获取基于所述目标众核处理器的深度学习框架编译文件,以满足所述目标众核处理器的运行条件,使所述目标众核处理器能够在主核串行模式下运行深度学习模型。
9.根据权利要求7所述的系统,其特征在于,所述预设的深度学习模型包括:图像分类模型、目标检测模型和文本预测模型。
10.根据权利要求7所述的系统,其特征在于,所述热点函数确定单元,利用目标众核性能分析工具对深度学习框架的源码进行分析,确定并提取热点函数,包括:
利用目标众核性能分析工具gprof对深度学习框架的源码和运行日志进行分析,确定每个函数的计算时间、调用次数以及在深度学习模型训练期间占据的比例,并根据每个函数的算时间、调用次数以及在深度学习模型训练期间占据的比例,确定并提取热点函数。
11.根据权利要求7所述的系统,其特征在于,所述系统还包括:
并行加速结果的准确定确定单元,用于在分别基于所述主核串行代码和主从核并行代码运行所述预设的深度学习模型,根据主核串行代码的运行时间和主从并行代码的运行时间计算加速比之前,对所述主从核并行代码进行随机变量赋值的测试,确定并行加速结果的准确性;若所并行加速结果的准确性不满足预设的准确性要求,则修改所述主从核并行代码。
12.根据权利要求7所述的系统,其特征在于,所述优化单元,根据所述加速比确定优化策略,包括:
若当前的加速比小于预设的加速比阈值,则根据所述深度学习框架当前的编译文件,添加基于从核的编译优化指令,并更新所述深度学习框架的编译文件;同时,分析热点函数中运算变量与从核ID之间的对应关系,基于并行加速库添加DMA与RMA结合的数据共享策略和传输并行优化策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305857.XA CN111667061B (zh) | 2020-04-17 | 2020-04-17 | 一种基于目标众核的深度学习框架移植与优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305857.XA CN111667061B (zh) | 2020-04-17 | 2020-04-17 | 一种基于目标众核的深度学习框架移植与优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111667061A CN111667061A (zh) | 2020-09-15 |
CN111667061B true CN111667061B (zh) | 2023-04-18 |
Family
ID=72382874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010305857.XA Active CN111667061B (zh) | 2020-04-17 | 2020-04-17 | 一种基于目标众核的深度学习框架移植与优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111667061B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306678B (zh) * | 2020-10-22 | 2022-10-04 | 中国海洋大学 | 一种基于异构众核处理器的算法并行处理方法及系统 |
CN113031966B (zh) * | 2021-05-20 | 2021-09-21 | 之江实验室 | 一种智能选择编译加速库的深度学习编译优化方法 |
CN113886251B (zh) * | 2021-09-30 | 2023-04-11 | 四川大学 | 基于热力图的热点函数确定方法 |
CN115658370B (zh) * | 2022-11-18 | 2023-05-23 | 辉羲智能科技(上海)有限公司 | 一种基于编译器的机器学习加速芯片故障实时探测方法 |
CN116991428B (zh) * | 2023-09-28 | 2023-12-15 | 飞腾信息技术有限公司 | 一种编译方法、装置、编译器、计算设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570565A (zh) * | 2016-11-21 | 2017-04-19 | 中国科学院计算机网络信息中心 | 一种面向大数据的深度学习方法及系统 |
CN106650931A (zh) * | 2016-12-09 | 2017-05-10 | 曙光信息产业(北京)有限公司 | 混合精度深度学习算法 |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
CN107168683A (zh) * | 2017-05-05 | 2017-09-15 | 中国科学院软件研究所 | 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389763B (zh) * | 2018-04-20 | 2023-06-16 | 伊姆西Ip控股有限责任公司 | 用于调度专用处理资源的方法、设备和计算机可读介质 |
-
2020
- 2020-04-17 CN CN202010305857.XA patent/CN111667061B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570565A (zh) * | 2016-11-21 | 2017-04-19 | 中国科学院计算机网络信息中心 | 一种面向大数据的深度学习方法及系统 |
CN106650931A (zh) * | 2016-12-09 | 2017-05-10 | 曙光信息产业(北京)有限公司 | 混合精度深度学习算法 |
CN107168683A (zh) * | 2017-05-05 | 2017-09-15 | 中国科学院软件研究所 | 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法 |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
Non-Patent Citations (2)
Title |
---|
吴保东.众核处理器的并行编程模型性能分析与优化.《CNKI》.2015,全文. * |
李雁冰 ; 赵荣彩 ; 韩林 ; 赵捷 ; 徐金龙 ; 李颖颖.一种面向异构众核处理器的并行编译框架.软件学报.2019,(第004期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111667061A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111667061B (zh) | 一种基于目标众核的深度学习框架移植与优化方法及系统 | |
Wang et al. | Neufuzz: Efficient fuzzing with deep neural network | |
CN111666071B (zh) | 一种基于目标众核的对抗网络移植与优化的方法及系统 | |
CN106897322A (zh) | 一种数据库和文件系统的访问方法和装置 | |
CN109857459B (zh) | 一种e级超算海洋模式自动移植优化方法及系统 | |
CN112433819A (zh) | 异构集群调度的模拟方法、装置、计算机设备及存储介质 | |
KR101644653B1 (ko) | 단말 적합성 애플리케이션 최적화장치 및 방법 | |
CN110633200A (zh) | 用于测试智能合约的方法和设备 | |
CN113626324A (zh) | 一种面向Move语言虚拟机的模糊测试方法 | |
Fan et al. | Graph algorithms: parallelization and scalability | |
CN112990461B (zh) | 构建神经网络模型的方法、装置、计算机设备和存储介质 | |
CN111225034B (zh) | 基于WebService的水环境安全调控模型动态集成方法和组件 | |
CN114692860A (zh) | 一种计算图的节点融合方法及设备 | |
CN115186305B (zh) | 一种构建数据元件模型并生产数据元件的方法 | |
Bilel et al. | Cunetsim: A gpu based simulation testbed for large scale mobile networks | |
CN107203406B (zh) | 一种面向分布式存储结构的处理方法 | |
CN104731705B (zh) | 一种基于复杂网络的脏数据传播路径发现方法 | |
Zhang et al. | Experimental evaluation of the performance of Gpipe parallelism | |
CN116361138A (zh) | 测试方法及设备 | |
CN113590166B (zh) | 应用程序的更新方法、装置以及计算机可读存储介质 | |
Zeng et al. | Aware: Adaptive Distributed Training with Computation, Communication and Position Awareness for Deep Learning Model | |
WO2023028996A1 (en) | Methods and devices for ensuring the reproducibility of software systems | |
CN117057240A (zh) | 一种基于虚拟仿真的车辆测试方法及系统 | |
CN112418930A (zh) | 一种测试方法、系统及计算机设备 | |
CN115271031A (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 |