一种GPU片上存储空间使用的优化方法技术

技术编号:16455787 阅读:63 留言:0更新日期:2017-10-25 19:53
本发明专利技术一种GPU片上存储空间使用的优化方法涉及数据分析、并行处理、GPU程序优化等应用领域,特别是一种针对GPU片上的多种存储空间(如寄存器、共享存储和L1缓存等)使用的优化方法。步骤1)统计当前GPU片上共享存储空间的所有数组变量;2)将统计得到的所有数组变量按访问次数排序,形成排序后的数组变量组;3)从排序后的数组变量组中选择访问次数最高的数组变量从共享存储空间迁移到寄存器或L1缓存;4)若当前数组变量迁移后的系统性能优于迁移前的性能,则继续进行步骤3)迁移下一个数组变量,直到排序后的数组变量组中的数组变量全部转移结束;若当前数组变量迁移后的系统性能比迁移前的性能更差,则终止迁移。

【技术实现步骤摘要】
一种GPU片上存储空间使用的优化方法
本专利技术一种GPU片上存储空间使用的优化方法涉及数据分析、并行处理、GPU程序优化等应用领域,特别是一种针对GPU片上的多种存储空间(如寄存器、共享存储和L1缓存等)使用的优化方法。
技术介绍
GPU早期用于图形处理,之后逐渐用于一般的计算任务,利用GPU的众核特性进行并行计算,加速任务处理。虽然GPU的每个性能在计算能力上弱于CPU的性能,但其内核数量远多于CPU内核。实验表明,对于一般可并行的计算任务而言,GPU的性能可达到CPU的数十倍。由于GPU结构的特殊性,一般用于对可高度并行的任务进行加速,而对于其他任务的加速效果可能尚不足以弥补CPU与GPU之间转换所消耗的代价。通常情况下,在多数实际系统部署中,任务处理以CPU为主,其中可高度并行的部分使用GPU处理,提高任务处理速度。GPU可以看做是一种两层的多核结构,每个GPU包含多个SM,每个SM(StreamingMultiprocessor)包含多个SP(StreamingProcessor)。GPU的片下存储包括组织内存(texturememory)、常量内存(constantmem本文档来自技高网...
一种GPU片上存储空间使用的优化方法

【技术保护点】
一种GPU片上存储空间使用的优化方法,其特征在于,包括如下步骤:1)统计当前GPU片上共享存储空间的所有数组变量,包括每个数组变量的访问次数、是否用于多线程通信、数组下表是否为常量等参数;2)将步骤1)中统计得到的所有数组变量按访问次数排序,形成排序后的数组变量组;3)从排序后的数组变量组中选择访问次数最高的数组变量从共享存储空间迁移到寄存器或L1缓存;4)若当前数组变量迁移后的系统性能优于迁移前的性能,则继续进行步骤3),迁移下一个数组变量,直到排序后的数组变量组中的数组变量全部转移结束;若当前数组变量迁移后的系统性能比迁移前的性能更差,则终止本次片上存储空间的优化过程,不再迁移其他数据变量...

【技术特征摘要】
1.一种GPU片上存储空间使用的优化方法,其特征在于,包括如下步骤:1)统计当前GPU片上共享存储空间的所有数组变量,包括每个数组变量的访问次数、是否用于多线程通信、数组下表是否为常量等参数;2)将步骤1)中统计得到的所有数组变量按访问次数排序,形成排序后的数组变量组;3)从排序后的数组变量组中选择访问次数最高的数组变量从共享存储空间迁移到寄存器或L1缓存;4)若当前数组变量迁移后的系统性能优于迁移前的性能,则继续进行步骤3),迁移下一个数组变量,直到排序后的数组变量组中的数组变量全部转移结束;若当前数组变量迁移后的系统性能比迁移前的性能更差,则终止本次片上存储空间的优化过程,不再迁移其他数据变量。2.根据权利要求1所述的一种GPU片上存储空间使用的优化方法,其特征在于,步骤1)具体的工作过程包括:1-1)采用CollectArrays程序模块统计当前GPU程序中存储在片上共享存储空间的所有数组变量;使用GPU程序编译工具对当前GPU程序进行编译,找出编译代码中所有存储在片上共享存储空间内的数组变量,记为SMArray;1-2)采用AccessCount程序模块,统计步骤1-1)得到的SMArray中每个数组变量的访问次数,对于某个数组变量arrayi而言,其访问次数记为arrayi.count;1-3)采用IsAccessedByThreads程序模块判断SMArray中每个数组变量是否被同时被多个线程访问,对于某个数组变量arrayi而言,该参数记为arrayi.threads,如果数组变量arrayi被多个线程访问则arrayi.threads=1,否则arrayi.threads=0;1-4)采用IsConstantIndex程序模块判断SMArray中每个数组变量的下标是否为常量,即该数组是否确定长度;对于某个数组变量arrayi而言,该参数记为arrayi.constant,如果数组变量arrayi的长度为常量则arrayi.constant=1,否则arrayi.constant=0;1-5)采用CollectFinish程序模块判断是否完成当前GPU程序中存储在片上共享存储空间的所有数组变量的参数是否收集完成,若完成所有收集工作则进入步骤2)中的排序程序模块SortArrays,否则继续遍历GPU程序收集参数信息。3.根据权利要求2所述的一种GPU片上存储空间使用的优化方法,其特征在于,为了提高系统的效率,CollectArrays、AccessCount、IsAccessedByThreads和IsConstantIndex程序模块同时执行,在一次遍历GPU程序的过程中完成SMArray及每个数组变量所有参数的统计,因为在GPU程序中变量需要先声明后才能使用,因此可以确定每个数组变量arrayi是否存储在共享存...

【专利技术属性】
技术研发人员:王欣然李鹏飞刘亮陈智也
申请(专利权)人:江苏海平面数据科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1