[发明专利]一种基于GPU片上的数据处理方法及设备有效
申请号: | 201710206474.5 | 申请日: | 2017-03-31 |
公开(公告)号: | CN106991007B | 公开(公告)日: | 2019-09-03 |
发明(设计)人: | 计晓斐;李建波;刘亮 | 申请(专利权)人: | 青岛大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 青岛清泰联信知识产权代理有限公司 37256 | 代理人: | 高洋 |
地址: | 266071 *** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu 数据处理 方法 | ||
本申请涉及一种基于GPU片上的数据处理方法,包括以下步骤:分析GPU程序代码,统计当前GPU片上共享存储空间的所有数组变量;将统计得到的所有数组变量按访问次数排序;选择访问次数最高的数组变量从共享存储空间迁移到寄存器或L1缓存;若迁移后的系统性能优于迁移前的性能,则从共享存储空间中迁移出更多的数组变量,否则终止。该方法可以对GPU程序的性能进行一定的提升,尤其适用于大数据领域。
技术领域
本发明是关于计算机领域,具体涉及数据分析和并行计算领域,尤其涉及一种基于GPU片上的数据处理方法。
背景技术
GPU早期用于图形处理,之后逐渐用于一般的计算任务,利用GPU的众核特性进行并行计算,加速任务处理。虽然GPU的每个性能在计算能力上弱于CPU 的性能,但其内核数量远多于CPU内核。实验表明,对于一般可并行的计算任务而言,GPU的性能可达到CPU的数十倍。由于GPU结构的特殊性,一般用于对可高度并行的任务进行加速,而对于其他任务的加速效果可能尚不足以弥补 CPU与GPU之间转换所消耗的代价。通常情况下,在多数实际系统部署中,任务处理以CPU为主,其中可高度并行的部分使用GPU处理,提高任务处理速度。
由于GPU的计算吞吐率的增长速度远大于其片下存储带宽的增长,因此要充分合理的利用片上存储才能有效的利用GPU的计算资源。不同GPU片上存储的容量增长速度不同,如寄存器文件的容量增长速度比共享资源的容量增长速度快很多,因此在一个GPU上的最优化执行代码并不一定适用于其他GPU。现有的GPU程序性能优化方法主要通过修改GPU程序代码,受限于应用程序类别和GPU设备参数,该优化方法的通用性和可移植性较差。
对于应用开发者而言,手动调节片上存储的问题主要表现在:一是GPU的三类片上存储均对性能有所影响,但对于某个应用中指定的数据元素而言,很难确定合适的片上存储资源的分配情况;二是不同时期GPU之间资源的发展是非线性的,因此不同GPU的最优化片上资源使用情况也不同。
发明内容
本发明提出一种GPU片上的数据处理方法,对给定的GPU程序自动进行片上存储空间的优化,从而提高GPU程序的处理性能。
为了达到上述目的,本发明采用的技术方案为:
一种基于GPU片上的数据处理方法,包括以下步骤:分析GPU程序代码,统计当前GPU片上共享存储空间的所有数组变量;将统计得到的所有数组变量按访问次数排序;选择访问次数最高的数组变量从共享存储空间迁移到寄存器或L1缓存;若迁移后的系统性能优于迁移前的性能,则从共享存储空间中迁移出更多的数组变量,否则终止。
优选的,统计当前GPU片上共享存储空间的所有数组变量,包括采用变量统计流程(CollectArray)统计当前GPU程序中存储在片上共享存储空间的所有数组变量。
优选的,变量统计流程(CollectArray)包括:分析编程序代码;找出其中所有存储在片上共享存储空间内的数组变量,记为SMArray。
优选的,统计当前GPU片上共享存储空间的所有数组变量,包括采用参数统计流程(Collectlnfo)统计每个共享存储数组变量的相关参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛大学,未经青岛大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710206474.5/2.html,转载请声明来源钻瓜专利网。