CN116010224A - 一种面向深度学习模型部署的gpu性能评测方法 - Google Patents
一种面向深度学习模型部署的gpu性能评测方法 Download PDFInfo
- Publication number
- CN116010224A CN116010224A CN202211324471.9A CN202211324471A CN116010224A CN 116010224 A CN116010224 A CN 116010224A CN 202211324471 A CN202211324471 A CN 202211324471A CN 116010224 A CN116010224 A CN 116010224A
- Authority
- CN
- China
- Prior art keywords
- kernel function
- model structure
- model
- basic
- deep learning
- 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
-
- 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
- Debugging And Monitoring (AREA)
Abstract
本发明涉及GPU性能评测领域,公开了一种面向深度学习模型部署的GPU性能评测方法,本发明提出了T‑Profiler框架,引入两阶段解析技术,即“核函数类别解析”和“核函数聚合解析”,可以半自动地获取模型在部署后的多层次性能;通过两阶段的设计,可以适配多种深度学习编译器和多种目标硬件的评测工具;经实验表明,T‑Profiler框架相较于原有的评测系统,可以低代码适配多种应用场景,实现对被测模型性能瓶颈和模块性能的快速统计分析。
Description
技术领域
本发明涉及GPU性能评测领域,具体涉及一种面向深度学习模型部署的GPU性能评测方法。
背景技术
随着深度学习算法的快速发展,许多新的精度性能优异的算法模型存在巨大的参数量和计算量,在部署到实际应用场景的硬件(通常为GPU)平台时存在计算时延长、计算和存储资源受限等挑战,难以满足实际应用场景对实时性和资源的要求,限制了深度学习模型的落地应用。为了应对上述挑战,业界通常利用深度学习编译器实现模型在GPU平台上的优化,以期实现快速高效的模型部署。
深度学习编译器一般采用自动或者半自动的方法,完成深度学习计算图到多种底层硬件的目标代码生成,从而降低计算图的部署、算子开发等的成本。对计算图的编译优化通常会采用复杂算子拆分、算子融合、基于输入形状的核函数选择等优化策略。例如,SoftMax、LayerNorm等复杂算子通常被拆分为一组代数等价的基本算子的组合,由这些基本算子组成的计算图会根据算子融合策略以及输入的形状,进一步划分为多个子图,每个子图由编译器生成的核函数或者调用的算子库执行。
上述编译优化策略通常会打乱深度学习模型原有的结构,导致实际在GPU上执行的核函数和原有模型中的算子不再保持一一对应的关系。在利用编译器生成的模型进行部署时,若模型推理速度未达到预期,就需要收集模型执行的计算时延,进一步定位模型性能瓶颈。此外,单个深度学习模型通常由多个相同或不同的操作模块组成,每个模块由一组算子组成,在进行硬件友好的算法设计时,会需要根据不同模块的计算时延来进行模块的替换。
现有的相关性能评测工具主要有两类,一类是深度学习推理框架的内嵌评测工具,例如PyTorch Profiler等,这类评测器通过代码插桩的方式,在算子执行前后安插时间计数来获取算子的计算时延。这类工具与框架绑定,无法适用于其他深度学习编译器部署的模型。另一类是硬件厂商提供的评测器,例如Nvdia的Nsight System等,这类评测器通过底层驱动获取核函数的计算时延等数据,能给出核函数执行时间线以及每个核函数内部的性能数据。利用这些数据,很难将核函数与原有模型的算子建立起对应关系,无法获得原有模型各算子和不同模块的计算时延。
综上,针对深度学习模型部署的性能评测,目前尚没有工具能给出原有模型中每个算子以及不同模块的计算时延,这不利于算法工程师在目标硬件上对部署的被测模型进行针对性优化。
发明内容
为解决上述技术问题,本发明提供一种面向深度学习模型部署的GPU性能评测方法。
为解决上述技术问题,本发明采用如下技术方案:
一种面向深度学习模型部署的GPU性能评测方法,深度学习模型在深度学习推理框架上的部署版本称为被测模型,GPU性能评测方法具体包括以下步骤:
步骤一:获取被测模型的核函数执行时间线,核函数执行时间线中核函数与被测模型所依赖的深度学习推理框架相关;
步骤二、进行核函数类别解析:
定义基本核函数的名称识别规则,依据名称识别规则对核函数执行时间线中的核函数名称进行分解和类型识别,构建与GPU和深度学习推理框架均无关的基本核函数记号序列,并在基本核函数记号序列的各基本核函数记号中保存对应的核函数名称、核函数的计算时延;
步骤三、进行核函数聚合解析:
根据被测模型的结构描述和聚合规则,将各基本核函数自底向上按“算子-模块-编码层块”的结构聚合为一个层次化的性能结构树;其中算子包括多个基本核函数,模块包括多个算子,编码层块包括多个模块。
进一步地,步骤二中进行核函数类别解析时,包括:
数据预处理:将从核函数执行时间线中获得的被测模型执行过程中调用的所有核函数名称,拼接在一起,核函数名称之间用换行符分隔;将核函数的计算时延用数组保存,每个计算时延值对应的数组索引由核函数名称的行号唯一确定,得到的数组记为计算时延数组;
核函数名的识别:定义核函数的名称识别规则,名称识别规则中包括能够由核函数名称分解生成基本核函数对应记号的基本核函数正则表达式;进行核函数类别解析时,所有满足基本核函数正则表达式的核函数名称均返回一个基本核函数对应的记号,同时会保存下对应的基本核函数的行号;核函数执行时间线中的所有核函数名称分解出的基本核函数对应的记号按顺序保存在一个记号序列中,得到基本核函数记号序列。
进一步地,算子、模块、编码层块统称为模型结构,基本核函数为算子的子结构,算子为模块的子结构,模块为编码层块的子结构;
步骤三中进行核函数聚合解析时,包括:
核函数名的聚合:按“算子-模块-编码层块”的层次将基本核函数聚合为模型结构树;
模型结构的时延统计:对模型结构树进行后序遍历,对于遍历过程中的任一模型结构A:先对模型结构A所有的子结构统计计算时延,若每个子结构之间不存在算子融合现象,即任意两个子结构包括的基本核函数所处的行号不相同,则模型结构A的计算时延为模型结构A的所有子结构计算时延之和;若任意两个子结构之间存在算子融合现象,模型结构A的计算时延为模型结构A的所有子结构计算时延之和减去行号相同的基本核函数对应的计算时延;
数据输出:对模型结构树上的每个模型结构,产生一个模型结构性能记录,得到所述的性能结构树;模型结构性能记录包括模型结构的名称、模型结构树根到该模型结构的路径、模型结构信息描述、模型结构的正规式以及模型结构的计算时延数据。
进一步地,模型结构名为该模型结构的类型;模型结构树根到该模型结构的路径用于标识该模型结构在被测模型中的位置;模型结构信息包括该模型结构所有子结构的序列号以及核函数数量;模型结构的正规式用于描述该模型结构的归约组成;模型结构的计算时延数据包含了该模型结构实际执行的计算时延和算子执行的计算时延。
与现有技术相比,本发明的有益技术效果是:
深度学习已广泛应用于计算机视觉、自然语言处理、业务推荐等领域。针对深度学习模型部署时,现有评测工具无法获得原有模型的算子和模块在模型经深度学习编译器部署后对应的执行性能,本发明提出了T-Profiler框架,它引入两阶段解析技术,即“核函数类别解析”和“核函数聚合解析”,可以半自动地获取模型在部署后的多层次性能。通过两阶段的设计,可以适配多种深度学习编译器和多种目标硬件的评测工具。经实验表明,T-Profiler框架相较于原有的评测系统,可以低代码适配多种应用场景,实现对被测模型性能瓶颈和模块性能的快速统计分析。
附图说明
图1为本发明中的T-Profiler框架的架构图;
图2为本发明T-Profiler框架评测Swin Transformer部署模型模块性能的可视化图;
图3为本发明T-Profiler框架评测Swin Transformer部署模型部分算子性能的可视化图。
具体实施方式
下面结合附图对本发明的一种优选实施方式作详细的说明。
深度学习模型部署前称为原有模型,部署后的版本称为被测模型。
如图1所示,本发明中的基于T-Profiler框架的GPU性能评测方法主要分为三个部分:评测执行器、核函数类别解析和核函数聚合解析。
其中,评测执行器调用现有GPU通用性能评测工具,获取当前深度学习推理框架(如TensorRT、TVM等)下被测模型的核函数执行时间线,这里的核函数与被测模型所依赖的深度学习推理框架相关;
核函数类别解析依据配置的基本核函数的名称识别规则,对评测执行器输出的核函数执行时间线中的核函数名称进行分解和类型识别,构建与硬件和深度学习推理框架无关的基本核函数记号序列,并在记号中保存对应的核函数名称、计算时延等数据;
核函数聚合解析根据被测模型的结构描述和聚合规则,将各基本核函数自底向上按“算子-模块-编码层块”的结构聚合为一个层次化性能结构树。
1.评测执行器
T-Profiler框架支持从多种评测工具获取被测模型的核函数执行时间线,例如:
通过基于GPU的通用评测工具,如Nsight System,并使用GUI界面复制其核函数执行时间线的表格数据;
通过基于深度学习推理框架的评测器,如PyTorch Profiler,对基于深度学习推理框架中部署的被测模型统计核函数执行时间线,并通过[torch.profile.profiler.export_chrome_trace]方法导出核函数执行时间线的json数据;
针对NVIDIA GPU,利用CUPTI评测接口记录核函数调用时间戳。
2.核函数类别解析
核函数类别解析部分的输入是评测执行器输出的被测模型的核函数执行时间线,输出是基本核函数记号序列。核函数类别解析时,首先定义基本核函数的名称识别规则,通过ANTLR工具为名称识别规则生成相应的核函数类别解析器,获得每个基本核函数的类型。这里,基本核函数的类型与ONNX算子类型保持一致,这可以保证基本核函数类型的完备性,可以支持绝大部分深度学习模型。核函数类别解析的具体步骤如下所示:
数据预处理:用于预处理输入的被测模型的核函数执行时间线文件;具体地,将被测模型执行过程中调用的所有核函数名称拼接在一起,核函数名称之间用换行符分隔;将核函数的计算时延用数组保存,每个计算时延值对应的数组索引由核函数名称的行号唯一确定,得到的数组记为计算时延数组。
核函数名的识别:核函数中存在融合核函数,融合核函数是由多个基本核函数组合而成;利用词法解析将融合核函数的名称分解为基本核函数的名称;具体地,首先定义核函数的名称识别规则,名称识别规则中描述了如何由核函数名称分解生成基本核函数对应的记号;解析过程中,所有满足基本核函数正则表达式的核函数名称都会返回一个对应的记号,同时会保存下对应的基本核函数的行号。解析后,核函数执行时间线中的所有核函数名称分解出的基本核函数对应的记号被按顺序保存在一个记号序列中,得到基本核函数记号序列。
上述解析过程得到的基本核函数记号序列是与编译器和具体硬件无关的。
3.核函数聚合解析
核函数聚合解析部分的输入是基本核函数记号序列和核函数的计算时延数组,输出为抽象语法树,抽象语法树中每个语法节点对应一个模型结构,模型结构一般为算子、模块或者编码层等结构。核函数聚合解析器根据被测模型的模型结构定义基本核函数的聚合规则,并通过ANTLR工具将上述聚合规则生成聚合解析器,来执行具体的解析过程。根据当前深度学习模型结构的发展特点,本发明将模型结构定位为算子、模块和编码层块三个层次,从而相应的模型结构描述自然而然地包含下述自下而上的三个层级:
第一层级,算子的基本核函数序列描述:每个算子一般由一个或者多个基本核函数组成,即基本核函数为算子的子结构。由于“Add”、“Div”等基本核函数有多个输入输出,对于含有这些基本核函数的复杂算子来说,其内部基本核函数执行的拓扑顺序可能不唯一。因此在定义算子的基本核函数结构时需枚举所有可能的基本核函数执行的拓扑序。
第二层级,模块的算子序列描述:每个模块一般由多个算子组成,即算子为模块的子结构。类似于第一层级,当某个算子存在多个输入输出时,可能存在模块的算子执行拓扑顺序不唯一的情况,因此也需要枚举所有可能的算子执行拓扑序。
第三层级,编码层块内的模块序列描述:随着深度学习算法设计水平的发展,深度学习模型在模块之上通常还存在编码层和编码块的结构,编码层和编码块统称为编码层块,编码层块一般是由若干模块组合而成的,即模块为编码层块的子结构。因此需要合理地描述该层次的结构。类似于第一层级,需要根据内部的模块输入输出数目枚举所有可能的模块执行拓扑序。
具体的聚合解析步骤如下:
核函数名的聚合过程:根据上述的模型结构,利用文法解析,将基本核函数聚合成不同的模型结构,并将整个模型结构组织为树形结构。本步骤的输入为基本核函数记号序列,输出为模型结构树(即聚合解析得到的语法树)。
模型结构的时延统计:本步骤的输入为聚合过程产生的模型结构树,以及核函数的计算时延数组,输出为模型结构性能记录序列。本发明利用在模型结构树上的后序遍历,对任一模型结构,先对其所有子结构统计计算时延。其中,若每个子结构之间不存在算子融合的现象,即任意两个子结构包括的基本核函数所处的行号不相同,则该模型结构的计算时延为所有子结构计算时延之和;否则,该模型结构的计算时延为子结构时延之和减去行号相同的基本核函数对应的时延。
数据输出:最后,对每个模型结构(即模型结构树上的所有非叶子节点),产生一个模型结构性能记录,最终得到性能结构树。模型结构性能记录的格式如下:<模型结构名,模型结构树根到该模型结构的路径,模型结构信息描述,模型结构的正规式,模型结构计算时延数据>。其中,模型结构名为该模型结构的类型,例如算子-模块-编码层块;模型结构树根到该模型结构的路径勾画了该模型结构在被测模型中的位置;模型结构信息描述给出了该模型结构用于展示和可视化的数据以及描述信息,包括所有子结构对应记录的序列id、包含有多少个核函数,模型结构的正规式保留了该模型结构是由哪些子结构和基本算子归约得到的,模型结构时延数据包含了该模型结构实际执行(包括由于数据准备、内存分配等系统开销造成的算子执行间隙的空闲时间)和算子执行的计算时延。
该解析过程仅与模型结构有关。
实施例
T-Profiler框架结构如图1所示,基于T-Profiler框架的GPU性能评测方法的执行流程如下:
选取目标的深度学习编译器或深度学习计算系统,根据指定的评测配置参数部署得到深度学习模型的部署版本,即被测模型。
调用评测执行器,追踪被测模型的执行过程,得到核函数执行时间线;
调用核函数类别解析过程,读入给定的核函数类别描述文件中的相关规则,对得到的核函数执行时间线执行框架相关的核函数类别的解析,得到基本核函数记号序列;
调用核函数聚合解析过程,读入给定的模型结构描述文件中的相关规则,对输入的基本核函数记号序列进行与框架无关的模块类别的解析,得到模型层次化的性能结构树数据。
图1中出现的英文均为专用名词,其中模型部署版本中的PyTorch、ONNX、TensorRT、Faster Transformer为相关深度学习系统的名称,评测工具中的NVIDIANsight、VTune、Perf为GPU和CPU上的性能评测工具名称,核函数类别描述中出现的dense、GEMM等名词代表深度学习模型推理过程中的核函数名称,模型结构定义中的Model、Encoder、MHA等名词代表模型结构。
图2显示了利用T-Profiler框架对基于TensorRT(TRT)、Faster Transformer(FT)和TVM部署的Swin Transformer图像分类模型的模块时延的可视化结果。T-Profiler框架可以根据深度学习模型的模型结构描述文件,统计出不同模块的时延数据。
图3显示了利用T-Profiler框架对基于TensorRT部署的Swin Transformer图像分类模型不同计算规模的变体(Large:大规模,Base:一般规模,Small:小规模,Tiny:极小规模)的算子时延的可视化结果。T-Profiler框架可以根据深度学习模型的核函数类别描述文件,统计出算子的时延数据。
现有的适用于编译优化系统的被测模型推理过程性能评测的工具,如NsightSystem等,只能给出核函数执行时间线数据,若想得到如图2和图3的评测结果,一般需要根据人工经验进行归类统计,这种人工分析的方法在下述场景难以应用:
为保证评测稳定性,需要重复模型推理若干次,并将统计分析结果求平均值;
在深度学习模型开发的迭代阶段,模型结构通常只有一些微小的变化,部署后仍需对人工分析的规则进行大量的调整;
深度学习模型规模非常大,执行时调用的核函数数量巨大时,人工分析复杂度太大。
相比之下,本发明列举了卷积网络以及常见的Transformer系列模型的基本算子在TensorRT以及TVM编译器中对应名称的正则表达式,并将其实现为词法描述文件中的基本核函数名称识别规则。又列举了LayerNorm、SoftMax、GELU、Patch Merging等常见的复杂算子,Bottleneck、MLP、Attention等常见的操作模块,Transformer Encoder,CNNBackbone等常见的编码层与编码块的聚合规则,并基于这些基本规则组合实现出了常见的卷积神经网络以及Transformer系列模型的整体的聚合规则。基于这些规则,可以实现低代码适配多种目标硬件、深度学习编译器以及深度学习模型结构,从而很大程度上节省了人工分析的时间,并提升了统计分析的准确度。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (4)
1.一种面向深度学习模型部署的GPU性能评测方法,深度学习模型在深度学习推理框架上的部署版本称为被测模型,GPU性能评测方法具体包括以下步骤:
步骤一:获取被测模型的核函数执行时间线,核函数执行时间线中核函数与被测模型所依赖的深度学习推理框架相关;
步骤二、进行核函数类别解析:
定义基本核函数的名称识别规则,依据名称识别规则对核函数执行时间线中的核函数名称进行分解和类型识别,构建与GPU和深度学习推理框架均无关的基本核函数记号序列,并在基本核函数记号序列的各基本核函数记号中保存对应的核函数名称、核函数的计算时延;
步骤三、进行核函数聚合解析:
根据被测模型的结构描述和聚合规则,将各基本核函数自底向上按“算子-模块-编码层块”的结构聚合为一个层次化的性能结构树;其中算子包括多个基本核函数,模块包括多个算子,编码层块包括多个模块。
2.根据权利要求1所述的面向深度学习模型部署的GPU性能评测方法,其特征在于,步骤二中进行核函数类别解析时,包括:
数据预处理:将从核函数执行时间线中获得的被测模型执行过程中调用的所有核函数名称,拼接在一起,核函数名称之间用换行符分隔;将核函数的计算时延用数组保存,每个计算时延值对应的数组索引由核函数名称的行号唯一确定,得到的数组记为计算时延数组;
核函数名的识别:定义核函数的名称识别规则,名称识别规则中包括能够由核函数名称分解生成基本核函数对应记号的基本核函数正则表达式;进行核函数类别解析时,所有满足基本核函数正则表达式的核函数名称均返回一个基本核函数对应的记号,同时会保存下对应的基本核函数的行号;核函数执行时间线中的所有核函数名称分解出的基本核函数对应的记号按顺序保存在一个记号序列中,得到基本核函数记号序列。
3.根据权利要求2所述的面向深度学习模型部署的GPU性能评测方法,其特征在于,算子、模块、编码层块统称为模型结构,基本核函数为算子的子结构,算子为模块的子结构,模块为编码层块的子结构;
步骤三中进行核函数聚合解析时,包括:
核函数名的聚合:按“算子-模块-编码层块”的层次将基本核函数聚合为模型结构树;
模型结构的时延统计:对模型结构树进行后序遍历,对于遍历过程中的任一模型结构A:先对模型结构A所有的子结构统计计算时延,若每个子结构之间不存在算子融合现象,即任意两个子结构包括的基本核函数所处的行号不相同,则模型结构A的计算时延为模型结构A的所有子结构计算时延之和;若任意两个子结构之间存在算子融合现象,模型结构A的计算时延为模型结构A的所有子结构计算时延之和减去行号相同的基本核函数对应的计算时延;
数据输出:对模型结构树上的每个模型结构,产生一个模型结构性能记录,得到所述的性能结构树;模型结构性能记录包括模型结构的名称、模型结构树根到该模型结构的路径、模型结构信息描述、模型结构的正规式以及模型结构的计算时延数据。
4.根据权利要求3所述的面向深度学习模型部署的GPU性能评测方法,其特征在于:模型结构名为该模型结构的类型;模型结构树根到该模型结构的路径用于标识该模型结构在被测模型中的位置;模型结构信息包括该模型结构所有子结构的序列号以及核函数数量;模型结构的正规式用于描述该模型结构的归约组成;模型结构的计算时延数据包含了该模型结构实际执行的计算时延和算子执行的计算时延。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211324471.9A CN116010224A (zh) | 2022-10-27 | 2022-10-27 | 一种面向深度学习模型部署的gpu性能评测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211324471.9A CN116010224A (zh) | 2022-10-27 | 2022-10-27 | 一种面向深度学习模型部署的gpu性能评测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010224A true CN116010224A (zh) | 2023-04-25 |
Family
ID=86023685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211324471.9A Pending CN116010224A (zh) | 2022-10-27 | 2022-10-27 | 一种面向深度学习模型部署的gpu性能评测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010224A (zh) |
-
2022
- 2022-10-27 CN CN202211324471.9A patent/CN116010224A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5729746A (en) | Computerized interactive tool for developing a software product that provides convergent metrics for estimating the final size of the product throughout the development process using the life-cycle model | |
US9208057B2 (en) | Efficient model checking technique for finding software defects | |
US8566787B2 (en) | System and method for improving modularity of large legacy software systems | |
US10289541B2 (en) | Source code flow analysis using information retrieval | |
US8732676B1 (en) | System and method for generating unit test based on recorded execution paths | |
CN102541521B (zh) | 基于结构化查询语言的操作指令自动生成装置及方法 | |
JP7439242B2 (ja) | 機械学習モデルの視覚的作成及び監視 | |
CN103678110A (zh) | 提供修改相关信息的方法和装置 | |
CN108664391B (zh) | 一种面向程序状态的故障分类方法、变异测试方法及设备 | |
US9524366B1 (en) | Annotations to identify objects in design generated by high level synthesis (HLS) | |
Nusrat et al. | How developers optimize virtual reality applications: A study of optimization commits in open source unity projects | |
EP1548581A2 (en) | Methods, apparatus and programs for system development | |
Strüber et al. | Scalability of Model Transformations: Position Paper and Benchmark Set. | |
CN108563561A (zh) | 一种程序隐性约束提取方法及系统 | |
CN111045670A (zh) | 一种二进制代码与源代码间复用关系的识别方法与装置 | |
Friedrich et al. | Knowledge engineering for configuration systems | |
CN111444635B (zh) | 一种基于xml语言的系统动力学仿真建模方法及系统 | |
CN111143228B (zh) | 基于决策表法的测试代码生成方法及装置 | |
CN116010224A (zh) | 一种面向深度学习模型部署的gpu性能评测方法 | |
Lai et al. | Defining and verifying behaviour of domain specific language with fUML | |
CN114780443A (zh) | 微服务应用自动化测试方法、装置、电子设备及存储介质 | |
Tatale et al. | A Survey on Test Case Generation using UML Diagrams and Feasibility Study to Generate Combinatorial Logic Oriented Test Cases. | |
CN113672509A (zh) | 自动化测试方法、装置、测试平台及存储介质 | |
CN112015426A (zh) | 一种代码管理方法、装置及设备 | |
Zündorf | A heuristic for the subgraph isomorphism problem in executing PROGRES |
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 |