Skip to main content
QUICK REVIEW

[论文解读] Acceleration of multiple precision matrix multiplication based on multi-component floating-point arithmetic using AVX2

Tomonori Kouya|arXiv (Cornell University)|Jan 16, 2021
Numerical Methods and Algorithms参考文献 9被引用 4
一句话总结

本文提出了一种高度优化的、基于AVX2指令集的多精度矩阵乘法实现,采用双精度(DD)、三重精度(TD)和四重精度(QD)算术,其基础为误差自由变换(EFT)技术。通过利用SIMD化的EFT函数和AVX2指令进行并行计算与内存访问,作者在现代x86-64 CPU(如Intel Core i9和AMD EPYC)上实现了相较于非加速版本超过三倍的性能提升,且在10–24个线程范围内保持稳定的性能扩展。

ABSTRACT

In this paper, we report the results obtained from the acceleration of multi-binary64-type multiple precision matrix multiplication with AVX2. We target double-double (DD), triple-double (TD), and quad-double (QD) precision arithmetic designed by certain types of error-free transformation (EFT) arithmetic. Furthermore, we implement SIMDized EFT functions, which simultaneously compute with four binary64 numbers on x86_64 computing environment, and by using help of them, we also develop SIMDized DD, TD, and QD additions and multiplications. In addition, AVX2 load/store functions were adopted to efficiently speed up reading and storing matrix elements from/to memory. Owing to these combined techniques, our implemented multiple precision matrix multiplications have been accelerated more than three times compared with non-accelerated ones. Our accelerated matrix multiplication modifies the performance of parallelization with OpenMP.

研究动机与目标

  • 通过AVX2向量指令加速多精度矩阵乘法,超越传统实现方式。
  • 在x86-64架构上实现高效的SIMD化误差自由变换(EFT)函数,用于DD、TD和QD算术。
  • 使用AVX2加载/存储指令优化多精度浮点(MPF)矩阵的内存访问。
  • 在高核心数CPU(如AMD EPYC和Intel Core i9)上,通过OpenMP评估性能扩展性。
  • 从并行化效率和加速比角度,对比分块矩阵乘法与Strassen算法的性能表现。

提出的方法

  • 使用诸如 _mm256_add_pd 和 _mm256_fmadd_pd 等内在函数,实现AVX2优化的EFT函数(AVX2QuickTwoSum、AVX2TwoSum、AVX2TwoProd)。
  • 设计了一种新的多精度浮点(MPF)向量与矩阵数据结构,以支持使用256位寄存器的高效AVX2加载/存储操作。
  • 利用AVX2内在函数构建SIMD化的DD、TD和QD加法与乘法例程,实现四个多精度数的并行处理。
  • 通过 _mm256_fmadd_pd 指令集成融合乘加(FMA)指令,提升EFT计算中的精度与性能。
  • 在多核系统上,使用OpenMP对分块矩阵乘法和Strassen算法进行线程级并行化。
  • 在Intel Core i9(10核)和AMD EPYC(24核)系统上,针对不同矩阵尺寸和线程数评估性能表现。

实验结果

研究问题

  • RQ1基于AVX2的SIMD并行化能否显著加速使用DD、TD和QD算术的多精度矩阵乘法?
  • RQ2在高核心数CPU(如AMD EPYC)上,分块矩阵乘法的性能通过OpenMP扩展如何表现?
  • RQ3为何即使使用AVX2,Strassen算法在核心数超过八个的CPU上仍无法实现超过约6倍的加速比?
  • RQ4AVX2在多组件浮点类型上,对内存访问和算术内核的优化程度如何?
  • RQ5在现代多核系统上,对于大规模病态条件问题,分块矩阵乘法是否比Strassen算法更具可扩展性?

主要发现

  • 所提出的AVX2优化实现相较于非加速的多精度浮点(MPF)矩阵乘法,实现了超过三倍的性能提升。
  • 在Intel Core i9上,分块矩阵乘法在10个线程内保持稳定加速;在AMD EPYC上,24个线程内均表现稳定,表明其具有良好的并行扩展能力。
  • Strassen算法在两种CPU上均受限于约六倍加速比,无论是否使用AVX2,原因在于递归调用中线程调度效率低下。
  • 在拥有24个核心的AMD EPYC系统上,分块矩阵乘法在所有测试精度(DD、TD、QD)下均优于Strassen算法,尤其在大矩阵尺寸下优势显著。
  • AVX2通过使用256位寄存器优化加载/存储操作,显著提升了内存访问性能,对整体加速有重要贡献。
  • 该实现表明,分块矩阵乘法是高核心数系统的首选方案,而Strassen方法受限于固有的并行化瓶颈。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。