CN117273112A - 深度学习框架调整方法、装置、设备、介质和程序产品 - Google Patents
深度学习框架调整方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN117273112A CN117273112A CN202311226936.1A CN202311226936A CN117273112A CN 117273112 A CN117273112 A CN 117273112A CN 202311226936 A CN202311226936 A CN 202311226936A CN 117273112 A CN117273112 A CN 117273112A
- Authority
- CN
- China
- Prior art keywords
- deep learning
- code
- frame
- function
- learning framework
- 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
- 238000013135 deep learning Methods 0.000 title claims abstract description 302
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000006870 function Effects 0.000 claims abstract description 242
- 238000005457 optimization Methods 0.000 claims abstract description 62
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000006978 adaptation Effects 0.000 claims abstract description 20
- 230000003044 adaptive effect Effects 0.000 claims abstract description 9
- 238000012360 testing method Methods 0.000 claims description 50
- 230000007613 environmental effect Effects 0.000 claims description 46
- 238000012795 verification Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 35
- 238000012986 modification Methods 0.000 claims description 13
- 230000004048 modification Effects 0.000 claims description 13
- 238000004806 packaging method and process Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 7
- 238000012856 packing Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000002054 transplantation Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种深度学习框架调整方法、装置、设备、介质和程序产品。该方法包括:获取原始深度学习框架;原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架;对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。上述方法,在保证原始深度学习框架功能完整移植的基础上,再对原始深度学习框架进行适应的功能优化和扩展,以提高原始深度学习框架与异构加速器的适配度,提升深度学习框架的运行性能,以及保证异构加速器上框架的可用性和部分功能添加。
Description
技术领域
本申请实施例涉及人工智能技术领域,特别是涉及一种深度学习框架调整方法、装置、设备、介质和程序产品。
背景技术
作为人工智能开发环节中的基础工具,深度学习框架承担着AI技术生态中至关重要的角色。深度学习框架通过将深度学习算法模块化封装,能够实现训练、测试、调优模型的快速搭建,为各领域实际应用的落地提供有力支持。
相关技术中,通常将深度学习框架运行在异构加速器上,可以在训练模型时,通过异构加速器加速计算,从而减少训练和推理时间。
然而,相关技术中,在深度学习框架运行于异构加速器时,深度学习框架与异构加速器存在适配性低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种深度学习框架调整方法、装置、设备、介质和程序产品,通过对与异构加速器适配性低的原始深度学习框架进行基础功能的完整适配以及添加额外的优化扩展功能,以提高原始深度学习框架与异构加速器的适配度,进而提升深度学习框架的运行性能,以及保证异构加速器上框架的可用性和部分功能添加。
第一方面,本申请实施例提供了一种深度学习框架调整方法,包括:
获取原始深度学习框架;原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;
对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架;
对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。
在其中一个实施例中,对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架,包括:
获取原始深度学习框架的源代码和异构加速器的软件栈信息;
根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架。
在其中一个实施例中,软件栈信息包括软件栈路径信息和调用软件栈底层库的接口信息,根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架,包括:
根据软件栈路径信息对源代码中的软件栈路径进行修改,以及根据接口信息对源代码中的软件栈底层库调用接口进行修改,得到修改后的修改源代码;
对修改源代码进行编译,得到目标代码;
在目标代码测试与验证均通过的情况下,对目标代码进行打包处理,得到初始深度学习框架。
在其中一个实施例中,对修改源代码进行编译,得到目标代码,包括:
将修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,得到更新源代码;
对更新源代码进行编译,得到目标代码。
在其中一个实施例中,优化扩展功能包括性能分析功能、结果可复现功能和半精度性能优化功能,对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架,包括:
获取与性能分析功能相关的性能分析函数、与结果可复现功能相关的可复现环境变量、与半精度性能优化功能相关的半精度性能优化环境变量,以及初始深度学习框架的代码;
根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架。
在其中一个实施例中,根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架,包括:
将性能分析函数添加至初始深度学习框架的代码中,得到第一框架代码;
在第一框架代码的编译代码测试和验证均通过的情况下,将可复现环境变量添加至第一框架代码中,得到第二框架代码;
在第二框架代码的编译代码测试和验证均通过的情况下,将半精度性能优化环境变量添加至第二框架代码中,得到第三框架代码;
在第三框架代码的编译代码测试和验证均通过的情况下,对第三框架代码的编译代码进行打包处理,得到目标深度学习框架。
第二方面,本申请实施例还提供了一种深度学习框架调整装置,包括:
框架获取模块,用于获取原始深度学习框架;原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;
第一确定模块,用于对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架;
第二确定模块,用于对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。
第三方面,本申请实施例还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面中任一实施例中的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面中任一实施例中的步骤。
第五方面,本申请实施例还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面中任一实施例中的步骤。
上述深度学习框架调整方法、装置、设备、介质和程序产品,通过获取原始深度学习框架,原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架,进而对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架,最后对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。上述方法,通过对与异构加速器适配性低的原始深度学习框架进行基础功能的完整适配以及添加额外的优化扩展功能,以得到与异构加速器适配的目标深度学习框架,即在保证原始深度学习框架功能完整移植的基础上,再对原始深度学习框架进行适应的功能优化和扩展,以提高原始深度学习框架与异构加速器的适配度,进而提升深度学习框架的运行性能,以及保证异构加速器上框架的可用性和部分功能添加。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中深度学习框架调整方法的应用环境图;
图2为一个实施例中深度学习框架调整方法的流程示意图;
图3为一个实施例中确定初始深度学习框架的流程示意图;
图4为另一个实施例中确定初始深度学习框架的流程示意图;
图5为一个实施例中确定目标代码的流程示意图;
图6为一个实施例中确定目标深度学习框架的流程示意图;
图7为另一个实施例中确定目标深度学习框架的流程示意图;
图8为另一个实施例中深度学习框架调整方法的流程示意图;
图9为一个实施例中深度学习框架调整装置的结构示意图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请实施例,并不用于限定本申请实施例。
本申请实施例提供的深度学习框架调整方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。可选的,终端102可以为用户所持终端,用于采用目标深度学习框架进行深度学习的计算任务。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个示例性的实施例中,如图2所示,提供了一种深度学习框架调整方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤201至步骤203。其中:
S201,获取原始深度学习框架。
在本申请实施例中,原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架,可以为任意深度学习框架,例如,基于数据流编程的TensorFlow框架以及用于自然语言处理的PyTorch框架等。其中,本申请实施例的原始深度学习框架以PyTorch框架为例。
现有的PyTorch框架通常使用在英伟达平台或超微半导体(Advanced MicroDevices,AMD)平台中,想要把PyTorch框架用在其他加速器中,会存在适配度低的情况,因不同的加速器其硬件以及软件也存在一定的差别。为解决这一问题,则需要在原始深度学习框架中做一定的调整,以提高深度学习框架与加速器的适配度。
对原始深度学习框架进行调整,则首先需要获取到原始深度学习框架,在此的获取原始深度学习框架,主要指获取原始深度学习框架的源代码,也即对原始深度学习框架的源代码进行调整,之后再对调整后的源代码进行编译,以得到最终的深度学习框架。
S202,对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架。
在本申请实施例中,原始深度学习框架是对AMD平台的软件栈,即开放计算平台(Radeon Open Compute platform,ROCm)进行了适配,则原始深度学习框架可直接在AMD平台的加速器上安装使用。然而,不同的异构加速器有其各自的软件栈,本申请实施例中异构加速器的软件栈为开发工具包(Developer Tool Kit,DTK),由于软件栈的不同,原始深度学习框架的官方源代码无法在本申请实施例的异构加速器上直接完成编译、安装和使用,首先需要对原始深度学习框架的基础功能进行移植适配。
因本申请实施例的异构加速器的软件栈为DTK软件栈,则需要将原始深度学习框架的源代码中与ROCm软件栈相关的信息对应替换为DTK软件栈相关的信息,以实现基础功能的适配移植,得到与异构加速器的基础功能完整适配的初始深度学习框架。
S203,对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。
本申请实施例中,在原始深度学习框架中可以实现结果的可复现,即同样的一个计算任务,执行多次的结果均是一致的;而在异构加速器上结果不稳定,即不可复现,此时即需要对可复现功能进行优化。另外,还可添加一些其他的扩展功能,例如,核函数级别的性能分析,以对程序运行的效率进行分析;或者半精度性能优化,以提升程序运行的效率。
示例性的,对于需要添加的优化扩展功能,每一功能的实现均有其实现代码,可以将每一功能的相关实现代码添加至初始深度学习框架的代码中,编译之后即可得到与异构加速器适配的目标深度学习框架。
本申请实施例提供的深度学习框架调整方法中,通过获取原始深度学习框架,原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架,进而对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架,最后对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。上述方法,通过对与异构加速器适配性低的原始深度学习框架进行基础功能的完整适配以及添加额外的优化扩展功能,以得到与异构加速器适配的目标深度学习框架,即在保证原始深度学习框架功能完整移植的基础上,再对原始深度学习框架进行适应的功能优化和扩展,以提高原始深度学习框架与异构加速器的适配度,进而提升深度学习框架的运行性能,以及保证异构加速器上框架的可用性和部分功能添加。
本申请中的异构加速器的软件栈为DTK软件栈,而DTK软件栈的软件栈信息与原始深度学习框架中的ROCm软件栈的软件栈信息不同,则在进行基础功能移植处理时,需要根据存在差异的软件栈信息进行适配移植。基于此,在一个示例性的实施例中,提供一种确定初始深度学习框架的可选方式。如图3所示,对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架,包括步骤301至步骤302。其中,
S301,获取原始深度学习框架的源代码和异构加速器的软件栈信息。
在本申请实施例中,软件栈信息可以为软件栈路径信息等。
对原始深度学习框架的调整需要在原始深度学习框架的源代码基础上做相应的代码修改或增加等操作,需要先获取原始深度学习框架的源代码,以及获取本申请实施例中异构加速器的软件栈信息。
S302,根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架。
可选的,从原始深度学习框架的源代码中找到与ROCm软件栈相关的代码,之后根据DTK软件栈的软件栈信息,将与ROCm软件栈相关的代码修改为与DTK软件栈相关的代码,即可得到与异构加速器的基础功能完整适配的初始深度学习框架。
本申请实施例中,通过引入异构加速器的软件栈信息,对原始深度学习框架的源代码进行修改,从而可以得到与异构加速器的基础功能完整适配的初始深度学习框架。
DTK软件栈的路径信息与ROCm软件栈的路径信息不同,且DTK软件栈中使用的底层库与ROCm软件栈使用的底层库也存在差异,则在对底层库进行调用时所使用的函数接口也是不同的;进而软件栈信息中需要包括有软件栈路径信息和调用软件栈底层库的接口信息,以具体根据软件栈路径信息和接口信息来修改源代码。基于此,在一个示例性的实施例中,提供另一种确定初始深度学习框架的可选方式。如图4所示,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架,包括:
S401,根据软件栈路径信息对源代码中的软件栈路径进行修改,以及根据接口信息对源代码中的软件栈底层库调用接口进行修改,得到修改后的修改源代码。
软件栈信息中的路径信息和接口信息直接影响DTK软件栈的软件包调用等操作,则需要对源代码中与软件栈路径和软件栈底层库调用接口的相关代码进行修改。可选的,根据软件栈路径信息,将源代码中的软件栈路径修改为DTK软件栈的软件栈路径,以及根据接口信息,将源代码中的软件栈底层库调用接口修改为DTK软件栈的接口。例如,以软件栈路径为例,若原始深度学习框架中软件栈路径为/opt/rocm路径,则将/opt/rocm路径修改为/opt/dtk路径。
S402,对修改源代码进行编译,得到目标代码。
在本申请实施例中,目标代码即为对修改源代码进行编译后得到的编译代码。
可选的,在修改完源代码之后,需要对修改源代码进行编译,可以采用编译工具对修改源代码进行编译,编译完成后得到目标代码。
S403,在目标代码测试与验证均通过的情况下,对目标代码进行打包处理,得到初始深度学习框架。
编译完成后还需通过测试和验证,测试和验证均有对应的测试程序和验证程序,通过测试程序对目标代码进行测试,若测试通过,则采用验证程序再对目标代码进行验证;当目标代码测试和验证均通过时,对目标代码进行打包处理,可得到初始深度学习框架。
本申请实施例中,通过根据软件栈路径信息和接口信息对源代码进行修改,以先完成基础功能的移植,再对修改源代码进行编译、测试和验证之后,从而得到初始深度学习框架。
为了满足特殊的超级计算云平台需求,本申请实施例中异构加速器适配的深度学习框架需要安装包不依赖原始路径,因此,需要在源代码中将编译文件中与路径相关的标识也进行修改。基于此,在一个示例性的实施例中,对修改源代码进行编译,得到目标代码,包括步骤501至步骤502,如图5所示,其中:
S501,将修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,得到更新源代码。
在本申请实施例中,有效逻辑值和无效逻辑值为计算机语言中表示真和假的逻辑值,可以为true和false,或者1和0等。
本申请实施例中原始深度学习框架的源代码中,与编译相关的路径标识通常设置为true,则需要将true修改为false,即可以去除安装包对原始路径的依赖,以得到更新源代码。若原始深度学习框架的源代码中,与编译相关的路径标识通常设置为1,则可以将1修改为0,即得到更新源代码。
S502,对更新源代码进行编译,得到目标代码。
原始深度学习框架的源代码中包括有关于编译工具的相关代码,进而更新源代码也包括有关于编译工具的相关代码,则在进行更新源代码的编译过程时,直接利用源代码中包括的编译工具对更新源代码进行编译,以得到目标代码。
本申请实施例中,将修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,即可以去除安装包对原始路径的依赖,以在实际运行时可以搜索到需要的动态库。
原始深度学习框架中缺失核函数级别的性能分析工具,则在优化扩展功能中需要包括有性能分析功能;另外,原始深度学习框架中可实现结果的可复现功能,而将原始深度学习框架用于本申请实施例的异构加速器时却实现不了,则需要对可复现功能进行优化;由于异构加速器及底层计算库的差异性,不同平台网络训练、推理的性能表现不同,原始深度学习框架在本申请实施例的异构加速器上进行半精度计算时,性能较差,则也需要对半精度性能进行针对性优化。基于此,本申请实施例中的优化扩展功能包括性能分析功能、结果可复现功能和半精度性能优化功能,在一个实施例中,如图6所示,对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架,包括步骤601至步骤602,其中:
S601,获取与性能分析功能相关的性能分析函数、与结果可复现功能相关的可复现环境变量、与半精度性能优化功能相关的半精度性能优化环境变量,以及初始深度学习框架的代码。
每一功能的实现均有其对应的实现代码,需要实现上述性能分析功能、结果可复现功能和半精度性能优化功能,则需要获取到每一功能的实现代码。
对于性能分析功能而言,需要有对应函数支持,以对核函数进行信息抓取、收集并反馈,则需要获取到支持核函数的信息抓取、收集并反馈的相关性能分析函数。对于结果可复现功能而言,原始深度学习框架中已经包括可复现模式参数的设置,但只有原有的可复现模式参数并不能在异构加速器上实现可复现,则需要新增环境变量,以在可复现模式参数和新增环境变量的共同支持下,实现本申请实施例异构加速器的可复现功能。对于半精度性能优化功能而言,原始深度学习框架半精度计算时,计算类型为fp32,想要提升性能,可以采用fp16作为半精度计算类型,此时则需要新增半精度优化环境变量,以使深度学习框架在本申请实施例的异构加速器上运行时,可以通过半精度优化程序运行性能。其中,fp32是指采用4字节(32位)进行编码存储的一种数据类型;fp16是指采用2字节(16位)进行编码存储的一种数据类型。相比于fp32,fp16在存储与计算时可以大大降低内存占用和计算负载,且可以加速处理速度;当进行深度学习模型训练时,可以根据实际需求选择适合的数据类型,若数据模型要求高精度,则可选择fp32;若数据模型要求速度和存储空间,则可以选择fp16。
综上而言,需要获取到与性能分析功能相关的性能分析函数、与结果可复现功能相关的可复现环境变量、与半精度性能优化功能相关的半精度性能优化环境变量,以及初始深度学习框架的代码。可选的,用户根据初始深度学习框架的安装包完成安装之后,用户即可以编写代码调用功能,通过修改自己编写的代码或在代码中设置相应环境变量,以使用相关功能。例如,用户可以在自己的代码中添加性能分析函数,设置可复现环境变量和半精度性能优化环境变量等,在完成对代码的相应修改或添加后,用户即可以调用性能分析功能、结果可复现功能和半精度性能优化功能等。
S602,根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架。
可选的,性能分析函数、可复现环境变量、半精度性能优化环境变量均为实现各功能的实现代码,可以直接将性能分析函数、可复现环境变量、半精度性能优化环境变量添加至初始深度学习框架的代码中,得到添加完功能的功能添加代码,进而对功能添加代码进行编译、测试和验证,在功能添加代码的编译代码均通过测试和验证后,对功能添加代码的编译代码进行打包处理,得到目标深度学习框架。
本申请实施例中,通过引入性能分析功能、结果可复现功能和半精度性能优化功能,以将这些功能添加至初始深度学习框架中,实现对原始深度学习框架的功能扩展与性能优化。
为了能够准确分析添加的各优化扩展功能是否能够高效运行,则可以在每次添加一个优化扩展功能之后,进行一次编译、测试和验证,以避免添加所有功能之后在编译、测试和验证的过程中互相产生影响,导致难以分辨和定位问题。基于此,在一个实施例中,提供另一种确定目标深度学习框架的可选方式。如图7所示,根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架,包括步骤701至步骤704,其中:
S701,将性能分析函数添加至初始深度学习框架的代码中,得到第一框架代码。
S702,在第一框架代码的编译代码测试和验证均通过的情况下,将可复现环境变量添加至第一框架代码中,得到第二框架代码。
本申请实施例中,第一框架代码即为添加了性能分析功能的代码。第二框架代码即为在成功添加了性能分析功能的基础上,又添加了结果可复现功能的代码。
可选的,将性能分析函数直接添加在初始深度学习框架的代码中,即可以得到第一框架代码,进而采用第一框架代码中包括的编译工具对第一框架代码进行编译,在编译完成后得到第一框架代码的编译代码,之后通过测试程序对第一框架代码的编译代码进行测试,若第一框架代码的编译代码测试通过,则再通过验证程序对第一框架代码的编译代码进行验证,若第一框架代码的编译代码验证也通过,则将可复现环境变量直接添加至第一框架代码中,得到第二框架代码。
S703,在第二框架代码的编译代码测试和验证均通过的情况下,将半精度性能优化环境变量添加至第二框架代码中,得到第三框架代码。
在本申请实施例中,第三框架代码即为成功添加了性能分析功能和结果可复现功能的基础上,又添加了半精度性能优化功能的代码。
示例性的,采用第二框架代码中包括的编译工具对第二框架代码进行编译,在编译完成后得到第二框架代码的编译代码,进而通过测试程序对第二框架代码的编译代码进行测试,若第二框架代码的编译代码测试通过,则再通过验证程序对第二框架代码的编译代码进行验证,若第二框架代码的编译代码验证也通过,则将半精度性能优化环境变量直接添加至第二框架代码中,得到第三框架代码。
S704,在第三框架代码的编译代码测试和验证均通过的情况下,对第三框架代码的编译代码进行打包处理,得到目标深度学习框架。
采用第三框架代码中包括的编译工具对第三框架代码进行编译,在编译完成后得到第三框架代码的编译代码,进而通过测试程序对第三框架代码的编译代码进行测试,若第三框架代码的编译代码测试通过,则再通过验证程序对第三框架代码的编译代码进行验证,若第三框架代码的编译代码验证也通过,则将第三框架代码的编译代码进行打包处理,即得到目标深度学习框架。
需要说明的是,在初始深度学习框架的代码中添加的结果可复现功能和半精度性能优化功能,均预先设定了默认操作,即不开启结果可复现功能和半精度性能优化功能,而对用户开启了设置结果可复现功能和半精度性能优化功能的可操作功能,即用户在实际使用过程中,可以根据自身需求,开启或关闭结果可复现功能和半精度性能优化功能的实现。
本申请实施例中,通过在每次添加一个优化扩展功能之后,均进行一次编译、测试和验证,以避免添加所有功能后在编译、测试和验证的过程中互相产生影响,导致难以分辨和定位问题。
另外,在一个示例性的实施例中,本申请实施例还提供一个深度学习框架调整方法的可选实例,如图8所示,该实施例包括以下步骤:
S801,获取原始深度学习框架的源代码。
其中,原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架。
S802,获取异构加速器的软件栈信息。
其中,软件栈信息包括软件栈路径信息和调用软件栈底层库的接口信息。
S803,根据软件栈路径信息对源代码中的软件栈路径进行修改,以及根据接口信息对源代码中的软件栈底层库调用接口进行修改,得到修改后的修改源代码。
S804,将修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,得到更新源代码。
S805,对更新源代码进行编译,得到目标代码。
S806,在目标代码测试与验证均通过的情况下,对目标代码进行打包处理,得到初始深度学习框架。
S807,获取与性能分析功能相关的性能分析函数、与结果可复现功能相关的可复现环境变量、与半精度性能优化功能相关的半精度性能优化环境变量,以及初始深度学习框架的代码。
S808,将性能分析函数添加至初始深度学习框架的代码中,得到第一框架代码。
S809,在第一框架代码的编译代码测试和验证均通过的情况下,将可复现环境变量添加至第一框架代码中,得到第二框架代码。
S810,在第二框架代码的编译代码测试和验证均通过的情况下,将半精度性能优化环境变量添加至第二框架代码中,得到第三框架代码。
S811,在第三框架代码的编译代码测试和验证均通过的情况下,对第三框架代码的编译代码进行打包处理,得到目标深度学习框架。
上述S801-S811的过程可以参见上述方法实施例的描述,其实现原理和技术效果类似,在此不再赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的深度学习框架调整方法的深度学习框架调整装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个深度学习框架调整装置实施例中的具体限定可以参见上文中对于深度学习框架调整方法的限定,在此不再赘述。
在一个示例性的实施例中,如图9所示,提供了一种深度学习框架调整装置1,包括:框架获取模块10、第一确定模块20和第二确定模块30,其中:
框架获取模块10,用于获取原始深度学习框架;原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;
第一确定模块20,用于对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架;
第二确定模块30,用于对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。
在其中一个实施例中,上述第一确定模块20可以用于:
获取原始深度学习框架的源代码和异构加速器的软件栈信息;根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架。
在其中一个实施例中,上述第一确定模块20还用于:
根据软件栈路径信息对源代码中的软件栈路径进行修改,以及根据接口信息对源代码中的软件栈底层库调用接口进行修改,得到修改后的修改源代码;对修改源代码进行编译,得到目标代码;在目标代码测试与验证均通过的情况下,对目标代码进行打包处理,得到初始深度学习框架。
在其中一个实施例中,上述第一确定模块20还用于:
将修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,得到更新源代码;对更新源代码进行编译,得到目标代码。
在其中一个实施例中,上述第二确定模块30可以用于:
获取与性能分析功能相关的性能分析函数、与结果可复现功能相关的可复现环境变量、与半精度性能优化功能相关的半精度性能优化环境变量,以及述初始深度学习框架的代码;根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架。
在其中一个实施例中,上述第二确定模块30还用于:
将性能分析函数添加至初始深度学习框架的代码中,得到第一框架代码;在第一框架代码的编译代码测试和验证均通过的情况下,将可复现环境变量添加至第一框架代码中,得到第二框架代码;在第二框架代码的编译代码测试和验证均通过的情况下,将半精度性能优化环境变量添加至第二框架代码中,得到第三框架代码;在第三框架代码的编译代码测试和验证均通过的情况下,对第三框架代码的编译代码进行打包处理,得到目标深度学习框架。
上述深度学习框架调整装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储深度学习框架调整数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种深度学习框架调整方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请实施例方案相关的部分结构的框图,并不构成对本申请实施例方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个示例性的实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取原始深度学习框架;原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;
对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架;
对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。
在其中一个实施例中,处理器执行计算机程序中对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架的逻辑时,具体实现以下步骤:
获取原始深度学习框架的源代码和异构加速器的软件栈信息;根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架。
在其中一个实施例中,处理器执行计算机程序中对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架的逻辑时,具体实现以下步骤:
根据软件栈路径信息对源代码中的软件栈路径进行修改,以及根据接口信息对源代码中的软件栈底层库调用接口进行修改,得到修改后的修改源代码;对修改源代码进行编译,得到目标代码;在目标代码测试与验证均通过的情况下,对目标代码进行打包处理,得到初始深度学习框架。
在其中一个实施例中,处理器执行计算机程序中对修改源代码进行编译,得到目标代码的逻辑时,具体实现以下步骤:
将修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,得到更新源代码;对更新源代码进行编译,得到目标代码。
在其中一个实施例中,处理器执行计算机程序中对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架的逻辑时,具体实现以下步骤:
获取与性能分析功能相关的性能分析函数、与结果可复现功能相关的可复现环境变量、与半精度性能优化功能相关的半精度性能优化环境变量,以及初始深度学习框架的代码;根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架。
在其中一个实施例中,处理器执行计算机程序中根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架的逻辑时,具体实现以下步骤:
将性能分析函数添加至初始深度学习框架的代码中,得到第一框架代码;在第一框架代码的编译代码测试和验证均通过的情况下,将可复现环境变量添加至第一框架代码中,得到第二框架代码;在第二框架代码的编译代码测试和验证均通过的情况下,将半精度性能优化环境变量添加至第二框架代码中,得到第三框架代码;在第三框架代码的编译代码测试和验证均通过的情况下,对第三框架代码的编译代码进行打包处理,得到目标深度学习框架。
上述提供的计算机设备,其在实现各实施例中的原理和具体过程可参见前述实施例中深度学习框架调整方法实施例中的说明,此处不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取原始深度学习框架;原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;
对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架;
对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。
在其中一个实施例中,计算机程序中对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架的逻辑被处理器执行时,具体实现以下步骤:
获取原始深度学习框架的源代码和异构加速器的软件栈信息;根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架。
在其中一个实施例中,计算机程序中根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架的逻辑被处理器执行时,具体实现以下步骤:
根据软件栈路径信息对源代码中的软件栈路径进行修改,以及根据接口信息对源代码中的软件栈底层库调用接口进行修改,得到修改后的修改源代码;对修改源代码进行编译,得到目标代码;在目标代码测试与验证均通过的情况下,对目标代码进行打包处理,得到初始深度学习框架。
在其中一个实施例中,计算机程序中对修改源代码进行编译,得到目标代码的逻辑被处理器执行时,具体实现以下步骤:
将修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,得到更新源代码;对更新源代码进行编译,得到目标代码。
在其中一个实施例中,计算机程序中对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架的逻辑被处理器执行时,具体实现以下步骤:
获取与性能分析功能相关的性能分析函数、与结果可复现功能相关的可复现环境变量、与半精度性能优化功能相关的半精度性能优化环境变量,以及初始深度学习框架的代码;根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架。
在其中一个实施例中,计算机程序中根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架的逻辑被处理器执行时,具体实现以下步骤:
将性能分析函数添加至初始深度学习框架的代码中,得到第一框架代码;在第一框架代码的编译代码测试和验证均通过的情况下,将可复现环境变量添加至第一框架代码中,得到第二框架代码;在第二框架代码的编译代码测试和验证均通过的情况下,将半精度性能优化环境变量添加至第二框架代码中,得到第三框架代码;在第三框架代码的编译代码测试和验证均通过的情况下,对第三框架代码的编译代码进行打包处理,得到目标深度学习框架。
上述提供的计算机可读存储介质,其在实现各实施例中的原理和具体过程可参见前述实施例中深度学习框架调整方法实施例中的说明,此处不再赘述。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取原始深度学习框架;原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;
对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架;
对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架。
在其中一个实施例中,计算机程序中对原始深度学习框架进行基础功能移植处理,得到与异构加速器的基础功能完整适配的初始深度学习框架的逻辑被处理器执行时,具体实现以下步骤:
获取原始深度学习框架的源代码和异构加速器的软件栈信息;根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架。
在其中一个实施例中,计算机程序中根据软件栈信息,对源代码进行代码修改,得到与异构加速器的基础功能完整适配的初始深度学习框架的逻辑被处理器执行时,具体实现以下步骤:
根据软件栈路径信息对源代码中的软件栈路径进行修改,以及根据接口信息对源代码中的软件栈底层库调用接口进行修改,得到修改后的修改源代码;对修改源代码进行编译,得到目标代码;在目标代码测试与验证均通过的情况下,对目标代码进行打包处理,得到初始深度学习框架。
在其中一个实施例中,计算机程序中对修改源代码进行编译,得到目标代码的逻辑被处理器执行时,具体实现以下步骤:
将修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,得到更新源代码;对更新源代码进行编译,得到目标代码。
在其中一个实施例中,计算机程序中对初始深度学习框架添加除基础功能外的优化扩展功能,得到与异构加速器适配的目标深度学习框架的逻辑被处理器执行时,具体实现以下步骤:
获取与性能分析功能相关的性能分析函数、与结果可复现功能相关的可复现环境变量、与半精度性能优化功能相关的半精度性能优化环境变量,以及初始深度学习框架的代码;根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架。
在其中一个实施例中,计算机程序中根据性能分析函数、可复现环境变量、半精度性能优化环境变量和初始深度学习框架的代码,确定目标深度学习框架的逻辑被处理器执行时,具体实现以下步骤:
将性能分析函数添加至初始深度学习框架的代码中,得到第一框架代码;在第一框架代码的编译代码测试和验证均通过的情况下,将可复现环境变量添加至第一框架代码中,得到第二框架代码;在第二框架代码的编译代码测试和验证均通过的情况下,将半精度性能优化环境变量添加至第二框架代码中,得到第三框架代码;在第三框架代码的编译代码测试和验证均通过的情况下,对第三框架代码的编译代码进行打包处理,得到目标深度学习框架。
上述提供的计算机程序产品,其在实现各实施例中的原理和具体过程可参见前述实施例中深度学习框架调整方法实施例中的说明,此处不再赘述。
需要说明的是,本申请实施例所涉及的数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请实施例所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请实施例所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请实施例所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请实施例专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请实施例构思的前提下,还可以做出若干变形和改进,这些都属于本申请实施例的保护范围。因此,本申请实施例的保护范围应以所附权利要求为准。
Claims (10)
1.一种深度学习框架调整方法,其特征在于,所述方法包括:
获取原始深度学习框架;所述原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;
对所述原始深度学习框架进行基础功能移植处理,得到与所述异构加速器的基础功能完整适配的初始深度学习框架;
对所述初始深度学习框架添加除所述基础功能外的优化扩展功能,得到与所述异构加速器适配的目标深度学习框架。
2.根据权利要求1所述的方法,其特征在于,所述对所述原始深度学习框架进行基础功能移植处理,得到与所述异构加速器的基础功能完整适配的初始深度学习框架,包括:
获取所述原始深度学习框架的源代码和所述异构加速器的软件栈信息;
根据所述软件栈信息,对所述源代码进行代码修改,得到与所述异构加速器的基础功能完整适配的初始深度学习框架。
3.根据权利要求2所述的方法,其特征在于,所述软件栈信息包括软件栈路径信息和调用软件栈底层库的接口信息,所述根据所述软件栈信息,对所述源代码进行代码修改,得到与所述异构加速器的基础功能完整适配的初始深度学习框架,包括:
根据所述软件栈路径信息对所述源代码中的软件栈路径进行修改,以及根据所述接口信息对所述源代码中的软件栈底层库调用接口进行修改,得到修改后的修改源代码;
对所述修改源代码进行编译,得到目标代码;
在所述目标代码测试与验证均通过的情况下,对所述目标代码进行打包处理,得到所述初始深度学习框架。
4.根据权利要求3所述的方法,其特征在于,所述对所述修改源代码进行编译,得到目标代码,包括:
将所述修改源代码中与编译相关的路径标识由有效逻辑值修改为无效逻辑值,得到更新源代码;
对所述更新源代码进行编译,得到所述目标代码。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述优化扩展功能包括性能分析功能、结果可复现功能和半精度性能优化功能,所述对所述初始深度学习框架添加除所述基础功能外的优化扩展功能,得到与所述异构加速器适配的目标深度学习框架,包括:
获取与所述性能分析功能相关的性能分析函数、与所述结果可复现功能相关的可复现环境变量、与所述半精度性能优化功能相关的半精度性能优化环境变量,以及所述初始深度学习框架的代码;
根据所述性能分析函数、所述可复现环境变量、所述半精度性能优化环境变量和所述初始深度学习框架的代码,确定所述目标深度学习框架。
6.根据权利要求5所述的方法,其特征在于,所述根据所述性能分析函数、所述可复现环境变量、所述半精度性能优化环境变量和所述初始深度学习框架的代码,确定所述目标深度学习框架,包括:
将所述性能分析函数添加至所述初始深度学习框架的代码中,得到第一框架代码;
在所述第一框架代码的编译代码测试和验证均通过的情况下,将所述可复现环境变量添加至所述第一框架代码中,得到第二框架代码;
在所述第二框架代码的编译代码测试和验证均通过的情况下,将所述半精度性能优化环境变量添加至所述第二框架代码中,得到第三框架代码;
在所述第三框架代码的编译代码测试和验证均通过的情况下,对所述第三框架代码的编译代码进行打包处理,得到所述目标深度学习框架。
7.一种深度学习框架调整装置,其特征在于,所述装置包括:
框架获取模块,用于获取原始深度学习框架;所述原始深度学习框架表示与异构加速器适配度小于预设值的深度学习框架;
第一确定模块,用于对所述原始深度学习框架进行基础功能移植处理,得到与所述异构加速器的基础功能完整适配的初始深度学习框架;
第二确定模块,用于对所述初始深度学习框架添加除所述基础功能外的优化扩展功能,得到与所述异构加速器适配的目标深度学习框架。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311226936.1A CN117273112A (zh) | 2023-09-21 | 2023-09-21 | 深度学习框架调整方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311226936.1A CN117273112A (zh) | 2023-09-21 | 2023-09-21 | 深度学习框架调整方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117273112A true CN117273112A (zh) | 2023-12-22 |
Family
ID=89202106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311226936.1A Pending CN117273112A (zh) | 2023-09-21 | 2023-09-21 | 深度学习框架调整方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117273112A (zh) |
-
2023
- 2023-09-21 CN CN202311226936.1A patent/CN117273112A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408373B (zh) | 智能合约的测试方法、计算机可读存储介质及测试终端 | |
US7660884B2 (en) | Apparatus, system, and method for generating a resource utilization description for a parallel data processing system | |
US10394694B2 (en) | Unexplored branch search in hybrid fuzz testing of software binaries | |
CN112541310B (zh) | 逻辑综合控制方法及装置 | |
CN114399019A (zh) | 神经网络编译方法、系统、计算机设备及存储介质 | |
US20210295158A1 (en) | End-to-end optimization | |
US20230087837A1 (en) | Training data generation via reinforcement learning fault-injection | |
CN113420520B (zh) | 集成电路装置设计仿真方法、装置、设备和可读存储介质 | |
CN116523052B (zh) | 一种快速推理方法、装置及设备 | |
Chen et al. | Slapo: A schedule language for progressive optimization of large deep learning model training | |
CN117291260A (zh) | 深度学习框架适配方法、装置、设备、存储介质和产品 | |
CN114791865B (zh) | 一种基于关系图的配置项自洽性检测方法、系统和介质 | |
CN117273112A (zh) | 深度学习框架调整方法、装置、设备、介质和程序产品 | |
CN113778564B (zh) | 一种高效执行evm智能合约的方法、设备及储存介质 | |
CN117009972A (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
Strassenburg et al. | Efficiently Managing Deep Learning Models in a Distributed Environment. | |
KR102117165B1 (ko) | 바이너리 분석을 위한 중간 언어 테스트 방법 및 장치 | |
Wang et al. | Graph Neural Networks Enhanced Smart Contract Vulnerability Detection of Educational Blockchain | |
Patel et al. | Runtime-Programmable pipelines for model checkers on FPGAs | |
WO2023028996A1 (en) | Methods and devices for ensuring the reproducibility of software systems | |
CN116755714B (zh) | 深度神经网络模型的运行方法、装置、设备和存储介质 | |
US20240289684A1 (en) | Layer-wise efficient unit testing in very large machine learning models | |
Ivutin et al. | Low-level Code Auto-tuning for State-of-the-art Multicore Architectures | |
US20240303056A1 (en) | Method and system for compiling applications | |
Cook | Reproducible Randomness in Parallel Machine Learning Input Pipelines |
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 |