当前位置: X-MOL 学术Comput. Methods Appl. Math. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Fast Bilinear Algorithms for Symmetric Tensor Contractions
Computational Methods in Applied Mathematics ( IF 1.3 ) Pub Date : 2021-01-01 , DOI: 10.1515/cmam-2019-0075
Edgar Solomonik 1 , James Demmel 2
Affiliation  

Abstract In matrix-vector multiplication, matrix symmetry does not permit a straightforward reduction in computational cost. More generally, in contractions of symmetric tensors, the symmetries are not preserved in the usual algebraic form of contraction algorithms. We introduce an algorithm that reduces the bilinear complexity (number of computed elementwise products) for most types of symmetric tensor contractions. In particular, it lowers the bilinear complexity of symmetrized contractions of symmetric tensors of order s + v {s+v} and v + t {v+t} by a factor of ( s + t + v ) ! s ! ⁢ t ! ⁢ v ! {\frac{(s+t+v)!}{s!t!v!}} to leading order. The algorithm computes a symmetric tensor of bilinear products, then subtracts unwanted parts of its partial sums. Special cases of this algorithm provide improvements to the bilinear complexity of the multiplication of a symmetric matrix and a vector, the symmetrized vector outer product, and the symmetrized product of symmetric matrices. While the algorithm requires more additions for each elementwise product, the total number of operations is in some cases less than classical algorithms, for tensors of any size. We provide a round-off error analysis of the algorithm and demonstrate that the error is not too large in practice. Finally, we provide an optimized implementation for one variant of the symmetry-preserving algorithm, which achieves speedups of up to 4.58 × \times for a particular tensor contraction, relative to a classical approach that casts the problem as a matrix-matrix multiplication.

中文翻译:

对称张量收缩的快速双线性算法

摘要 在矩阵向量乘法中,矩阵对称性不允许直接降低计算成本。更一般地,在对称张量的收缩中,对称性不以收缩算法的通常代数形式保留。我们引入了一种算法,可以降低大多数类型的对称张量收缩的双线性复杂度(计算元素乘积的数量)。特别是,它将 s + v {s+v} 和 v + t {v+t} 阶对称张量的对称收缩的双线性复杂度降低了 ( s + t + v ) 的因子!!⁢ t ! ⁢ v ! {\frac{(s+t+v)!}{s!t!v!}} 到前导顺序。该算法计算双线性乘积的对称张量,然后减去其部分和的不需要的部分。该算法的特殊情况改进了对称矩阵和向量的乘法、对称向量外积和对称矩阵的对称积的双线性复杂度。虽然该算法需要对每个元素乘积进行更多的添加,但在某些情况下,对于任何大小的张量,总操作次数少于经典算法。我们提供了算法的舍入误差分析,并证明在实践中误差不会太大。最后,我们为保持对称性算法的一个变体提供了一个优化的实现,相对于将问题转换为矩阵-矩阵乘法的经典方法,该算法对于特定的张量收缩实现了高达 4.58 × \times 的加速。对称向量外积和对称矩阵的对称积。虽然该算法需要对每个元素乘积进行更多的添加,但在某些情况下,对于任何大小的张量,总操作次数少于经典算法。我们提供了算法的舍入误差分析,并证明在实践中误差不会太大。最后,我们为保持对称性算法的一个变体提供了一个优化的实现,相对于将问题转换为矩阵-矩阵乘法的经典方法,该算法对于特定的张量收缩实现了高达 4.58 × \times 的加速。对称向量外积和对称矩阵的对称积。虽然该算法需要对每个元素乘积进行更多的添加,但在某些情况下,对于任何大小的张量,总操作次数少于经典算法。我们提供了算法的舍入误差分析,并证明在实践中误差不会太大。最后,我们为保持对称性算法的一个变体提供了一个优化的实现,相对于将问题转换为矩阵-矩阵乘法的经典方法,该算法对于特定的张量收缩实现了高达 4.58 × \times 的加速。对于任何大小的张量,在某些情况下,操作总数少于经典算法。我们提供了算法的舍入误差分析,并证明在实践中误差不会太大。最后,我们为保持对称性算法的一个变体提供了一个优化的实现,相对于将问题转换为矩阵-矩阵乘法的经典方法,该算法对于特定的张量收缩实现了高达 4.58 × \times 的加速。对于任何大小的张量,在某些情况下,操作总数少于经典算法。我们提供了算法的舍入误差分析,并证明在实践中误差不会太大。最后,我们为保持对称性算法的一个变体提供了一个优化的实现,相对于将问题转换为矩阵-矩阵乘法的经典方法,该算法对于特定的张量收缩实现了高达 4.58 × \times 的加速。
更新日期:2021-01-01
down
wechat
bug