CN110109811A - 一种面向gpu计算性能问题的溯源方法 - Google Patents

一种面向gpu计算性能问题的溯源方法 Download PDF

Info

Publication number
CN110109811A
CN110109811A CN201910386547.2A CN201910386547A CN110109811A CN 110109811 A CN110109811 A CN 110109811A CN 201910386547 A CN201910386547 A CN 201910386547A CN 110109811 A CN110109811 A CN 110109811A
Authority
CN
China
Prior art keywords
performance
cuda
program
kernel function
level
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.)
Granted
Application number
CN201910386547.2A
Other languages
English (en)
Other versions
CN110109811B (zh
Inventor
丁毅
周丽
靳军
唐恒亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wuzi University
Original Assignee
Beijing Wuzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Wuzi University filed Critical Beijing Wuzi University
Priority to CN201910386547.2A priority Critical patent/CN110109811B/zh
Publication of CN110109811A publication Critical patent/CN110109811A/zh
Application granted granted Critical
Publication of CN110109811B publication Critical patent/CN110109811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种面向GPU计算性能问题的溯源方法,包括如下步骤:(1)使用CUDA任务并行模型CTPM描述CUDA程序kernel函数级别的行为特征,从而识别CUDA程序kernel函数级别的性能低效行为,并展开kernel函数级别性能优化工作;(2)针对CUDA程序kernel函数内部数据并行部分,使用层次迭代属性约简算法LIAR来识别关键度量,进行CUDA程序深层次的性能挖掘,并优化CUDA kernel函数内部的性能问题。本发明通过分析基于GPU硬件特点的CUDA开发运行环境和编程模型,找到了有效的性能问题溯源方法,提高性能瓶颈定位的准确性,达到缩短优化周期的目的。

Description

一种面向GPU计算性能问题的溯源方法
技术领域
本发明涉及信息技术领域的性能监测分析领域,特别是涉及一种面向GPU计算性能问题的溯源方法。
背景技术
近年来,高性能计算机发展日新月异,传统单一的计算结构逐渐被混合计算结构所替代,以期充分发挥各种组件的特长,为计算能力的提高发挥效力。在混合结构中,GPU作为当前混合结构的加速部分,发挥着越来越重要的作用。同时,混合的计算模式增加了编程的复杂性。
当前,NVIDIA公司的GPU以及其开发运行环境和编程模型CUDA最为成熟,应用也最为广泛。通常,CUDAkernel函数级程序分析方法,是通过CUDA任务并行模型CTPM(CUDA TaskParallelModel)模型来描述程序的低效行为,有助于构建性能工具自动识别性能瓶颈。然而,数据并行部分(kernel函数内部)通常拥有大量的CUDA线程,通过高效切换线程来隐藏延迟,提高计算效率。这种执行模式,再使用行为描述方法来分析性能并且对性能问题进行溯源就比较困难了。
此外,计算具有统计含义的度量是目前kernel函数内部分析的主要方法,然而GPU结构复杂,计算性能的度量通常又会很多,包括内存操作、计算操作、分支、同步操作等,这些都和性能有或多或少的关系,如果每一项都分别加以优化,工作量会很大,这些度量通常又是相互关联的,达到全优往往不太可能。
所以,寻找与性能关联度最大的度量,是性能问题溯源的重要步骤,这里称为关键度量,这是本发明的主要发明构思。
发明内容
为了解决这些问题,本发明提出了一种基于粗糙集理论的CUDA数据并行部分(kernel函数内部)的层次迭代属性约简算法(Level Iterative Attribute ReductionAlgorithm,LIAR)来识别关键度量,从而找到适合面向GPU计算性能问题的溯源方法,进而优化CUDA程序,提高性能。
本发明的目的在于提供一种面向GPU计算性能问题的溯源方法,包括如下步骤:
(1)使用CUDA任务并行模型CTPM描述CUDA程序kernel函数级别的行为特征,从而识别CUDA程序kernel函数级别的性能低效行为,并展开kernel函数级别性能优化工作;
(2)针对CUDA程序kernel函数内部数据并行部分,使用层次迭代属性约简算法LIAR来识别关键度量,进行CUDA程序深层次的性能挖掘,并优化CUDAkernel函数内部的性能问题。
优选的,所述使用CUDA任务并行模型CTPM描述CUDA程序kernel函数级别的行为特征,从而识别CUDA程序kernel函数级别的性能低效行为,并展开kernel函数级别性能优化工作,包括:基于性能踪迹信息构建的CTPM模型,通过事件来表示不同时间和空间维度发生的程序行为,这一系列事件通过正确的执行次序的约束,就可以用来描述程序的执行流程,进而有助于观察和理解程序性能相关的操作,并把程序事件分为不同的类型,类型是由一系列属性所描述的,这些类型的属性存在公共的部分,那就是local属性,即事件发生的空间维度,也就是位置,所述位置既可以是物理概念上的,也可以是虚拟位置;time属性,即事件的时间维度,也就是事件发生时间和attritype属性,attritype属性表示执行平台的类型,包括CPU或GPU,用以区分CUDA程序的主机和设备;还包括与具体事件类型相关的其他属性,从而将基于性能踪迹信息的事件进行集合形式化描述为基于踪迹数据的事件集合,所述事件集合为一个有限的事件序列集合E∶={e1,…,en},基于所述信息和属性,使用形式化方法来描述程序性能低效行为,比如同步CPU等待、数据传输分散等行为。
优选的,所述针对CUDA程序kernel函数内部数据并行部分,使用层次迭代属性约简算法LIAR来识别关键度量,进行CUDA程序深层次的性能挖掘,并优化CUDAkernel函数内部的性能问题中所述层次迭代属性约简算法LIAR的运算步骤包括:
步骤1,输入level值以及相应的决策表DT=(U,C∪G,V,f),默认情况下,level=1,其中,U表示每个层次的论域对象组成的集合,论域对象也就是执行单元;C∪D中D是由单个元素组成,即对应层分析对象的执行时间,C则是由与论域对象执行相关的性能度量组成的集合;V表示信息函数f的值域;f表示各个论域对象对应度量的运行结果,论域对象也就是执行单元;步骤2,对决策表各个属性的数据分别进行聚类操作;
步骤3,根据聚类完毕的决策表信息,计算出改进的差别矩阵M′n×n
步骤4,利用改进的差别矩阵M′n×n的非空元素c′ij,即需要满足(c′ij≠0)∧(c′ij≠×),构建成析取逻辑表达式
步骤5,将刚刚所得的所有析取逻辑表达式统一进行合取操作,生成合取范式
步骤6,通过进行化简计算,将合取范式转换为析取范式,得到L′(∨)=∨L′m(m≥1),其中每一项L′m都是合取逻辑表达式;
步骤7,根据上一步所得的析取范式,输出其中为析取范式中所有析取项的集合,这样,其中的每一个合取项都是决策表的一个相对约简,同时,还可以计算出合取项的共同部分来寻找相对核。
步骤8,判定关键度量,如果满足要求,则跳转至步骤9;否则,记录此层次的分析结果,并依据结果重新设定level值,并输入新的决策表信息,其中默认level值自动加1,不能超过4,然后跳转至步骤2,开始下一轮分析;
步骤9,算法结束,识别对应层次的关键度量,为进一步优化程序提供依据。
本发明的有益效果在于:通过分析基于GPU硬件特点的CUDA开发运行环境和编程模型,找到了有效的性能问题溯源方法,提高性能瓶颈定位的准确性,达到缩短优化周期的目的。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为根据本发明实施例的面向GPU计算性能问题的溯源方法流程示意图;
图2为根据本发明实施例的层次迭代属性约简算法的运算步骤流程图。
具体实施方式
为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此的描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
参见图1,面向GPU计算性能问题的溯源方法,包括如下步骤:
(1)使用CUDA任务并行模型CTPM描述CUDA程序kernel函数级别的行为特征,从而识别CUDA程序kernel函数级别的性能低效行为,并展开kernel函数级别性能优化工作;
(2)针对CUDA程序kernel函数内部数据并行部分,基于粗糙集理论,使用层次迭代属性约简算法LIAR来识别关键度量,进行CUDA程序深层次的性能挖掘,并优化CUDAkernel函数内部的性能问题。
该方法基于决策表设计,决策表是粗糙集理论应用的重要组成部分,在智能分析、数据挖掘等领域的应用非常广泛。本发明正是通过改进的决策表来完成无关知识的约简操作,在原始决策表决策属性和条件属性依赖关系不变的前提下移除冗余的属性,应用于CUDA程序kernel函数内部数据并行部分,就可以完成关键度量的识别操作。
基于差别函数的决策表属性约简算法以及相关概念:
1、决策表(Decision Table,DT),可形式化的定义为四元组DT=(U,C∪D,V,f),其中,
U:U={x1,x2,...,xn}表示对象的非空有限集合,称为论域;
C∪D:C={a|a∈C}称为条件属性集,其中每个ai∈C(1≤i≤m)称为C的一个简单属性;D={d|d∈D}称为决策属性集,且
用来表示决策表的信息函数,fa则为属性a的信息函数;
表示信息函数f的值域。
2、决策表的差别函数,又称为区分函数,定义如下:给定决策表DT=(U,C∪D,V,f),其中论域表示为非空有限集合U={x1,x2,...,xn},|U|=n,相对于a的差别变量是:
如果决策表中两个对象的决策值相同,研究它们的差别就失去意义,差别函数使用0来表示结果;如果决策表中两个对象的决策值不同,但是属性却相同,表示两个对象的决策是不相容的(也可称为是不一致的),这里使用×来表示。只有两个对象的决策值不相同,所对应的属性值也可区分,则这样的情形可通过此函数来表示其差别。
再令
从而可以定义决策表的差别函数如下:
差别函数有一个性质就是它的极小析取范式中的所有合取范式所对应的属性集是决策表DT的所有相对约简。约简算法正是依赖该原理进行的。另外,决策表的相对D核由差别矩阵中单个属性元素组成,相对D核是所有相对D约简的公共集合,是确定决策值的关键部分。
3、决策表差别矩阵,其定义如下:
设定决策表为DT=(U,C∪D,V,f),其中论域表示为U={x1,x2,...,xn},|U|=n,则定义决策表的差别矩阵表示如下:
其中,cij=α(xi,xj),也就是差别矩阵的元素是由差别变量组成的。此矩阵是对称的,通常选择上三角或者下三角的表现方式,本发明选择下三角的形式来表达差别矩阵。
下面描述基于差别函数的决策表的属性约简算法。
输入:相容决策表DT=(U,C∪D,V,f)。
输出:条件属性C相对于决策属性D的所有相对约简REDc(D)。
步骤1根据输入决策表,计算出其差别矩阵Mn×n
步骤2利用差别矩阵Mn×n的非空元素cij(即需要满足(cij≠0)∧(cij≠×)),进而组建成一个析取逻辑表达式
步骤3将上一步骤所得的所有析取逻辑表达式进行合取操作,生成合取范式
步骤4通过化简计算,将合取范式转换为析取范式,可以获得L(∨)=∨Lm(m≥1),其中每一项Lm都是合取逻辑表达式;
步骤5根据析取范式,可以输出其中为析取范式中所有析取项的集合。也就是其中的每一项都是决策表的一个相对约简。这时算法结束。
另外,由于所有相对约简的公共集合就是相对核,可以通过这个规律来计算出此决策表的相对核。
层次迭代属性约简算法:
由于本发明的目的之一是分析CUDA程序kernel函数内部的数据并行部分,发现性能下降的根源。LIAR就是将抽象算法与程序特性结合起来,并根据实际需求改进经典算法,以求取得较好的分析结果。
通过CUDA程序kernel函数级别的分析,可以获得需要细粒度分析的热点kernel函数,接着就要进行其内部执行特性的分析。此部分目标就是能够识别关键度量。在构建LIAR算法之前,先将分析过程描述如下:
首先从SM层次开始,SM是NVIDIA GPU物理设备上的硬件组成单元,每个SM由多个SP组成。而在CUDA抽象层面,数据并行的kernel函数表现为grid,并由多个block线程块组成。在程序执行的过程中,每个线程块会被运行时系统分配到一个物理SM上执行,block之间并行执行,通常没有直接的通信操作。SM层次的分析就是将kernel函数分解到多个物理SM单元执行(SM层次分析的前提条件是GPU存在多个SM,比如GTX480,C2050等)。将各个参与计算的SM作为论域对象,用SM的物理ID作为其编号。由于性能行为最直观、最简单,也最重要的度量是时间,因此将时间作为决策属性。此层的决策属性就是每个SM在目标kernel函数运行过程中所参与的时间。条件属性可设置为与SM执行相关的度量,这里设为每个SM上执行的block线程块的数目,每个SM上分歧的分支数目(或SM上的分支数目),每个SM上同步指令操作数以及每个SM上执行的指令总数。(当然,条件属性可根据应用的特征改变或增加,比如可以增加原子操作指令数、浮点操作指令数、内存操作指令数等)。其中,SM上执行的block数可以表现CUDA运行时系统的调度特征,GPU是否达到负载均衡;SM上程序分歧的分支数(分歧的分支是CUDA编程模型中的一种低效行为,也就是在一个warp执行单元之中出现的分支现象,造成程序执行路径不一致,引起性能下降)。当然有些程序不存在分歧现象,这样程序中的分支数目也可以作为一个条件属性存在。同步操作是影响程序性能的重要因素,因此同步指令数也可以作为程序分析的条件属性。由于程序都是由指令组成的,因此每个SM上执行的指令总数也是与性能相关的度量。其他系统度量也可被选择,比如缓存命中率等。
如果从SM层次分析获得的关键度量对于性能问题根源的挖掘不是很明确,或者使用的GPU硬件只有1个SM的情形(比如GT 520),这时就要考虑使用下一个层次的分析方法了,也就是block层次的分析。这时,论域则是目标SM上执行的block集合,集合中每个block表示论域的一个对象,使用block的ID属性加以区分。决策属性仍然由时间度量来表现,也就是每个block的执行时间。条件属性可选择block上运行的warp数目(或在block上运行的线程数目),表示各个block运行的执行单元数目,在一定程度上反映了每个block上承担的工作任务量。其他条件属性是目标block上运行的分歧的分支指令数(分支指令总数)、内存操作指令数、计算操作指令数、同步指令操作数、总指令数等等。利用属性约简算法寻找这一层次的关键度量。
在完成数据并行部分block层的分析之后,如果想进一步更深入地分析block热点的根源,可以进一步在warp层展开分析。决策表的论域是目标block内部执行的warp单元。warp不是CUDA抽象模型中的概念,而是GPU实际的调度单位,一般由32个CUDA线程组成。block中的线程也是以warp作为调度单位的。论域的对象是warp的集合,将warp ID作为对象编号来加以区分。决策属性是block线程块中各个warp的执行时间。条件属性仍是分歧的分支数、计算指令数、内存操作指令数、同步指令数等。
再进一步就是CUDA线程层次的分析,决策表的论域对象是目标warp内的线程,使用线程ID来区分。决策属性是线程的执行时间,条件属性依旧和前面类似,选择与之相关的性能度量。在一般情况下,前面的几个层次的分析已经足够详细了,没有必要一定要进行到最底层的线程层次的分析。
这种层次迭代的分析方法在原则上是由高到低依次进行的,但是应用程序具有多样性,执行语义和并行特征通常是不相同的,GPU计算平台也可能不同,因此,具体分析方法也可弹性处理。比如含有多个SM的GPU硬件设备(GTX480,C2050等)通常从SM层开始,而只有1个SM的GPU设备(比如GT520)则只能从block层次级别开始。再比如CUDA程序只有一个block,那可能就要跳过block层次,直接到warp层进行分析。因为LIAR的前提条件就是论域中有多个对象,通过属性约简的方法来寻找关键属性,所以LIAR的使用就要注意寻找相关的多个对象才能完成。处理对象也可弹性处理,比如block层次可选择多个SM上运行的block线程块一起作为论域对象进行分析。条件属性的选择也可以根据具体应用特征加以变化,比如浮点操作比较多的应用,就可以把浮点操作指令数作为重要考察的条件属性。
根据上述分析过程,构建LIAR算法。将热点kernel函数进一步分为SM,block,warp,thread4个层次,使用level表示,SM层为1,block层为2,warp层为3,thread层为4。可逐层深入地挖掘关键度量,也可在层次之间弹性处理,直至得到满意的分析结果为止。决策表DT=(U,C∪D,V,f),U在这里是每个层次的执行单元(论域对象)组成的集合,比如第1层(SM)使用SM的物理ID区分不同的对象。C∪D中D是由单个元素组成,即对应层分析对象的执行时间,C则是由与论域对象执行相关的性能度量组成的集合。f就是各个论域对象(执行单元)对应度量的运行结果,比如fD(x)表示对象x的决策属性,即执行时间,而fa1(x)则表示此对象的a1条件属性值。V表示信息函数f的值域。
有了决策表,就可以构建差别矩阵Mn×n,但是经典的基于差别函数的属性约简算法有一个前提,那就是决策表的相容性(差别矩阵中存在×的情形不适用),对于不相容的决策表其结果是不可靠的。此方法是使用统计学的理论去研究现实问题,应用和计算环境的复杂性和性能度量信息的多样性,使相容性的条件很难得到保证。因此,此算法的设计就要使用改进的决策表来支持不相容性。
前面已经构建的决策表为DT=(U,C∪D,V,f),其中设定其中card()表示集合的基数,也就是该集合中元素的个数。d(xi)表示对象xi的条件属性全集中的等价类的所有不同决策值的总个数,则改进的差别矩阵可表示为:
其中
改进的差别矩阵M′n×n增加了判别条件用于判断min{d(xi),d(xj)}是否大于1。对于相容决策表,恒定存在min{d(xi),d(xj)}等于1,此时,改进的差别矩阵就退化为经典差别矩阵;而当决策表不相容时,则可能出现min{d(xi),d(xj)}大于1的情形,则要按照改进的差别矩阵来进行计算,从而可正确地完成属性约简。
下面就介绍数据并行部分(kernel函数内部)所使用的LIAR算法的运算步骤:
步骤1,输入level值(默认情况下,level=1)以及相应的决策表DT=(U,C∪D,V,f);
步骤2,对决策表各个属性的数据分别进行聚类操作;
步骤3,根据聚类完毕的决策表信息,计算出改进的差别矩阵M′n×n
步骤4,利用改进的差别矩阵M′n×n的非空元素c′ij(即需要满足(c′ij≠0)∧(c′ij≠×)),构建成析取逻辑表达式
步骤5,将刚刚所得的所有析取逻辑表达式统一进行合取操作,生成合取范式
步骤6,通过进行化简计算,将合取范式转换为析取范式,得到其中每一项L′m都是合取逻辑表达式;
步骤7,根据上一步所得的析取范式,可以输出其中为析取范式中所有析取项的集合,这样,其中的每一个合取项都是决策表的一个相对约简。同时,还可以计算出合取项的共同部分来寻找相对核。
步骤8,判定关键度量,如果满足要求,则跳转至步骤9。否则,记录此层次的分析结果,并依据结果重新设定level值(默认level值自动加1,不能超过4),并输入新的决策表信息,然后跳转至步骤2,开始下一轮分析;
步骤9,算法结束,识别对应层次的关键度量,为进一步优化程序提供依据。
采用本实施例,通过分析基于GPU硬件特点的CUDA开发运行环境和编程模型,找到了有效的性能问题溯源方法,提高性能瓶颈定位的准确性,达到缩短优化周期的目的。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

Claims (3)

1.一种面向GPU计算性能问题的溯源方法,其特征在于包括如下步骤:
(1)使用CUDA任务并行模型CTPM描述CUDA程序kernel函数级别的行为特征,从而识别CUDA程序kernel函数级别的性能低效行为,并展开kernel函数级别性能优化工作;
(2)针对CUDA程序kernel函数内部数据并行部分,使用层次迭代属性约简算法LIAR来识别关键度量,进行CUDA程序深层次的性能挖掘,并优化CUDA kernel函数内部的性能问题。
2.根据权利要求1所述的一种面向GPU计算性能问题的溯源方法,其特征在于所述使用CUDA任务并行模型CTPM描述CUDA程序kernel函数级别的行为特征,从而识别CUDA程序kernel函数级别的性能低效行为,并展开kernel函数级别性能优化工作,包括:基于性能踪迹信息构建的CTPM模型,通过事件来表示不同时间和空间维度发生的程序行为,这一系列事件通过正确的执行次序的约束,就可以用来描述程序的执行流程,进而有助于观察和理解程序性能相关的操作,并把程序事件分为不同的类型,类型是由一系列属性所描述的,这些类型的属性存在公共的部分,那就是local属性,即事件发生的空间维度,也就是位置,所述位置既可以是物理概念上的,也可以是虚拟位置;time属性,即事件的时间维度,也就是事件发生时间和attritype属性,attritype属性表示执行平台的类型,包括CPU或GPU,用以区分CUDA程序的主机和设备;还包括与具体事件类型相关的其他属性,从而将基于性能踪迹信息的事件进行集合形式化描述为基于踪迹数据的事件集合,所述事件集合为一个有限的事件序列集合E:={e1,…,en},基于所述信息和属性,使用形式化方法来描述程序性能低效行为。
3.根据权利要求2所述的一种面向GPU计算性能问题的溯源方法,其特征在于所述针对CUDA程序kernel函数内部数据并行部分,使用层次迭代属性约简算法LIAR来识别关键度量,进行CUDA程序深层次的性能挖掘,并优化CUDA kernel函数内部的性能问题中所述层次迭代属性约简算法LIAR的运算步骤包括:
步骤1,输入level值以及相应的决策表DT=(U,C∪D,V,f),默认情况下,level=1,其中,U表示每个层次的论域对象组成的集合,论域对象也就是执行单元;C∪D中D是由单个元素组成,即对应层分析对象的执行时间,C则是由与论域对象执行相关的性能度量组成的集合;V表示信息函数f的值域;f表示各个论域对象对应度量的运行结果,论域对象也就是执行单元;
步骤2,对决策表各个属性的数据分别进行聚类操作;
步骤3,根据聚类完毕的决策表信息,计算出改进的差别矩阵M′n×m
步骤4,利用改进的差别矩阵M′n×n的非空元素c′ij,即需要满足(c′ij≠0)∧(c′ij≠×)构建成析取逻辑表达式
步骤5,将刚刚所得的所有析取逻辑表达式统一进行合取操作,生成合取范式
步骤6,通过进行化简计算,将合取范式转换为析取范式,得到L′(∨)=∨L′m(m≥1),其中每一项L′m都是合取逻辑表达式;
步骤7,根据上一步所得的析取范式,输出其中为析取范式中所有析取项的集合,这样,其中的每一个合取项都是决策表的一个相对约简,同时,还可以计算出合取项的共同部分来寻找相对核;
步骤8,判定关键度量,如果满足要求,则跳转至步骤9;否则,记录此层次的分析结果,并依据结果重新设定level值,并输入新的决策表信息,其中默认level值自动加1,不能超过4,然后跳转至步骤2,开始下一轮分析;
步骤9,算法结束,识别对应层次的关键度量,为进一步优化程序提供依据。
CN201910386547.2A 2019-05-10 2019-05-10 一种面向gpu计算性能问题的溯源方法 Active CN110109811B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910386547.2A CN110109811B (zh) 2019-05-10 2019-05-10 一种面向gpu计算性能问题的溯源方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910386547.2A CN110109811B (zh) 2019-05-10 2019-05-10 一种面向gpu计算性能问题的溯源方法

Publications (2)

Publication Number Publication Date
CN110109811A true CN110109811A (zh) 2019-08-09
CN110109811B CN110109811B (zh) 2019-11-26

Family

ID=67489137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910386547.2A Active CN110109811B (zh) 2019-05-10 2019-05-10 一种面向gpu计算性能问题的溯源方法

Country Status (1)

Country Link
CN (1) CN110109811B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131583A (zh) * 2020-09-02 2020-12-25 上海科技大学 一种基于gpu的模型计数及其约束的求解方法
CN117745308A (zh) * 2024-02-06 2024-03-22 张家港广大特材股份有限公司 一种基于产品性能分析的特种钢冶炼工艺溯源优化方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182571A (zh) * 2014-08-12 2014-12-03 电子科技大学 基于Delaunay和GPU的Kriging插值方法
EP3022628A1 (en) * 2013-07-19 2016-05-25 Samsung Electronics Co., Ltd. Mobile terminal and method of determining and displaying power efficiency of an application
CN107463707A (zh) * 2017-08-18 2017-12-12 北京语言大学 一种决策表下近似不变的局部属性约简定义及方法
CN107544945A (zh) * 2017-08-31 2018-01-05 北京语言大学 决策表的分布及变精度局部约简方法
CN108197656A (zh) * 2018-01-04 2018-06-22 西南交通大学 一种基于cuda的属性约简方法
US20190043457A1 (en) * 2018-05-04 2019-02-07 Intel Corporation Apparatus and methods for generating dynamic trace data on a gpu

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3022628A1 (en) * 2013-07-19 2016-05-25 Samsung Electronics Co., Ltd. Mobile terminal and method of determining and displaying power efficiency of an application
CN104182571A (zh) * 2014-08-12 2014-12-03 电子科技大学 基于Delaunay和GPU的Kriging插值方法
CN107463707A (zh) * 2017-08-18 2017-12-12 北京语言大学 一种决策表下近似不变的局部属性约简定义及方法
CN107544945A (zh) * 2017-08-31 2018-01-05 北京语言大学 决策表的分布及变精度局部约简方法
CN108197656A (zh) * 2018-01-04 2018-06-22 西南交通大学 一种基于cuda的属性约简方法
US20190043457A1 (en) * 2018-05-04 2019-02-07 Intel Corporation Apparatus and methods for generating dynamic trace data on a gpu

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
冯晶晶: "一种基于条件熵的决策表属性约简算法", 《计算机应用与软件》 *
刘文军: "基于可辨识矩阵和逻辑运算的属性约简算法的改进", 《模式识别与人工智能》 *
叶明全: "决策表分解及其最小属性约简研究", 《计算机工程与应用》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131583A (zh) * 2020-09-02 2020-12-25 上海科技大学 一种基于gpu的模型计数及其约束的求解方法
CN112131583B (zh) * 2020-09-02 2023-12-15 上海科技大学 一种基于gpu的模型计数及其约束的求解方法
CN117745308A (zh) * 2024-02-06 2024-03-22 张家港广大特材股份有限公司 一种基于产品性能分析的特种钢冶炼工艺溯源优化方法
CN117745308B (zh) * 2024-02-06 2024-06-14 张家港广大特材股份有限公司 一种基于产品性能分析的特种钢冶炼工艺溯源优化方法

Also Published As

Publication number Publication date
CN110109811B (zh) 2019-11-26

Similar Documents

Publication Publication Date Title
Harman et al. Pareto optimal search based refactoring at the design level
Burtscher et al. Perfexpert: An easy-to-use performance diagnosis tool for hpc applications
CN110399182B (zh) 一种cuda线程放置优化方法
CN103116540A (zh) 基于全局超级块支配图的动态符号执行方法及其装置
Tulsian et al. MUX: algorithm selection for software model checkers
CN110109811B (zh) 一种面向gpu计算性能问题的溯源方法
CN108363660B (zh) 一种测试程序生成方法和装置
US11768754B2 (en) Parallel program scalability bottleneck detection method and computing device
Jindal et al. Microlearner: A fine-grained learning optimizer for big data workloads at microsoft
Zhao et al. A large-scale empirical study of real-life performance issues in open source projects
CN106095669B (zh) 基于调度序列约简的并行程序测试方法
Lu et al. A trace-based statistical worst-case execution time analysis of component-based real-time embedded systems
Geimer et al. Recent developments in the scalasca toolset
Vianna et al. Modeling the performance of the Hadoop online prototype
Zhang et al. A performance prediction scheme for computation-intensive applications on cloud
Zhang et al. Efficient ml-based performance estimation approach across different microarchitectures for risc-v processors
Garbatov et al. Data access pattern analysis and prediction for object-oriented applications
CN110069347A (zh) 一种基于过程重要度的线程划分方法
CN111522644B (zh) 基于历史运行数据预测并行程序运行时间的方法
Weng et al. Lauca: A Workload Duplicator for Benchmarking Transactional Database Performance
CN111026776B (zh) 关系型数据库中的查询方法及装置
Van Ertvelde et al. Workload reduction and generation techniques
CN110928705B (zh) 面向高性能计算应用的通信特征分析方法及系统
Uddin et al. Analytical-based high-level simulation of the microthreaded many-core architectures
Ma et al. Parallel exact inference on multicore using mapreduce

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