[发明专利]一种GPU片上存储空间使用的优化方法在审
申请号: | 201710438055.4 | 申请日: | 2017-06-07 |
公开(公告)号: | CN107291537A | 公开(公告)日: | 2017-10-24 |
发明(设计)人: | 王欣然;李鹏飞;刘亮;陈智也 | 申请(专利权)人: | 江苏海平面数据科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 南京品智知识产权代理事务所(普通合伙)32310 | 代理人: | 奚晓宁 |
地址: | 210019 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 存储空间 使用 优化 方法 | ||
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程序收集参数信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏海平面数据科技有限公司,未经江苏海平面数据科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710438055.4/1.html,转载请声明来源钻瓜专利网。