[发明专利]一种GPU片上存储空间使用的优化方法在审
申请号: | 201710438055.4 | 申请日: | 2017-06-07 |
公开(公告)号: | CN107291537A | 公开(公告)日: | 2017-10-24 |
发明(设计)人: | 王欣然;李鹏飞;刘亮;陈智也 | 申请(专利权)人: | 江苏海平面数据科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 南京品智知识产权代理事务所(普通合伙)32310 | 代理人: | 奚晓宁 |
地址: | 210019 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 存储空间 使用 优化 方法 | ||
技术领域
本发明一种GPU片上存储空间使用的优化方法涉及数据分析、并行处理、GPU程序优化等应用领域,特别是一种针对GPU片上的多种存储空间(如寄存器、共享存储和L1缓存等)使用的优化方法。
背景技术
GPU早期用于图形处理,之后逐渐用于一般的计算任务,利用GPU的众核特性进行并行计算,加速任务处理。虽然GPU的每个性能在计算能力上弱于CPU的性能,但其内核数量远多于CPU内核。实验表明,对于一般可并行的计算任务而言,GPU的性能可达到CPU的数十倍。由于GPU结构的特殊性,一般用于对可高度并行的任务进行加速,而对于其他任务的加速效果可能尚不足以弥补CPU与GPU之间转换所消耗的代价。通常情况下,在多数实际系统部署中,任务处理以CPU为主,其中可高度并行的部分使用GPU处理,提高任务处理速度。
GPU可以看做是一种两层的多核结构,每个GPU包含多个SM,每个SM(Streaming Multiprocessor)包含多个SP(Streaming Processor)。GPU的片下存储包括组织内存(texture memory)、常量内存(constant memory)、全局内存和局部内存。由于片下存储的访问延时较高且受带宽限制较大,每个SM内部引入了三种片上存储器:寄存器、共享存储和缓存。其中,寄存器的访问延时最小且吞吐率最高,容量比共享存储和L1缓存更大,寄存器是每个线程私有,过分使用线程的寄存器会导致寄存器溢出到局部存储。共享存储的吞吐率和容量均较小,可被线程块内的所有线程访问且延时较低。过多使用共享存储或寄存器会限制每个SM上运行的线程数量,但L1缓存不会造成该后果。但一个SM上运行太多的线程会引起对有限的L1缓存的竞争使用,造成缓存冲突从而影响性能。
由于GPU的计算吞吐率的增长速度远大于其片下存储带宽的增长,因此要充分合理的利用片上存储才能有效的利用GPU的计算资源。不同GPU片上存储的容量增长速度不同,如寄存器文件的容量增长速度比共享资源的容量增长速度快很多,因此在一个GPU上的最优化执行代码并不一定适用于其他GPU。对于应用开发者而言,手动调节片上存储的问题主要表现在:一是GPU的三类片上存储均对性能有所影响,但对于某个应用中指定的数据元素而言,很难确定合适的片上存储资源的分配情况;二是不同时期GPU之间资源的发展是非线性的,因此不同GPU的最优化片上资源使用情况也不同。
综上所述,现有的GPU程序性能优化方法主要通过修改GPU程序代码,受限于应用程序类别和GPU设备参数,该优化方法的通用性和可移植性较差。同时对GPU片上存储资源的利用不均衡,影响GPU程序处理性能的进一步提升。
目前,提高GPU程序处理性能的常用方法包括更新GPU设备,即使用性能更高的GPU进行程序处理;或者对程序本身进行优化,即应用开发者在程序编写过程中充分考虑GPU的多核和单指令等特征对应用程序进行手动的优化,从而保证在应用程序执行过程可以充分发挥GPU的计算能力提高程序处理性能。
但是GPU设备的快速发展使得频繁更新硬件设备的代价很高,而手动优化GPU程序的工作量很大且可移植性很低,在一个GPU设备上性能很高的优化方案可能在其他GPU设备上的性能不一定很高,因此不具备兼容性,没有普适性。每个类型的设备开发一套软件明显很浪费人力物力和时间,在信息化高速发展的时代,如何节约能源也成为了很大的问题。
发明内容
本发明的目的是针对上述不足之处提供一种GPU片上存储空间使用的优化方法,是一种能自动地对GPU上各种存储空间的使用进行优化的方法,可以与当前的更新设备和手动优化GPU程序的方法项结合,适用于各类GPU应用程序也可以在各种GPU设备上进行移植,对GPU程序的性能进行提升。解决因GPU片上共享存储空间过度使用而导致的性能低下问题,通过合理利用GPU的三类片上存储空间,将共享存储空间的部分数据迁移到寄存器和L1缓存,提高GPU的数据处理性能。
本发明是采取以下技术方案实现的:
一种GPU片上存储空间使用的优化方法,包括如下步骤:
1)统计当前GPU片上共享存储空间的所有数组变量,包括每个数组变量的访问次数、是否用于多线程通信、数组下表是否为常量等参数;
2)将步骤1)中统计得到的所有数组变量按访问次数排序,形成排序后的数组变量组;
3)从排序后的数组变量组中选择访问次数最高的数组变量从共享存储空间迁移到寄存器或L1缓存;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏海平面数据科技有限公司,未经江苏海平面数据科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710438055.4/2.html,转载请声明来源钻瓜专利网。