CN116050512A - 自动激活值检查点搜索和自动张量并行搜索的融合系统 - Google Patents
自动激活值检查点搜索和自动张量并行搜索的融合系统 Download PDFInfo
- Publication number
- CN116050512A CN116050512A CN202211738333.5A CN202211738333A CN116050512A CN 116050512 A CN116050512 A CN 116050512A CN 202211738333 A CN202211738333 A CN 202211738333A CN 116050512 A CN116050512 A CN 116050512A
- Authority
- CN
- China
- Prior art keywords
- automatic
- solver
- activation value
- search
- 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; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- 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
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- 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)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了自动激活值检查点搜索和自动张量并行搜索的融合系统,涉及深度学习技术领域,包括网络线性化、元信息抽取、自动激活值检查点求解器、自动张量并行求解器、两阶段求解器,通过使用元信息抽取为自动张量并行求解器提供所需的内存开销和运算开销信息,自动张量并行求解器根据所给的内存预算和元信息进行求解,两阶段求解器将一系列张量并行策略进行网络线性化,将线性化网络传给自动激活值检查点求解器,自动激活值检查点求解器将内存开销控制在真实内存预算之下,将自动张量并行和自动激活值检查点的策略复合起来,进一步减缓深度学习训练中遇到的内存墙问题,同时两阶段求解器也能保证解决内存问题的同时兼顾模型训练的性能。
Description
技术领域
本发明涉及深度学习技术领域,具体为自动激活值检查点搜索和自动张量并行搜索的融合系统。
背景技术
随深度学习模型逐渐变得越来越大以达到更佳的精度要求。深度学习模型的参数量已经达到百亿级别,甚至千亿级别。智源悟道2.0模型甚至有1.75万亿的参数规模。
在这一背景下,使用多种技术减缓GPU内存压力是深度学习大模型训练的关键。激活值检查点和张量并行是两种行之有效的方法,很多相关工作也给出了基于动态规划和整数规划的策略搜索来给出更好的优化策略。然而,尚未有系统将这两者有机的结合起来。
当前的主流自动激活值检查点搜索方案有rotor和checkmate
rotor:该搜索系统提供了一套完整的线性化网络自动激活值检查点搜索框架,
系统假设
网络线性化:该系统假设网络可以被视为一个线性化的执行序列,即前向传播中,每一个网络层只和前一层的输出有关。内存一致性:决定保存的激活值会留存于内存之中,在被反向计算使用之前不会在中途被丢弃。
系统流程
通过测试获得计算序列中每一层的各项开销(激活值存储带来的内存开销、计算时间)
在线性化假设之下,将内存开销进行离散化,可以将最优激活值检查点的安排建模为一个动态规划问题,在多项式时间内进行求解,论文地址:https://proceedings.neurips.cc/paper/2021/hash/c8461bf13fca8a2b9912ab2eb1668e4b-Abstract.html
checkmate:该系统给出了任意网络(有向无环图)情况下的激活值检查点最优解,系统假设
网络为任意有向无环图,模糊了前向传播和反向传播的分解,整体的考虑所有计算。
系统流程,通过测试获得计算序列中每一层的各项开销(激活值存储带来的内存开销、计算时间),针对整个计算图以及激活值检查点序列,可以将问题建模为一个标准的整数规划问题,使用标准整数规划求解器进行求解,
当前的主流自动张量并行搜索方案有Alpa
Alpa:该系统针对自动张量并行和自动流水并行进行了细致的建模,在给定网络的代价模型的前提下,使用整数规划求解最优策略
论文地址:https://arxiv.org/pdf/2201.12023.pdf
Flexflow:Flexflow是一个在SOAP空间中,为任意DNN模型和设备拓扑,根据执行模拟器(execution simulator)cost model,自动搜索最优并行策略的系统,
但是rotor:基于真实张量计算,需要大量时间对内存和计算时间进行估算,有时会发生内存不足的错误。对内存的估算并不是非常准确,导致最终的优化结果存在问题。现存的线性化需要手动调整模型,使用起来并不方便。线性化导致搜索空间缩小了很多。
checkmate:通过真实张量进行节点开销测算。整数规划导致求解时间非常长。
Alpa:没有考虑自动激活值检查点搜索,没有PyTorch的版本,对此我们提出了一种自动激活值检查点搜索和自动张量并行搜索的融合系统。
发明内容
针对现有技术的不足,本发明提供了自动激活值检查点搜索和自动张量并行搜索的融合系统,解决了上述背景技术中提出的问题。
为实现以上目的,本发明通过以下技术方案予以实现:自动激活值检查点搜索和自动张量并行搜索的融合系统,包括网络线性化、元信息抽取、自动激活值检查点求解器、自动张量并行求解器、两阶段求解器、优化计算图,
还包括以下步骤:
S1:初始化模型,
S2:使用元信息抽取为自动张量并行求解器提供所需的内存开销和运算开销信息;
S3:自动张量并行求解器根据所给的内存预算和元信息进行求解;
S4:两阶段求解器将一系列张量并行策略进行网络线性化,将线性化网络传给自动激活值检查点求解器;
S5:自动激活值检查点求解器将内存开销控制在真实内存预算之下,得到一系列策略,从中选取估算运行时间最短的策略;
S6:根据给出的复合策略优化计算图,编译执行。
优选的,所述网络线性化包括以下步骤:
通过元跟踪来获取网络的计算图根据用户标注(例如语言模型的注意力掩码),以及节点特性来查找图中的通用型节点
根据节点的依赖关系(忽略通用型节点),来获取可以线性化网络计算图分割点
优选的,所述元信息抽取在不真实执行的情况下,通过pytorch的__torch_dispatch__机制,来获取张量在我们希望的设备上(GPU、CPU)进行运行时的底层算子,并由此估算运行时的内存开销和计算量;
使用__torch_dispatch__机制获取各个算子的底层算子;
根据获取的算子将模型的运算开销和模型的内存开销抽象成依赖于输入和输出形状的数学公式,方便自动张量并行获取算子在不同切分方式下的。
优选的,所述自动激活值检查点求解器以rotor算法为基础,重新修改了建模,考虑了张量并行的多卡通信场景,在用户输入的内存上限下,给出在考虑张量并行通信开销的情况下的最优解。
优选的,所述自动张量并行求解器以Alpa为基础在PyTorch上构建的自动张量并行,在给定元信息的情况下进行张量并行策略的求解
优选的,所述两阶段求解器包括以下步骤,在给定自动张量并行求解器和自动激活值检查点求解器的情况下,依据用户实际可用内存预算向自动张量并行求解器输入一组虚拟内存预算,给出一系列的张量并行策略,再使用自动激活值检查点求解器给出激活值检查点策略将内存控制到真实内存预算之下,比较一系列的策略,选出估算运行时间最短的策略。
优选的,所述优化计算图依据动态规划求解器的最优解,重构PyTorch原有计算图,生成新的计算图,使自动搜索得到的激活值检查点最终被使用,从而大幅减少训练内存开销。
本发明提供了自动激活值检查点搜索和自动张量并行搜索的融合系统,具备以下有益效果:
1、该自动激活值检查点搜索和自动张量并行搜索的融合系统,通过使用元信息抽取为自动张量并行求解器提供所需的内存开销和运算开销信息,自动张量并行求解器根据所给的内存预算和元信息进行求解,两阶段求解器将一系列张量并行策略进行网络线性化,将线性化网络传给自动激活值检查点求解器,自动激活值检查点求解器将内存开销控制在真实内存预算之下,得到一系列策略,从中选取估算运行时间最短的策略,根据给出的复合策略优化计算图,编译执行,将自动张量并行和自动激活值检查点的策略复合起来,进一步减缓深度学习训练中遇到的内存墙问题,同时两阶段求解器也能保证解决内存问题的同时兼顾模型训练的性能。
附图说明
图1为本发明结构示意图;
图2为本发明网络线性化的结构示意图;
图3为本发明元信息抽取的结构示意图;
图4为本发明两阶段求解器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
请参阅图1至图4,本发明提供一种技术方案:1.自动激活值检查点搜索和自动张量并行搜索的融合系统,其特征在于:包括网络线性化、元信息抽取、自动激活值检查点求解器、自动张量并行求解器、两阶段求解器、优化计算图,
还包括以下步骤:
S1:初始化模型,
S2:使用元信息抽取为自动张量并行求解器提供所需的内存开销和运算开销信息;
S3:自动张量并行求解器根据所给的内存预算和元信息进行求解;
S4:两阶段求解器将一系列张量并行策略进行网络线性化,将线性化网络传给自动激活值检查点求解器;
S5:自动激活值检查点求解器将内存开销控制在真实内存预算之下,得到一系列策略,从中选取估算运行时间最短的策略;
S6:根据给出的复合策略优化计算图,编译执行。
将自动张量并行和自动激活值检查点的策略复合起来,进一步减缓深度学习训练中遇到的内存墙问题,同时两阶段求解器也能保证解决内存问题的同时兼顾模型训练的性能。
网络线性化包括以下步骤:
通过元跟踪来获取网络的计算图根据用户标注(例如语言模型的注意力掩码),以及节点特性来查找图中的通用型节点
根据节点的依赖关系(忽略通用型节点),来获取可以线性化网络计算图分割点
其中,元信息抽取在不真实执行的情况下,通过pytorch的__torch_dispatch__机制,来获取张量在我们希望的设备上(GPU、CPU)进行运行时的底层算子,并由此估算运行时的内存开销和计算量;
使用__torch_dispatch__机制获取各个算子的底层算子;
根据获取的算子将模型的运算开销和模型的内存开销抽象成依赖于输入和输出形状的数学公式,方便自动张量并行获取算子在不同切分方式下的。
自动激活值检查点求解器以rotor算法为基础,重新修改了建模,考虑了张量并行的多卡通信场景,在用户输入的内存上限下,给出在考虑张量并行通信开销的情况下的最优解。
自动张量并行求解器以Alpa为基础在PyTorch上构建的自动张量并行,在给定元信息的情况下进行张量并行策略的求解
两阶段求解器包括以下步骤,在给定自动张量并行求解器和自动激活值检查点求解器的情况下,依据用户实际可用内存预算向自动张量并行求解器输入一组虚拟内存预算,给出一系列的张量并行策略,再使用自动激活值检查点求解器给出激活值检查点策略将内存控制到真实内存预算之下,比较一系列的策略,选出估算运行时间最短的策略。
优化计算图依据动态规划求解器的最优解,重构PyTorch原有计算图,生成新的计算图,使自动搜索得到的激活值检查点最终被使用,从而大幅减少训练内存开销。
实施例二:
以OPT的复合策略搜索为例:
首先需要创建一个OPT模型,并为该模型,创建一组元张量形式的输入张量。
根据输入的元张量,自动张量并行求解器可以使用元信息抽取来获得各种切分方案下算子的内存开销和运算开销。基于这些信息,给定一组虚拟的内存预算后,自动张量并行求解器求解出一系列张量并行策略。
获得一系列张量并行策略后,两阶段求解器会将这些策略对应的计算图进行网络线性化,交给自动激活值检查点求解器。自动激活值检查点会根据这一系列的线性化网络给出相应的激活值检查点策略,将估算的运行内存控制在用户给出的真实内存开销之下。
最终,求解器会在一系列开销中选取估算运行时长最短的策略,根据这个策略对计算图进行编译执行。
综上所述,该自动激活值检查点搜索和自动张量并行搜索的融合系统,使用时,初始化模型,使用元信息抽取为自动张量并行求解器提供所需的内存开销和运算开销信息,自动张量并行求解器根据所给的内存预算和元信息进行求解,两阶段求解器将一系列张量并行策略进行网络线性化,将线性化网络传给自动激活值检查点求解器,自动激活值检查点求解器将内存开销控制在真实内存预算之下,得到一系列策略,从中选取估算运行时间最短的策略,根据给出的复合策略优化计算图,编译执行。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (7)
1.自动激活值检查点搜索和自动张量并行搜索的融合系统,其特征在于:包括网络线性化、元信息抽取、自动激活值检查点求解器、自动张量并行求解器、两阶段求解器、优化计算图,
还包括以下步骤:
S1:初始化模型,
S2:使用元信息抽取为自动张量并行求解器提供所需的内存开销和运算开销信息;
S3:自动张量并行求解器根据所给的内存预算和元信息进行求解;
S4:两阶段求解器将一系列张量并行策略进行网络线性化,将线性化网络传给自动激活值检查点求解器;
S5:自动激活值检查点求解器将内存开销控制在真实内存预算之下,得到一系列策略,从中选取估算运行时间最短的策略;
S6:根据给出的复合策略优化计算图,编译执行。
2.根据权利要求1所述的自动激活值检查点搜索和自动张量并行搜索的融合系统,其特征在于:所述网络线性化包括以下步骤:
通过元跟踪来获取网络的计算图根据用户标注(例如语言模型的注意力掩码),以及节点特性来查找图中的通用型节点;
根据节点的依赖关系(忽略通用型节点),来获取可以线性化网络计算图分割点。
3.根据权利要求1所述的自动激活值检查点搜索和自动张量并行搜索的融合系统,其特征在于:所述元信息抽取在不真实执行的情况下,通过pytorch的__torch_dispatch__机制,来获取张量在我们希望的设备上(GPU、CPU)进行运行时的底层算子,并由此估算运行时的内存开销和计算量;
使用__torch_dispatch__机制获取各个算子的底层算子;
根据获取的算子将模型的运算开销和模型的内存开销抽象成依赖于输入和输出形状的数学公式,方便自动张量并行获取算子在不同切分方式下的。
4.根据权利要求1所述的自动激活值检查点搜索和自动张量并行搜索的融合系统,其特征在于:所述自动激活值检查点求解器以rotor算法为基础,重新修改了建模,考虑了张量并行的多卡通信场景,在用户输入的内存上限下,给出在考虑张量并行通信开销的情况下的最优解。
5.根据权利要求1所述的自动激活值检查点搜索和自动张量并行搜索的融合系统,其特征在于:所述自动张量并行求解器以Alpa为基础在PyTorch上构建的自动张量并行,在给定元信息的情况下进行张量并行策略的求解。
6.根据权利要求1所述的自动激活值检查点搜索和自动张量并行搜索的融合系统,其特征在于:所述两阶段求解器包括以下步骤,在给定自动张量并行求解器和自动激活值检查点求解器的情况下,依据用户实际可用内存预算向自动张量并行求解器输入一组虚拟内存预算,给出一系列的张量并行策略,再使用自动激活值检查点求解器给出激活值检查点策略将内存控制到真实内存预算之下,比较一系列的策略,选出估算运行时间最短的策略。
7.根据权利要求1所述的自动激活值检查点搜索和自动张量并行搜索的融合系统,其特征在于:所述优化计算图依据动态规划求解器的最优解,重构PyTorch原有计算图,生成新的计算图,使自动搜索得到的激活值检查点最终被使用,从而大幅减少训练内存开销。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211738333.5A CN116050512A (zh) | 2022-12-31 | 2022-12-31 | 自动激活值检查点搜索和自动张量并行搜索的融合系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211738333.5A CN116050512A (zh) | 2022-12-31 | 2022-12-31 | 自动激活值检查点搜索和自动张量并行搜索的融合系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116050512A true CN116050512A (zh) | 2023-05-02 |
Family
ID=86125082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211738333.5A Pending CN116050512A (zh) | 2022-12-31 | 2022-12-31 | 自动激活值检查点搜索和自动张量并行搜索的融合系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116050512A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116862019A (zh) * | 2023-07-06 | 2023-10-10 | 清华大学 | 基于数据并行范式的模型训练方法及装置 |
-
2022
- 2022-12-31 CN CN202211738333.5A patent/CN116050512A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116862019A (zh) * | 2023-07-06 | 2023-10-10 | 清华大学 | 基于数据并行范式的模型训练方法及装置 |
CN116862019B (zh) * | 2023-07-06 | 2024-03-19 | 清华大学 | 基于数据并行范式的模型训练方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hegedüs et al. | A model-driven framework for guided design space exploration | |
Coon et al. | Managing complexity in simulations of land surface and near-surface processes | |
Galtier et al. | FMI-based distributed multi-simulation with DACCOSIM | |
Miremadi et al. | Symbolic computation of reduced guards in supervisory control | |
Ciccozzi et al. | Round-trip support for extra-functional property management in model-driven engineering of embedded systems | |
US8046202B1 (en) | Generation of intermediate representations based on user specified elements in a graphical model that enable simulation, propagation and code generation | |
CN109063295A (zh) | 基于cae模型的节点信息优化处理方法和装置 | |
Baudron et al. | Parareal in time 3D numerical solver for the LWR Benchmark neutron diffusion transient model | |
CN116050512A (zh) | 自动激活值检查点搜索和自动张量并行搜索的融合系统 | |
Williams et al. | Searching for model migration strategies | |
Prosvirnova et al. | Automated generation of minimal cut sets from AltaRica 3.0 models | |
Belgacem et al. | Distributed multiscale computations using the MAPPER framework | |
CN104734870A (zh) | 一种基于元胞自动机的软件故障传播方法 | |
CN116050689A (zh) | 一种广域空间铁路线路智能搜索方法、系统、终端及介质 | |
CN105955882A (zh) | 一种迭代学习模型行为相似性的测试用例生成方法和装置 | |
CN103455668B (zh) | 面向状态变量节点分析混合框架的电磁暂态仿真插值方法 | |
CN116882218B (zh) | 一种油藏数值模拟方法、装置、计算机设备及存储介质 | |
Mausam et al. | Planning with continuous resources in stochastic domains | |
US7246056B1 (en) | Runtime parameter mapping for system simulation | |
Kamyar et al. | Solving large-scale robust stability problems by exploiting the parallel structure of Polya's theorem | |
Coorey et al. | Generative spatial performance design system | |
Marecki et al. | On opportunistic techniques for solving decentralized Markov decision processes with temporal constraints | |
Radosevic et al. | Distributed building performance simulation—a novel approach to overcome legacy code limitations | |
Albers et al. | Adaptive on-the-fly changes in distributed processing pipelines | |
Ipate et al. | Model learning and test generation using cover automata |
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 |