[发明专利]用于稀疏矩阵的自动重新排序的技术有效
申请号: | 201610909586.2 | 申请日: | 2016-10-19 |
公开(公告)号: | CN107239434B | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | H.容;J.帕克;T.A.安德森 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 徐予红;郑冀之 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 稀疏 矩阵 自动 重新 排序 技术 | ||
用于稀疏矩阵的自动重新排序的技术包含计算装置,所述计算装置用于确定在程序代码的代码区域中定义的表达式的分布性。如果表达式的语义不受表达式的输入/输出的重新排序的影响,则表达式被确定成是分布性的。计算装置对表达式执行相互依赖的阵列分析以确定表达式的相互依赖的阵列的一个或多个集群,其中一个或多个集群的集群的每个阵列互相依赖于集群的每个其它阵列,并且基于相互依赖的阵列的一个或多个集群借助于通过代码区域中的表达式的可重新排序阵列的迭代的后向和前向传播对代码区域执行双向数据流分析。后向传播基于后向传送函数,而前向传播基于前向传送函数。
背景技术
稀疏数据结构(诸如图和稀疏矩阵)上的高性能计算(HPC)在例如包含机器学习、计算科学、物理模型模拟、web搜索以及知识发现的广泛领域中正在变得越来越重要。传统高性能计算应用一般涉及规则和密集数据结构;然而,稀疏计算具有某些独一无二的挑战。例如,稀疏计算通常比密集计算具有低得多的计算密度,并且因此,其性能经常受存储带宽的限制。此外,存储器存取模式和并行度的量变化很大,例如取决于输入数据的特定稀疏度模式,这使优化复杂化了,因为某些优化信息经常是未知的先验。
系统可修改输入数据集以获得高数据局部性,以便处理那些挑战。例如,系统可采用重新排序,其置换矩阵的行和/或列以便集群彼此附近的非零项。例如,系统可重新排序稀疏矩阵100以生成带状矩阵102,其中非零项104在彼此附近群集,如图1A-B所示的。通过这么做,系统增大了具体存储器读取涉及更多非零项(即空间局部性)的机会,并且可导致比没有重新排序在高速缓存当中更多的再用(即时间局部性)。已经开发并实现了各种重新排序算法,例如包含广度优先搜索(BFS)、反向Cuthill-McKee(RCM)、自回避行走(SAW)、METIS划分器和King's算法。具体地说,BFS及其更精细版本RCM由于其较小的复杂性和较大的效率而被频繁用于优化稀疏矩阵向量乘法(SpMV)中的高速缓存局部性。
附图说明
本文描述的概念在附图中作为示例而非作为限制图示。为了图示的简洁和清晰起见,在附图中图示的元件不一定按比例绘制。视情况而定,附图标记在图之间已经被重复了以指示对应或类似元件。
图1A是稀疏矩阵的至少一个实施例的简化图解;
图1B是重新排序的稀疏矩阵的至少一个实施例的简化图解;
图2是用于稀疏矩阵的自动重新排序的计算装置的至少一个实施例的简化框图;
图3是图2的计算装置的环境的至少一个实施例的简化框图;
图4A是程序代码段的至少一个实施例;
图4B-4C是图4A的程序代码段的重新排序版本的实施例;
图5是可由图2的计算装置执行的用于稀疏矩阵的自动重新排序的方法的至少一个实施例的简化流程图;
图6是可由图2的计算装置执行的用于执行相互依赖的阵列(array)分析的方法的至少一个实施例的简化流程图;
图7A是表达式(expression)树的至少一个实施例的简化图解;
图7B是根据图7A的表达式树生成的表达式子树的集合的至少一个实施例的简化图解;
图8是可由图2的计算装置执行的用于执行双向数据流分析的方法的至少一个实施例的简化流程图;
图9是来自应用双向分析以便发现可重新排序阵列的结果的至少一个实施例的部分表;
图10是代码区域中程序代码的简化框图;
图11是来自向图10的程序代码应用没有优化的双向分析的结果的至少一个实施例的部分表;
图12是基于图11的没有优化的双向分析的结果的图10的程序代码的重新排序版本的简化框图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610909586.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:物联网接入的方法及装置
- 下一篇:一种白色石材除黄剂及其制备方法