[发明专利]用于基于活跃分析的再具体化以减少寄存器不足并提高并行度的技术无效
申请号: | 201280013228.3 | 申请日: | 2012-11-06 |
公开(公告)号: | CN103460188A | 公开(公告)日: | 2013-12-18 |
发明(设计)人: | 孔祥云;王建中;林源;维诺德·格罗弗 | 申请(专利权)人: | 辉达公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京市磐华律师事务所 11336 | 代理人: | 董巍;谢栒 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 基于 活跃 分析 具体化 减少 寄存器 不足 提高 并行 技术 | ||
1.一种用于优化能够被编译用于在并行处理单元(PPU)上执行的程序代码的计算机实现的方法,所述方法包括:
针对所述程序代码生成控制流图;
识别所述控制流图中的、与所述控制流图中的其他块相比具有最大数目的入口活跃变量的第一块;
通过对与所述第一块相关联的入口活跃变量的不同子集实施收益分析来选择与所述第一块相关联的入口活跃变量的第一子集;以及
通过将所述入口活跃变量的第一子集再具体化到在所述控制流图中的所述第一块之后的所述控制流图中的第二块中来优化所述程序代码,其中所述经优化的程序代码将在所述PPU上执行。
2.根据权利要求1所述的计算机实现的方法,其中选择所述入口活跃变量的第一子集包括:
通过对所述不同子集中的每个实施所述收益分析来估计用于所述入口活跃变量的不同子集中的每个的收益值;以及
基于所述入口活跃变量的第一子集和与所述入口活跃变量的其他不同子集相关联的所述收益值相比具有最大收益值,来选择所述入口活跃变量的第一子集。
3.根据权利要求2所述的计算机实现的方法,其中用于入口活跃变量的给定子集的所述收益分析基于通过将所述入口活跃变量的给定子集再具体化到所述控制流图中的所述第二块中所减少的入口活跃变量的数目而生成。
4.根据权利要求3所述的计算机实现的方法,其中用于所述入口活跃变量的给定子集的所述收益分析进一步基于当将所述入口活跃变量的给定子集再具体化到所述第二块中时被拉入所述控制流图的所述第二块的指令的数目而生成。
5.根据权利要求4所述的计算机实现的方法,其中用于所述入口活跃变量的给定子集的所述收益分析进一步基于与将所述入口活跃变量的给定子集再具体化到所述控制流图的所述第二块中相关联的使用位置的数目而生成。
6.根据权利要求5所述的计算机实现的方法,其中用于所述入口活跃变量的给定子集的所述收益分析进一步基于以下成本的至少一个而生成:将所述入口活跃变量的给定子集从寄存器存储器转移到系统存储器的成本以及访问系统存储器内的所述入口活跃变量的给定子集的成本。
7.根据权利要求1所述的计算机实现的方法,进一步包括对所述程序代码实施数据流分析以生成所述控制流图。
8.根据权利要求1所述的计算机实现的方法,进一步包括迭代地优化所述程序代码并估计通过在所述PPU内执行所述经优化的程序代码所致使的寄存器不足的数量,直到所述通过在所述PPU内执行所述程序代码所致使的寄存器不足的数量落到阈值以下为止。
9.根据权利要求1所述的计算机实现的方法,进一步包括:
确定将所述入口活跃变量的第一集合再具体化使寄存器存储器中的寄存器的集合可用;以及
分配所述寄存器的集合给配置为在所述PPU上执行的一个或多个线程。
10.一种配置为优化能够被编译用于在并行处理单元(PPU)上执行的程序代码的计算设备,包括:
处理单元,配置为:
针对所述程序代码生成控制流图;
识别所述控制流图中的、与所述控制流图中的其他块相比具有最大数目的入口活跃变量的第一块;
通过对与所述第一块相关联的入口活跃变量的不同子集实施收益分析来选择与所述第一块相关联的入口活跃变量的第一子集;以及
通过将所述入口活跃变量的第一子集再具体化到在所述控制流图中的所述第一块之后的所述控制流图中的第二块中来优化所述程序代码,其中经优化的程序代码将在所述PPU上执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280013228.3/1.html,转载请声明来源钻瓜专利网。