算法的数据相关性

本文介绍了数据无关算法和数据相关算法的基本概念。数据无关算法的访存行为在编译期确定,易于优化,如矩阵乘法;而数据相关算法的访存依赖于数据值,优化更具挑战性,如图算法。讨论了两类算法的优化策略及在高性能计算和数据中心应用中的重要性。
摘要由CSDN通过智能技术生成

数据无关算法与数据相关算法

本节主要介绍数据无关算法和数据相关算法的定义、性质、区别与联系。

数据无关算法

定义: 算法运行时的访存行为不依赖于任何存储单元的具体值。
数据无关算法(Data Independent Algorithm,DIA)的访存关系在编译期已经确定。无论存储单元存储的数据值是什么,其访存关系也不会改变。这个良好的性质导致这类算法容易通过编译器或者手工调整访存的次序来提高访存的规则性和局部性,容易使用硬件进行加速。许多高性能数值算法(矩阵乘法、FFT、卷积等)即属于这一类,这类算法的研究已经比较成熟。如算法 1所示为基本的稠密矩阵乘法算法。图 1表示矩阵乘算法中数组A、B、C的访存模式,无论A、B、C中存储的内容是什么,这个访存顺序都不会改变。常见的优化手段有循环交换、循环展开、分块、SIMD、预取、脉动阵列等。
图1

算法1 稠密矩阵乘法

图1 稠密矩阵乘法的访存模式

数据相关算法

定义: 算法运行时的访存行为依赖于某些存储单元的具体值。
数据相关算法(Data Correlation Algorithm,DCA)的本质特征是运行时的访存地址依赖于某些存储单元的值,这导致数据无关算法的优化手段对于数据相关算法可能是无效的,数据相关算法的优化比数据无关算法的优化更难。这类算法的一个典型代表是图算法(BFS、SSSP、PageRank等)。除了图算法属于这个分类,数据中心许多的应用也是属于这个分类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值