研究人员提出了许多用于优化SpMV内核的稀疏格式。然而,没有一种格式是适用于所有矩阵的。最佳稀疏格式取决于输入矩阵的稀疏模式和硬件规格。因此,人们提出了自动调优技术,以便在运行时可以根据输入矩阵的稀疏特性来调整不同的参数,实现更高的计算性能。
一般来说,性能建模在自动调优系统的设计中起着基础性的作用。Choi等人开发了一个基于手动优化模型的自动调优框架来为BELL格式和BCSR格式选择最佳的分块大小。Guo等人提出了一个基于概要信息的性能建模和优化分析工具,用于预测和优化GPU上的SpMV性能。首先,他们建立了性能模型来预测给定稀疏矩阵在COO、CSR和ELL下的SpMV内核执行时间。然后,他们使用这些模型在不同的格式之间进行组合以适应不同的输入矩阵。与此分析方法不同,Yang等人提出了一种SpMV性能分析与优化的概率方法。该方法分析了输入矩阵中非零元素的分布规律,定义了相应的概率质量函数,然后利用该概率函数来预测COO、CSR和ELL格式下的SpMV内核执行时间。
随着现代硬件体系结构的复杂性日益增加和矩阵稀疏特性的不断丰富,上述调优方法很难进一步推广。这类方法通常只针对特定的硬件平台,如果更换计算平台,通常需要重复构建性能模型,这会浪费大量的时间。因此,研究人员考虑借助机器学习方法。Li等人提出了SMAT,一种基于机器学习方法的SpMV自动调优框架,该方法可以在多种体系架构的CPU平台上确定矩阵的最佳格式。Sedaghati等人选择输入稀疏矩阵的相关特征,利用分类树等机器学习方法在COO、CSR、ELL等格式中选择最佳的存储方案。Xiao等人基于神威太湖之光平台开发了一套基于HYB格式的SpMV优化框架。Barreda等人还采用了卷积神经网络来建模SpMV。(https://www.xing528.com)
此外,Abu-Sufah等人提出了一种基于启发式的调优框架,该框架能在GPU平台上提供高效率的SpMV计算内核,包括提供最有效的存储格式和针对底层硬件架构进行相关参数优化后的代码。另外,BCCOO/BCCOO + 格式、SELL格式中也有自动调优技术,能够针对输入矩阵和计算平台的特性选择优化参数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
