线性代数算法设计与奇异向量重正交化加速
在现代科学计算和工程应用中,线性代数算法的高效性至关重要。本文将介绍两个重要方面的内容:一是通过变换设计线性代数算法,二是利用多核处理器加速奇异向量的重正交化。
1. 通过变换设计线性代数算法
在对称正定(SPD)矩阵求逆的融合循环算法中,有如下代码展示了循环体的操作:
A11 := Chol(A11)
A01 := A01A−1
11
A00 := A00 + A01AT
01
A12 := A−T
11 A12
A02 := A02 −A01A12
A22 := A22 −AT
12A12
A01 := A01A−T
11
A12 := −A−1
11 A12
A11 := A−1
11
A11 := A11AT
11
使用 DxTer 工具对该算法进行处理,在无额外变换的情况下,它生成了数十万种实现,并选择了与专家开发相同的实现。与 ScaLAPACK 使用的非融合版本算法相比,融合循环算法的性能更好,因为通信在更多计算中得到了更好的分摊。
这表明可以机械地生成高性能的分布式线性代数(DLA)代码。DxTer 的目标是简化专家的负担,其关键在于揭示 DLA 领域的内在结构,通过分层设计捕获该领域的基本操作,并对实现这些操作的基本算法和优化进行编码。
1.1 相关工作比较
- SPIRAL 项目 :主要专注于数字信号处理(DSP)领域,自动为目标架构生成高性能内核。它从 DSL 中的数学描述开始,应用重写变换递归替换操作。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



