CN106651739A - Gpu编程模型中核函数最优尺寸求解方法及装置 - Google Patents

Gpu编程模型中核函数最优尺寸求解方法及装置 Download PDF

Info

Publication number
CN106651739A
CN106651739A CN201610827221.5A CN201610827221A CN106651739A CN 106651739 A CN106651739 A CN 106651739A CN 201610827221 A CN201610827221 A CN 201610827221A CN 106651739 A CN106651739 A CN 106651739A
Authority
CN
China
Prior art keywords
thread
model
kernel function
time
parallelism
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
CN201610827221.5A
Other languages
English (en)
Other versions
CN106651739B (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.)
China Agricultural University
Original Assignee
China Agricultural 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 China Agricultural University filed Critical China Agricultural University
Priority to CN201610827221.5A priority Critical patent/CN106651739B/zh
Publication of CN106651739A publication Critical patent/CN106651739A/zh
Application granted granted Critical
Publication of CN106651739B publication Critical patent/CN106651739B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种GPU编程模型中核函数最优尺寸求解方法及装置,通过构建时间开销模型能够满足并行应用程序的基本要求,保证对时间开销预测的有效性,且预测结果更为真实。通过分析时间开销模型中的参数,增设约束条件,构造尺寸优化模型,使对kernel函数尺寸的分析更全面合理,提高模型的精度和运行效率。采用分类讨论的思想,对并行程序在GPU上执行时可能出现的三种情况进行详细分析,对每种情况下kernel函数的尺寸进行求解,得到简单易操作的公式来指导用户进行尺寸的快速选择。可在不运行并行应用程序的情况下,通过静态分析得到kernel函数的最优尺寸,大大的提高工作与生产效率。

Description

GPU编程模型中核函数最优尺寸求解方法及装置
技术领域
本发明涉及并行与分布式计算处理领域,尤其涉及一种GPU编程模型中核函数最优尺寸求解方法及装置。
背景技术
自本世纪初以来,图形处理单元(GPU)逐渐开始从特定的图形加速器向通用计算设备进行演变。近年来,GPU被设计为对计算机图像的高效处理,其计算能力也有了极大提高,且与CPU相比有着更高的计算能力。因此,越来越多的用户开始利用高性能的GPU来解决复杂的应用问题。
另外,时间开销是并行算法最基本的度量方法,其他的评价准则都应以缩短时间开销为目的。并行计算的时间开销方程的研究主要是结合并行机结构的特点和通信机制,揭示影响时间开销的关键因素,将时间开销精确到若干参数,用来辅助用户改进程序或算法,并正确估计算法的时间开销和性能,以获得最优性能。
为最大限度发挥GPU的高性能计算能力,一般有三种优化方案:(1)全局存储优化;(2)共享存储优化;(3)工作流划分优化。其中,前两种优化方案可被归为GPU的存储访问优化,目前已有很多该方面的相关研究。对GPU存储访问的优化可以极大提升CPU与GPU之间的通信效率,但在存储访问优化之后,对kernel函数尺寸的工作流划分优化方法直接影响着GPU的性能。同时,对一个确定的并行程序来说,其线程总数是确定的,因此对kernel函数最优尺寸的选择是很有必要的。其中,kernel函数尺寸是由网格尺寸和线程块尺寸两部分组成的,即kernel函数中的两个尺寸参数。
目前用户通常根据他们的经验和多次尝试来决定kernel函数中网格尺寸和线程块尺寸大小,而并没有一种指导性的方法,这使用户在移植并行程序时,对尺寸划分的主观性和随意性较大,在一定程度上使GPU的高性能无法得到最大发挥。
发明内容
本发明提供一种GPU编程模型中核函数最优尺寸求解方法及装置,用于解决现有技术中核函数尺寸的不合理划分给GPU的高性能带来影响的问题。
第一方面,本发明提供一种GPU编程模型中核函数最优尺寸求解方法,包括:
获取GPU硬件结构的结构参数;
获取并行应用程序中预设的分析参数;
根据所述结构参数和所述分析参数建立时间开销模型;
根据所述时间开销模型建立尺寸优化模型;
对所述尺寸优化模型进行求解获得核函数最优尺寸并输出。
优选地,根据所述结构参数和所述分析参数建立时间开销模型,包括:
根据所述所述结构参数和所述分析参数获得线程簇访存并行度和线程簇计算并行度;
根据所述结构参数、分析参数、线程簇访存并行度和线程簇计算并行度获得线性块在核函数上的分配时间模型和执行时间模型;
将所述分配时间模型和所述执行时间模型进行整合获得时间开销模型。
优选地,根据所述所述结构参数和所述分析参数获得线程簇访存并行度和线程簇计算并行度,包括:
线程簇访存并行度的计算包括:
WMPDM=min(WMPDMax,WMPDReg,WMPDSmem) (3)
其中,WMPD为线程簇访存并行度,WMPDReg为在流多处理器中寄存器数量的限制下可同时运行的线程簇数量,WMPDSmem为在流多处理器中共享内存大小的限制下可同时运行的线程簇数量,WMPDM为在硬件限制下一个流多处理器上可同时运行的最大线程簇数量,WMDPMax为在硬件限制下一个流多处理器上可同时运行的线程簇数量;
NReg_per_SM为每个流多处理器中寄存器的数量,NReg_per_Thread为每个线程所需寄存器的数量,warpSize为每个线程簇中的线程数目,NSmem_per_SM为每个流多处理器中共享内存的大小,NSmem_per_Thread为每个线程所需共享内存的数量,NActive_Blocks_per_SM为每个流多处理器上活动线程块的数量,NMax_Active_Blocks_per_SM为每个流多处理器上最大活动线程块数量,dGrid为线程块的总数量,NSMs为GPU结构中流多处理器的数量,dBlock为每个线程块中线程的数量,NThreads为线程的总数量,dGrid.x为x维度上线程块的数量,dGrid.y为y维度上线程块的数量;
线程簇计算并行度的计算包括:
TM=Mem_Cycle×Mem_insts (8)
TC=Comp_Cycle×Comp_insts (9)
其中,WCPD为线程簇计算并行度,TM为每个线程簇的访存时间,TC为每个warp的计算时间。
优选地,根据所述结构参数、分析参数、线程簇访存并行度和线程簇计算并行度获得线性块在核函数上的分配时间模型和执行时间模型,包括:
分配时间模型的建立包括:设置一个参数Tallo,其为每个线程块被分配到流多处理器上的时间,则根据线程块的总数量和每个线程块被分配到流多处理器上的时间建立分配时间模型:
Tinit=dGrid×Tallo (10)
执行时间模型的建立包括:
若Tc<TM,则执行时间模型为:
若Tc≥TM或N不大于WMPD,则执行时间模型为:
TGPU=N×TC+TM (13)
其中,N为每个流多处理器上分配到的线程块个数,
Tinit为线性块在核函数上的分配时间,TGPU为线性块在核函数上的执行时间。
优选地,将所述分配时间模型和所述执行时间模型进行整合获得时间开销模型,包括:
所述时间开销模型为:
优选地,根据所述时间开销模型建立尺寸优化模型,包括:
设置一约束条件,使所述约束条件与所述时间开销模型结合转化为核函数的尺寸优化模型;
所述约束条件为:
优选地,对所述尺寸优化模型进行求解获得核函数最优尺寸并输出,包括:
若N<WMDP,根据库恩-卡特条件将尺寸优化模型进行整理得到:
dGrid.x×dGrid.y=K (20)
根据公式(20)得到核函数最优尺寸;
若N>WMDP,根据库恩-卡特条件将尺寸优化模型整理得到:
根据公式(23)得到核函数最优尺寸;
若N=WMDP,所述尺寸优化模型是一个分段函数,则分段函数的转折点为:
dGrid.x×dGrid.y=NSMs×NMax_Active_Blocks_per_SM (24)
根据公式(24)得到核函数最优尺寸。
优选地,所述结构参数包括:每个线程簇中的线程数目、GPU结构中流多处理器的数量、每个流多处理器中寄存器的数量、每个流多处理器中共享内存的大小、每个流多处理器上最大活动线程块数量、执行每条访存语句的时间和执行每条计算语句的时间。
优选地,所述分析参数包括:每个线程所需寄存器的数量、每个线程所需共享内存的数量、线程的总数量、x维度上线程块的数量、y维度上线程块的数量、每个流多处理器上活动线程块的数量、每个线程中访存指令数和每个线程中计算指令数。
第二方面,本发明提供一种GPU编程模型中核函数最优尺寸求解装置,包括:
第一获取模块,用于获取GPU硬件结构的结构参数;
第二获取模块,用于获取并行应用程序中预设的分析参数;
第一建立模块,用于根据所述结构参数和所述分析参数建立时间开销模型;
第二建立模块,用于根据所述时间开销模型建立尺寸优化模型;
计算输出模块,用于对所述尺寸优化模型进行求解获得核函数最优尺寸并输出。
由上述技术方案可知,本发明提供的GPU编程模型中核函数最优尺寸求解方法及装置,通过构建时间开销模型能够满足并行应用程序的基本要求,保证对时间开销预测的有效性,且预测结果更为真实。通过分析时间开销模型中的参数,增设约束条件,构造尺寸优化模型,使对kernel函数尺寸的分析更全面合理,提高模型的精度和运行效率。采用分类讨论的思想,对并行程序在GPU上执行时可能出现的三种情况进行详细分析,对每种情况下kernel函数的尺寸进行求解,得到简单易操作的公式来指导用户进行尺寸的快速选择。可在不运行并行应用程序的情况下,通过静态分析得到kernel函数的最优尺寸,大大的提高工作与生产效率。
附图说明
图1为本发明实施例1提供的GPU编程模型中核函数最优尺寸求解方法的流程示意图;
图2为本发明实施例所述方法的整体框架流程图;
图3为本发明实施例WCPD大于WMPD时的执行时间示意图;
图4为本发明实施例WCPD小于WMPD时的执行时间示意图;
图5为本发明实施例计算时间大于访存时间时的执行时间示意图;
图6为本发明实施例warp数量不足时的执行时间示意图;
图7为本发明实施例2提供的GPU编程模型中核函数最优尺寸求解装置的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1示出了本发明一种GPU编程模型中核函数最优尺寸求解方法,包括:
S11、获取GPU硬件结构的结构参数;
S12、获取并行应用程序中预设的分析参数;
S13、根据所述结构参数和所述分析参数建立时间开销模型;
S14、根据所述时间开销模型建立尺寸优化模型;
S15、对所述尺寸优化模型进行求解获得核函数最优尺寸并输出。
下面对上述方法的各个步骤进行解释说明:
如图2为本发明实施例所述方法的整体框架流程图,从图2中可知,需针对GPU硬件结构和并行应用程序进行分析以获取到所需的结构参数和分析参数。通过获得的参数得到线程簇(warp)访存并行度和线程簇(warp)计算并行度。根据线程簇(warp)访存并行度和线程簇(warp)计算并行度对线程块的分配时间和执行时间进行分析,以建立时间开销模型。对时间开销模型增加约束条件形成尺寸优化模型,对尺寸优化模型进行求解得到核函数最优尺寸并输出,使系统按照最优尺寸进行设置,达到最大发挥GDP高性能的目的。
如下表所示为结构参数和分析参数的获取列表:
其中,SM为流多处理器,warp为线程簇,GPU为图像处理器。
步骤S13:根据所述结构参数和所述分析参数建立时间开销模型,包括:
S131、根据所述所述结构参数和所述分析参数获得线程簇访存并行度和线程簇计算并行度;
S132、根据所述结构参数、分析参数、线程簇访存并行度和线程簇计算并行度获得线性块在核函数上的分配时间模型和执行时间模型;
S133、将所述分配时间模型和所述执行时间模型进行整合获得时间开销模型。
下面对各个步骤进行解释说明:
线程簇访存并行度采用以下计算方式进行处理:
WMPDM=min(WMPDMax,WMPDReg,WMPDSmem) (3)
其中,WMPD为线程簇访存并行度,WMPDReg为在流多处理器中寄存器数量的限制下可同时运行的线程簇数量,WMPDSmem为在流多处理器中共享内存大小的限制下可同时运行的线程簇数量,WMPDM为在硬件限制下一个流多处理器上可同时运行的最大线程簇数量,WMDPMax为在硬件限制下一个流多处理器上可同时运行的线程簇数量;
NReg_per_SM为每个流多处理器中寄存器的数量,NReg_per_Thread为每个线程所需寄存器的数量,warpSize为每个线程簇中的线程数目,NSmem_per_SM为每个流多处理器中共享内存的大小,NSmem_per_Thread为每个线程所需共享内存的数量,NActive_Blocks_per_SM为每个流多处理器上活动线程块的数量,NMax_Active_Blocks_per_SM为每个流多处理器上最大活动线程块数量,dGrid为线程块的总数量,NSMs为GPU结构中流多处理器的数量,dBlock为每个线程块中线程的数量,NThreads为线程的总数量,dGrid.x为x维度上线程块的数量,dGrid.y为y维度上线程块的数量。
线程簇计算并行度采用以下计算公式进行处理:
TM=Mem_Cycle×Mem_insts (8)
TC=Comp_Cycle×Comp_insts (9)
其中,WCPD为线程簇计算并行度,TM为每个线程簇的访存时间,TC为每个warp的计算时间。
需要说明的是,分配时间计算部分由于轮询机制的存在,需设置一个参数Tallo,来表示每个线程块被分配到SM上的时间,这样可由公式(10)计算得到并行程序中线程块的分配时间。
Tinit=dGrid×Tallo (10)
执行时间计算部分则对可能出现的三种情况进行讨论:
(1)Tc<TM
对于图3和图4中可能出现的两种情况,并行程序在kernel函数(核函数)上的执行时间都可由公式(12)计算得到:
(2)Tc≥TM
图5展示了一种极端的情况,此时一个warp的计算时间要大于其访存时间,并行应用程序无法利用warp的访存并行度,其在kernel函数上的执行时间都可由公式(13)计算得到。
TGPU=N×TC+TM (13)
(3)N不大于WMPD
前两种情况都描述了当流多处理器上有足够多warp的情况。但如果一个应用程序没有足够多的warp,那么就无法充分利用GPU的并行度,图6就展示了这样一种情况,此时的执行时间同样可由公式(13)计算得到。
其中,N为每个流多处理器上分配到的线程块个数,
Tinit为线性块在核函数上的分配时间,TGPU为线性块在核函数上的执行时间。
最后对以上公式(10)(12)(13)进行归纳整理,可得到最终的基于GPU编程模型中kernel函数的时间开销模型,如公式(14)所示:
步骤S14:根据所述时间开销模型建立尺寸优化模型。
设置一约束条件,使所述约束条件与所述时间开销模型结合转化为核函数的尺寸优化模型;
所述约束条件为:
第一个约束条件表示kernel函数的线程块大小要在GPU架构的限制内,不能小于其最低限制,也不能超过其最高限制;第二个约束条件表示线程块的数目要尽可能的比GPU上流多处理器个数多,这样才能使GPU得到充分的利用;后两个约束条件表示线程块的大小应尽量是warp大小的倍数,以避免并行度的浪费。
步骤S15:对所述尺寸优化模型进行求解获得核函数最优尺寸并输出。
根据N和WMPD之间可能存在的三种关系:大于、等于和小于,进行分类讨论,来求解kernel函数最优尺寸,具体分析如下:
(1)N<WMDP。
根据库恩-卡特条件将尺寸优化模型进行整理得到:
其中,
Nouter_loop为外层循环的循环上限,Ninner_loop为内层循环的循环上限。
然后,可计算得到梯度函数,如公式(18)所示:
接着,可得到如公式(19)的四元一次方程组:
其中,γ1,γ2为系数。
根据上述公式(16)(17)(18)(19)可以得到这种情况下的最优解,如公式(20)所示,利用该公式可直接得到kernel函数的最优尺寸。
dGrid.x×dGrid.y=K (20)
(2)N>WMDP
根据库恩-卡特条件将尺寸优化模型整理得到:
根据公式(21)(22)得到得到三个解,如公式(23)所示:
这种情况下,把dGrid.x×dGrid.y看作一个整体,此时函数图像为一个开口朝上的抛物线。最优解的选取取决于dGrid.x×dGrid.y的值。公式(23)中的(a)表示抛物线的极小值点,当该点在抛物线取值范围中的时候,可用该公式来计算kernel函数的最优尺寸;公式(23)中的(b)表示抛物线取值的下边界,此时抛物线的极小值点在取值范围的左侧,抛物线的有效部分为单调递增函数,可用该公式来计算kernel函数的最优尺寸;公式(23)中的(c)表示抛物线取值的上边界,此时抛物线的极小值点在取值范围的右侧,抛物线的有效部分为单调递减函数,可用该公式来计算kernel函数的最优尺寸。
(3)N=WMDP
尺寸优化模型是一个分段函数,因为参数NActive_Blocks_per_SM的取值是不确定的,当其取值为公式(4)中的第二个值时,可用(1)中的方法来计算kernel函数的最优尺寸;而当其取值为公式(4)中的第一个值时,可用(2)中的方法来计算kernel函数的最优尺寸。公式(24)代表该分段函数的转折点:
dGrid.x×dGrid.y=NSMs×NMax_Active_Blocks_per_sM (24)
通过上述方法即可直接对不同情况下kernel函数的最优尺寸进行求解,方便用户的静态使用。
本发明实施例1所述的GPU编程模型中核函数最优尺寸求解方法,通过构建时间开销模型能够满足并行应用程序的基本要求,保证对时间开销预测的有效性,且预测结果更为真实。通过分析时间开销模型中的参数,增设约束条件,构造尺寸优化模型,使对kernel函数尺寸的分析更全面合理,提高模型的精度和运行效率。采用分类讨论的思想,对并行程序在GPU上执行时可能出现的三种情况进行详细分析,对每种情况下kernel函数的尺寸进行求解,得到简单易操作的公式来指导用户进行尺寸的快速选择。可在不运行并行应用程序的情况下,通过静态分析得到kernel函数的最优尺寸,大大的提高工作与生产效率。
图7示出了本发明实施例2提供一种GPU编程模型中核函数最优尺寸求解装置,包括第一获取模块21、第二获取模块22、第一建立模块23、第二建立模块24和计算输出模块25,其中:
第一获取模块,用于获取GPU硬件结构的结构参数;
第二获取模块,用于获取并行应用程序中预设的分析参数;
第一建立模块,用于根据所述结构参数和所述分析参数建立时间开销模型;
第二建立模块,用于根据所述时间开销模型建立尺寸优化模型;
计算输出模块,用于对所述尺寸优化模型进行求解获得核函数最优尺寸并输出。
在执行过程中,第一获取模块获取GPU硬件结构的结构参数,并将结构参数发送给第一建立模块。第二获取模块获取并行应用程序中预设的分析参数,并将分析参数发送给第一建立模块。第一建立模块根据所述结构参数和所述分析参数建立时间开销模型。第二建立模块根据所述时间开销模型建立尺寸优化模型。计算输出模块对所述尺寸优化模型进行求解获得核函数最优尺寸并输出。
在本发明实施例2中一种GPU编程模型中核函数最优尺寸求解装置的具体工作过程,可以参考上述的一种GPU编程模型中核函数最优尺寸求解方法所描述的内容,在此不再一一赘述。
需要说明的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
本发明实施例2所述的GPU编程模型中核函数最优尺寸求解装置,通过构建时间开销模型能够满足并行应用程序的基本要求,保证对时间开销预测的有效性,且预测结果更为真实。通过分析时间开销模型中的参数,增设约束条件,构造尺寸优化模型,使对kernel函数尺寸的分析更全面合理,提高模型的精度和运行效率。采用分类讨论的思想,对并行程序在GPU上执行时可能出现的三种情况进行详细分析,对每种情况下kernel函数的尺寸进行求解,得到简单易操作的公式来指导用户进行尺寸的快速选择。可在不运行并行应用程序的情况下,通过静态分析得到kernel函数的最优尺寸,大大的提高工作与生产效率。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本领域普通技术人员可以理解:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

Claims (10)

1.一种GPU编程模型中核函数最优尺寸求解方法,其特征在于,包括:
获取GPU硬件结构的结构参数;
获取并行应用程序中预设的分析参数;
根据所述结构参数和所述分析参数建立时间开销模型;
根据所述时间开销模型建立尺寸优化模型;
对所述尺寸优化模型进行求解获得核函数最优尺寸并输出。
2.根据权利要求1所述的方法,其特征在于,根据所述结构参数和所述分析参数建立时间开销模型,包括:
根据所述所述结构参数和所述分析参数获得线程簇访存并行度和线程簇计算并行度;
根据所述结构参数、分析参数、线程簇访存并行度和线程簇计算并行度获得线性块在核函数上的分配时间模型和执行时间模型;
将所述分配时间模型和所述执行时间模型进行整合获得时间开销模型。
3.根据权利要求2所述的方法,其特征在于,根据所述所述结构参数和所述分析参数获得线程簇访存并行度和线程簇计算并行度,包括:
线程簇访存并行度的计算包括:
WMPD Re g = N Re g _ p e r _ S M N Re g _ p e r _ T h r e a d × w a r p S i z e - - - ( 1 )
WMPDM=min(WMPDMax,WMPDReg,WMPDSmem) (3)
N A c t i v e _ B l o c k s _ p e r _ S M = min ( N M a x _ A c t i v e _ B l o c k s _ p e r _ S M , d G r i d N S M s ) - - - ( 4 )
d B l o c k = N T h r e a d s d G r i d . x × d G r i d . y - - - ( 5 )
W M P D = N A c t i v e _ B l o c k s _ p e r _ S M × d B l o c k w a r p S i z e ∈ ( 0 , WMPD M ) - - - ( 6 )
其中,WMPD为线程簇访存并行度,WMPDReg为在流多处理器中寄存器数量的限制下可同时运行的线程簇数量,WMPDSmem为在流多处理器中共享内存大小的限制下可同时运行的线程簇数量,WMPDM为在硬件限制下一个流多处理器上可同时运行的最大线程簇数量,WMDPMax为在硬件限制下一个流多处理器上可同时运行的线程簇数量;
NReg_per_SM为每个流多处理器中寄存器的数量,NReg_per_Thread为每个线程所需寄存器的数量,warpSize为每个线程簇中的线程数目,NSmem_per_SM为每个流多处理器中共享内存的大小,NSmem_per_Thread为每个线程所需共享内存的数量,NActive_Blocks_per_SM为每个流多处理器上活动线程块的数量,NMax_Active_Blocks_per_SM为每个流多处理器上最大活动线程块数量,dGrid为线程块的总数量,NSMs为GPU结构中流多处理器的数量,dBlock为每个线程块中线程的数量,NThreads为线程的总数量,dGrid.x为x维度上线程块的数量,dGrid.y为y维度上线程块的数量;
线程簇计算并行度的计算包括:
W C P D = T M T C + 1 - - - ( 7 )
TM=Mem_Cycle×Mem_insts (8)
TC=Comp_Cycle×Comp_insts (9)
其中,WCPD为线程簇计算并行度,TM为每个线程簇的访存时间,TC为每个warp的计算时间。
4.根据权利要求3所述的方法,其特征在于,根据所述结构参数、分析参数、线程簇访存并行度和线程簇计算并行度获得线性块在核函数上的分配时间模型和执行时间模型,包括:
分配时间模型的建立包括:设置一个参数Tallo,其为每个线程块被分配到流多处理器上的时间,则根据线程块的总数量和每个线程块被分配到流多处理器上的时间建立分配时间模型:
Tinit=dGrid×Tallo (10)
执行时间模型的建立包括:
若Tc<TM,则执行时间模型为:
T G P U = W M P D × T C + N W M P D × T M - - - ( 12 )
若Tc≥TM或N不大于WMPD,则执行时间模型为:
TGPU=N×TC+TM (13)
其中,N为每个流多处理器上分配到的线程块个数,
N = N T h r e a d s N S M s × w a r p S i z e - - - ( 11 )
Tinit为线性块在核函数上的分配时间,TGPU为线性块在核函数上的执行时间。
5.根据权利要求4所述的方法,其特征在于,将所述分配时间模型和所述执行时间模型进行整合获得时间开销模型,包括:
所述时间开销模型为:
Cost G P U = d G r i d . x &times; d G r i d . y &times; T a l l o + N &times; T C + T M ( N < W M P D ) d G r i d . x &times; d G r i d . y &times; T a l l o + W M P D &times; T C + N W M P D &times; T M ( N &GreaterEqual; W M P D ) - - - ( 14 ) .
6.根据权利要求5所述的方法,其特征在于,根据所述时间开销模型建立尺寸优化模型,包括:
设置一约束条件,使所述约束条件与所述时间开销模型结合转化为核函数的尺寸优化模型;
所述约束条件为:
7.根据权利要求6所述的方法,其特征在于,对所述尺寸优化模型进行求解获得核函数最优尺寸并输出,包括:
若N<WMDP,根据库恩-卡特条件将尺寸优化模型进行整理得到:
min f ( d G r i d . x , d G r i d . y ) = d G r i d . x &times; d G r i d . y &times; T a l l o + N o u t e r _ l o o p &times; N i n n e r _ l o o p N S M s &times; w a r p S i z e &times; T C + T M s . t . g 1 ( d G r i d . x , d G r i d . y ) = d G r i d . x &times; d G r i d . y - K &GreaterEqual; 0 g 2 ( d G r i d . x , d G r i d . y ) = - d G r i d . x &times; d G r i d . y + N o u t e r _ l o o p &times; N i n n e r _ l o o p dBlock M i n &GreaterEqual; 0 - - - ( 16 )
K = m a x ( N o u t e r _ l o o p &times; N i n n e r _ l o o p dBlock M a x , N S M s ) - - - ( 17 )
&dtri; f ( x * ) = T a l l o &times; d G r i d . y T a l l o &times; d G r i d . x &dtri; g 1 ( x * ) = d G r i d . y d G r i d . x &dtri; g 2 ( x * ) = - d G r i d . y - d G r i d . x - - - ( 18 )
T a l l o &times; d G r i d . y - &gamma; 1 &times; d G r i d . y + &gamma; 2 &times; d G r i d . y = 0 T a l l o &times; d G r i d . x - &gamma; 1 &times; d G r i d . x + &gamma; 1 &times; d G r i d . x = 0 &gamma; 1 &times; ( d G r i d . x &times; d G r i d . y - K ) = 0 &gamma; 2 &times; ( - d G r i d . x &times; d G r i d . y + N o u t e r _ l o o p &times; N i n n e r _ l o o p dBlock M i n ) = 0 &gamma; 1 , &gamma; 1 &GreaterEqual; 0 - - - ( 19 )
dGrid.x×dGrid.y=K (20)
根据公式(20)得到核函数最优尺寸;
若N>WMDP,根据库恩-卡特条件将尺寸优化模型整理得到:
min f ( d G r i d . x , d G r i d . y ) = d G r i d . x &times; d G r i d . y &times; T a l l o + W M P D &times; T C + N W M P D &times; T M
s . t . g 1 ( d G r i d . x , d G r i d . y ) = d G r i d . x &times; d G r i d . y - L &GreaterEqual; 0 g 2 ( d G r i d . x , d G r i d . y ) = - d G r i d . x &times; d G r i d . y + N o u t e r _ l o o p &times; N i n n e r _ l o o p dBlock M i n &GreaterEqual; 0 - - - ( 21 )
L = m a x N outer l o o p &times; N inner l o o p dBlock M a x , N M a x _ A c t i v e _ B l o c k s _ p e r _ S M &times; N o u t e r _ l o o p &times; N i n n e r _ l o o p w a r p S i z e &times; WMPD M , N S M s - - - ( 22 )
d G r i d . x &times; d G r i d . y = N M a x _ A c t i v e _ B l o c k s _ p e r _ S M &times; N T h r e a d s &times; T C w a r p S i z e ( T M N M a x _ A c t i v e _ B l o c k s _ p e r _ S M &times; N S M s + T a l l o ) ( a ) d G r i d . x &times; d G r i d . y = L ( b ) d G r i d . x &times; d G r i d . y = N T h r e a d s dBlock M i n ( c ) - - - ( 23 )
根据公式(23)得到核函数最优尺寸;
若N=WMDP,所述尺寸优化模型是一个分段函数,则分段函数的转折点为:
dGrid.x×dGrid.y=NSMs×NMax_Active_Blocks_per_SM (24)
根据公式(24)得到核函数最优尺寸。
8.根据权利要求1所述的方法,其特征在于,所述结构参数包括:每个线程簇中的线程数目、GPU结构中流多处理器的数量、每个流多处理器中寄存器的数量、每个流多处理器中共享内存的大小、每个流多处理器上最大活动线程块数量、执行每条访存语句的时间和执行每条计算语句的时间。
9.根据权利要求1所述的方法,其特征在于,所述分析参数包括:每个线程所需寄存器的数量、每个线程所需共享内存的数量、线程的总数量、x维度上线程块的数量、y维度上线程块的数量、每个流多处理器上活动线程块的数量、每个线程中访存指令数和每个线程中计算指令数。
10.一种GPU编程模型中核函数最优尺寸求解装置,其特征在于,包括:
第一获取模块,用于获取GPU硬件结构的结构参数;
第二获取模块,用于获取并行应用程序中预设的分析参数;
第一建立模块,用于根据所述结构参数和所述分析参数建立时间开销模型;
第二建立模块,用于根据所述时间开销模型建立尺寸优化模型;
计算输出模块,用于对所述尺寸优化模型进行求解获得核函数最优尺寸并输出。
CN201610827221.5A 2016-09-14 2016-09-14 Gpu编程模型中核函数最优尺寸求解方法及装置 Expired - Fee Related CN106651739B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610827221.5A CN106651739B (zh) 2016-09-14 2016-09-14 Gpu编程模型中核函数最优尺寸求解方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610827221.5A CN106651739B (zh) 2016-09-14 2016-09-14 Gpu编程模型中核函数最优尺寸求解方法及装置

Publications (2)

Publication Number Publication Date
CN106651739A true CN106651739A (zh) 2017-05-10
CN106651739B CN106651739B (zh) 2019-08-16

Family

ID=58852183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610827221.5A Expired - Fee Related CN106651739B (zh) 2016-09-14 2016-09-14 Gpu编程模型中核函数最优尺寸求解方法及装置

Country Status (1)

Country Link
CN (1) CN106651739B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012142186A2 (en) * 2011-04-11 2012-10-18 Child Timothy Database acceleration using gpu and multicore cpu systems and methods
CN103176170A (zh) * 2013-02-06 2013-06-26 中国科学院电子学研究所 一种基于gpu并行计算的sar回波模拟方法
CN105183562A (zh) * 2015-09-09 2015-12-23 合肥芯碁微电子装备有限公司 一种基于cuda技术对栅格化数据进行抽阶的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012142186A2 (en) * 2011-04-11 2012-10-18 Child Timothy Database acceleration using gpu and multicore cpu systems and methods
CN103176170A (zh) * 2013-02-06 2013-06-26 中国科学院电子学研究所 一种基于gpu并行计算的sar回波模拟方法
CN105183562A (zh) * 2015-09-09 2015-12-23 合肥芯碁微电子装备有限公司 一种基于cuda技术对栅格化数据进行抽阶的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JUNJIE LAI: "Throughput Oriented Analytical Models for Performance Estimation on Programmable Accelerators", 《HARDWARE ARCHITECTURE [CS.AR]》 *

Also Published As

Publication number Publication date
CN106651739B (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN109800863B (zh) 一种基于模糊理论和神经网络的测井相识别方法
Wang et al. Accelerating pathology image data cross-comparison on cpu-gpu hybrid systems
Hou et al. Auto-tuning strategies for parallelizing sparse matrix-vector (spmv) multiplication on multi-and many-core processors
Baker et al. A new ensemble-based consistency test for the Community Earth System Model (pyCECT v1. 0)
CN107729555B (zh) 一种海量大数据分布式预测方法及系统
Martins et al. Vulnerability modellers toolkit, an open-source platform for vulnerability analysis
CN105808309A (zh) 一种基于申威平台的基础线性代数库blas三级函数gemm的高性能实现方法
CN111525615B (zh) 一种基于保证率的山地光伏电站出力特性评估方法及系统
CN106502771A (zh) 基于kernel函数的时间开销模型构建方法及系统
CN113762486A (zh) 换流阀故障诊断模型的构建方法、装置和计算机设备
CN110399182B (zh) 一种cuda线程放置优化方法
CN108446841A (zh) 一种利用灰色关联确定事故因素层次结构的系统方法
Feng et al. Robust parallel preconditioned power grid simulation on GPU with adaptive runtime performance modeling and optimization
CN105787265A (zh) 基于综合集成赋权法的原子自旋陀螺随机误差建模方法
CN106651739A (zh) Gpu编程模型中核函数最优尺寸求解方法及装置
CN117150232A (zh) 一种大模型非时序训练数据质量评价方法
Rosa et al. Adaptation of multidimensional positive definite advection transport algorithm to modern high-performance computing platforms, Int
CN114139802B (zh) 一种基于流域水情变化趋势分析模型的实时优化调度方法
CN104156268B (zh) 一种GPU上MapReduce的负载分配和线程结构优化方法
CN105912775A (zh) 桥梁动态称重系统车辆轴重数据的多模态建模方法
Khaleghzadeh Novel Data-Partitioning Algorithms for Performance and Energy Optimization of Data-Parallel Applications on Modern Heterogeneous HPC Platforms
Peredo et al. Tuning and hybrid parallelization of a genetic-based multi-point statistics simulation code
Van Rees et al. High performance CPU/GPU multiresolution Poisson solver
CN107066706B (zh) Gpu ffma指令在双发射模式下的通量测试方法
Alberto et al. Linear Performance-Breakdown Model: A Framework for GPU kernel programs performance analysis

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190816

Termination date: 20200914

CF01 Termination of patent right due to non-payment of annual fee