[发明专利]用于稀疏矩阵的自动重新排序的技术有效
申请号: | 201610909586.2 | 申请日: | 2016-10-19 |
公开(公告)号: | CN107239434B | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | H.容;J.帕克;T.A.安德森 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 徐予红;郑冀之 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 稀疏 矩阵 自动 重新 排序 技术 | ||
1.一种用于稀疏矩阵的自动重新排序的计算装置,所述计算装置包括:
分布性分析模块,用于确定在程序代码的代码区域中定义的表达式的分布性,其中如果所述表达式的语义不受所述表达式的输入或输出的重新排序的影响,则所述表达式被确定成是分布性的;
相互依赖的阵列分析模块,用于对所述表达式执行相互依赖的阵列分析以确定所述表达式的相互依赖的阵列的一个或多个集群,其中所述一个或多个集群的集群的每个阵列相互依赖于所述集群的每个其它阵列;以及
可重新排序阵列发现模块,用于基于所述相互依赖的阵列的所述一个或多个集群借助于通过所述代码区域中的所述表达式的可重新排序阵列的迭代的后向传播和前向传播对所述代码区域执行双向数据流分析,其中所述后向传播基于后向传送函数,而所述前向传播基于前向传送函数。
2.如权利要求1所述的计算装置,进一步包括:区域标识模块,用于识别所述程序代码的所述代码区域。
3.如权利要求2所述的计算装置,其中识别所述代码区域包括识别包含循环体内的代码而不包含流控制语句的所述程序代码的线性循环区域。
4.如权利要求2所述的计算装置,其中识别所述代码区域包括识别由所述计算装置至少在阈值时段内要执行的代码区域。
5.如权利要求1所述的计算装置,其中确定所述表达式的所述分布性包括确定在所述代码区域中定义的每个表达式的所述分布性;以及
其中执行所述相互依赖的阵列分析包括响应于每个表达式是分布性的确定而执行所述相互依赖的阵列分析。
6.如权利要求1所述的计算装置,其中确定所述表达式的所述分布性包括确定语句,,
其中是所述表达式;
其中R是所述表达式上的重新排序;以及
其中是输入的集合。
7.如权利要求1所述的计算装置,其中确定所述表达式的所述分布性包括响应于确定如下至少一项而确定所述表达式是非分布性的:(i)所述表达式要求输入或输出结构具有特定形状;(ii)所述表达式定义所述程序代码的输入-输出函数;(iii)所述表达式要求逐位可再生性;或(iv)所述表达式包含对所述计算装置的编译器未知的函数。
8.如权利要求1所述的计算装置,其中所述一个或多个集群的集群的每个阵列相互依赖于所述集群的每个其它阵列,使得所述一个或多个集群的具体集群中的一个阵列的重新排序影响所述具体集群的每个其它阵列。
9.如权利要求1所述的计算装置,其中执行所述相互依赖的阵列分析包括:
生成所述表达式的表达式树,其中所述表达式树的每个内部节点指示所述表达式的运算,而所述表达式树的每个端节点指示阵列或标量;
基于所述阵列的相互依赖性将所述表达式树分成表达式子树的集合;以及
基于包含在所述表达式子树中的所述阵列确定每个表达式子树的相互依赖的阵列的对应集群。
10.如权利要求9所述的计算装置,其中将所述表达式树分成表达式子树的集合包括确定所述表达式树的每个内部节点的结果类型。
11.如权利要求1所述的计算装置,其中执行所述双向数据流分析包括:
初始化所述表达式的输入集和输出集;
通过向要重新排序的第一阵列应用所述前向传送函数来预先调节所述表达式的所述输入集和所述输出集;以及
迭代地应用所述后向传送函数和所述前向传送函数,直到所述输入集和所述输出集不改变。
12.如权利要求11所述的计算装置,其中所述可重新排序阵列发现模块进一步从所述计算装置的用户接收所述要重新排序的第一阵列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610909586.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:物联网接入的方法及装置
- 下一篇:一种白色石材除黄剂及其制备方法