«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (2): 86-91  DOI: 10.19678/j.issn.1000-3428.0060481
0

引用本文  

曹中潇, 冯仰德, 王珏, 等. 基于深度学习的稀疏矩阵向量乘运算性能预测模型[J]. 计算机工程, 2022, 48(2), 86-91. DOI: 10.19678/j.issn.1000-3428.0060481.
CAO Zhongxiao, FENG Yangde, WANG Jue, et al. Computing Performance Prediction Model for Sparse Matrix Vector Multiplication Based on Deep Learning[J]. Computer Engineering, 2022, 48(2), 86-91. DOI: 10.19678/j.issn.1000-3428.0060481.

基金项目

国家重点研发计划(2017YFB0202302)

通信作者

王珏(通信作者), 副研究员、博士

作者简介

曹中潇(1994-), 女, 硕士研究生, 主研方向为并行计算;
冯仰德, 副研究员、博士;
闵维潇, 硕士研究生;
姚铁锤, 博士研究生;
高岳, 工程师、硕士;
王丽华, 教授;
高付海, 副研究员、硕士

文章历史

收稿日期:2021-01-04
修回日期:2021-03-02
基于深度学习的稀疏矩阵向量乘运算性能预测模型
曹中潇1,2 , 冯仰德1 , 王珏1 , 闵维潇3 , 姚铁锤1,2 , 高岳4 , 王丽华3 , 高付海4     
1. 中国科学院计算机网络信息中心, 北京 100190;
2. 中国科学院大学, 北京 100049;
3. 北京航空航天大学 软件学院, 北京 100191;
4. 中国原子能科学研究院, 北京 102413
摘要:稀疏矩阵向量乘(SpMV)是求解稀疏线性方程组的计算核心,被广泛应用在经济学模型、信号处理等科学计算和工程应用中,对于SpMV及其调优技术的研究有助于提升解决相关领域问题的运算效率。传统SpMV自动调优方法基于硬件平台的体系结构参数设置来提升SpMV性能,但巨大的参数设置量导致搜索空间变大且自动调优耗时大幅增加。采用深度学习技术,基于卷积神经网络,构建由双通道稀疏矩阵特征融合以及稀疏矩阵特征与体系结构特征融合组成的SpMV运算性能预测模型,实现快速自动调优。为提高SpMV运算时间的预测精度,选取特征数据并利用箱形图统计SpMV时间信息,同时在佛罗里达稀疏矩阵数据集上进行实验设计与验证,结果表明,该模型的SpMV运算时间预测准确率达到80%以上,并且具有较强的泛化能力。
关键词稀疏矩阵向量乘    自动调优    深度学习    卷积神经网络    特征融合    
Computing Performance Prediction Model for Sparse Matrix Vector Multiplication Based on Deep Learning
CAO Zhongxiao1,2 , FENG Yangde1 , WANG Jue1 , MIN Weixiao3 , YAO Tiechui1,2 , GAO Yue4 , WANG Lihua3 , GAO Fuhai4     
1. Computer Network Information Center, Chinese Academy of Sciences, Beijing 100190, China;
2. University of Chinese Academy of Sciences, Beijing 100049, China;
3. School of Software, Beihang University, Beijing 100191, China;
4. China Institute of Atomic Energy, Beijing 102413, China
Abstract: Sparse Matrix Vector Multiplication(SpMV) is key to solving sparse linear equations.It is widely used in economic modeling, signal processing and other scientific and engineering tasks.The research on SpMV and its tuning technology can improve the computational efficiency of solving problems in related fields.Traditional SpMV automatic tuning methods improve the performance of SpMV based on the architecture parameter settings of the hardware platform, but the huge amount of parameter settings leads to a larger search space and a significant increase in the time consumption of automatic tuning.To implement fast and accurate automatic tuning, we use deep learning technology to construct a Convolutional Neural Network(CNN) model for SpMV computing performance prediction, which is built based on dual-channel sparse matrix feature fusion, sparse matrix feature fusion and architecture feature fusion.In order to improve the prediction accuracy of SpMV computing performance, feature data is selected and constructed.The box plot is used to count SpMV time information.Then the Florida sparse matrix dataset is selected for experimental design and verification.Experimental results show that the model displaying a prediction accuracy of SpMV computing time over 80% and strong generalization ability.
Key words: Sparse Matrix Vector Multiplication(SpMV)    automatic tuning    deep learning    Convolutional Neural Network(CNN)    feature fusion    

开放科学(资源服务)标志码(OSID):

0 概述

在科学计算和工程应用领域中,很多实际问题的求解通常可以转换为求解线性代数方程组$ \boldsymbol{A}x=b $,而大部分实际问题中遇到的矩阵A往往是稀疏的,因此稀疏矩阵向量乘(Sparse Matrix Vector Multiplication,SpMV)是数值计算的主要组成部分,也是计算耗时最多的部分。在使用迭代法求解大规模稀疏线性方程组时,SpMV被重复调用,SpMV计算效率直接影响了整体求解效率[1]。由于存储访问不规则等特性,SpMV运行效率一般低于单个处理器浮点性能峰值的10%[2],在实际应用中往往成为性能瓶颈。文献[3-4]介绍了BCSR和BELLPACK存储格式的变体。文献[5]提出一种新型存储格式CSX,该格式利用矩阵中的子结构来压缩元数据。文献[6]提出一种CSR5格式,该格式能在CPU、GPU、Xeon Phi等平台上提供高吞吐量SpMV。文献[7]提出一种在向量多处理机上实现稀疏矩阵乘法的算法SEGMV。文献[8]提出一种新型存储格式Cocktail并基于该格式开发clSpMV框架,clSpMV框架能够在运行时分析各种稀疏矩阵,在给定目标平台上为其推荐最优存储格式。文献[9]提出一种新型存储格式CVR,该格式同时处理输入矩阵中的多个行以提高缓存效率,并将它们分成多个SIMD通道,以便利用现代处理器中的向量处理单元。文献[10]提出一种基于COO格式的BCCOO格式。文献[11-13]利用自动调优技术来提高SpMV性能以及跨平台的可移植性。传统自动调优方法主要关注在硬件上的参数搜索空间中进行搜索,搜索空间大,且对每一次搜索的参数设置都要执行SpMV运算,导致自动调优的耗时大幅增加。因此,研究SpMV的性能模型对提高自动调优性能具有重要意义。

一些学者基于机器学习方法构建SpMV算法生成库。李佳佳等[14]提出一个SMAT自动调优器,对于一个给定的稀疏矩阵,SMAT结合矩阵特征选择并从DIA、ELL、CSR、COO等4种格式中返回最优的存储格式。SEDAGHATI等[15]构建一个决策模型,实现对给定目标平台上的稀疏矩阵自动选择最优存储格式。BENATIA等[16]采用SVM方法来解决存储格式选择问题。NISA等[17]结合决策树和SVM两种方法,实现一个存储格式预测模型。ZHAO等[18-19]考虑运行时预测开销以及格式转换开销的影响,设计回归模型以及基于神经网络的时间序列预测模型,有效捕获了开销以及格式预测和转换对整体程序性能的影响。ZHAO等[20]将深度学习方法引入SpMV的最优稀疏矩阵存储格式选择中,提出Late-merging卷积神经网络(Convolutional Neural Network,CNN)结构,有效地将深度学习方法应用于高性能计算问题,但该模型缺乏对体系结构参数的考虑。上述方法主要用于稀疏矩阵存储格式选择,并不适用于SpMV性能预测。对于SpMV,由于输入的特征数据来源于稀疏矩阵和体系结构参数,数据含义以及表示形式与图像处理网络中的输入数据不同,因此图像处理领域中的CNN网络结构不再适用,需要设计新的CNN网络来满足SpMV运算时间预测的需求。

本文构建一个SpMV性能预测模型,将稀疏矩阵的特征以及硬件平台的特征作为输入、SpMV运算时间作为输出。设计CNN网络结构,对各部分特征输入分别独立进行特征处理。引入特征融合模块,将特征融合延迟到CNN网络后期,使CNN网络更好地适应SpMV的输入表示形式,并使用稀疏矩阵集合进行实验验证。

1 基于CNN的SpMV运算时间预测模型 1.1 模型构建

SpMV运算时间预测模型为三通道独立CNN模型,网络添加了特征融合模块,如图 1所示。该模型主要由双通道稀疏矩阵特征融合以及稀疏矩阵特征与体系结构特征融合两部分组成,每个部分的作用如下:

Download:
图 1 特征融合CNN模型结构 Fig. 1 Structure of feature fusion CNN model

1)双通道稀疏矩阵特征融合。考虑到稀疏矩阵的表示以及CNN具备提取矩阵特征的能力,本文设计双通道稀疏矩阵特征融合模块,获取稀疏矩阵的特征。通过直方采样算法从稀疏矩阵中提取出行特征矩阵以及列特征矩阵,采用特征后融合的方法,将它们分别输入各自的卷积神经网络中,在后期进行线性拼接融合,并输入至全连接层,进而得到稀疏矩阵的融合特征。

2)稀疏矩阵特征与体系结构特征融合。同样采用特征后融合的方法,首先将融合后的稀疏矩阵特征与体系结构参数特征分别使用BN(Batch Normalization)层[21]规范化后进行特征融合,得到稀疏矩阵与体系结构参数的融合特征,然后经过Softmax函数,最后输出四分类的预测值。

在图像处理领域,对一幅给定RGB图像,每个通道中的第i个元素都对应原始图像的第i个像素。在本文所研究的问题中,由于稀疏矩阵采用直方采样算法提取特征,行特征矩阵和列特征矩阵在数值上具有不同的统计意义,即一个是对行的直方统计,另一个是对列的直方统计,因此并没有图像处理中点对点的对应关系[20]。基于上述考虑,特征融合模块将对来自稀疏矩阵的特征矩阵以及来自运行平台的体系结构参数特征分别进行处理,在网络后期将两者特征融合,避免了多类别特征过早融合导致特征提取时造成的相互干扰,同时降低了算法复杂度。

1.2 特征数据的选取和构建

SpMV实际运行的时间与多种因素有关,例如矩阵的规模大小、矩阵的非零元素个数、运行平台的体系结构参数等。在构建模型时,单一特征通常只侧重于某一方面,为了提高模型的可靠性和准确性,采取特征融合的方法来兼顾多种特征的信息。为此,本文选取并构建SpMV运算时间预测的多类别输入特征,将SpMV数据特征分为两类,即稀疏矩阵特征和硬件平台特征,如表 1所示。

下载CSV 表 1 输入特征信息 Table 1 Input feature information

稀疏矩阵特征包括行特征矩阵、列特征矩阵,以及稀疏矩阵的行数、列数、非零元素的个数。其中,对于稀疏矩阵,采用直方采样算法对原稀疏矩阵分别进行行直方采样以及列直方采样,从而得到行特征矩阵以及列特征矩阵。稀疏矩阵的行数和列数表征了稀疏矩阵的规模大小,对于规模很小的稀疏矩阵,执行SpMV自动调优的耗时较短,对其进行时间预测的意义较小。因此,本文实验剔除了规模较小的矩阵,即行数或列数小于100的矩阵。

在选定模型的输入特征后,需要进行数据采集以及数据预处理,构建完整的特征数据集。适当的数据预处理能够提高整个预测模型的准确性,图 2给出了数据预处理的过程,其中,实线表示数据预处理的流程,虚线表示模型的特征数据和标注数据。由于CNN网络需要大量数据作为训练样本,进而获得样本间的知识,因此应用数据增强技术来获取足量数据。首先,对原始稀疏矩阵进行转置,对现有的数据进行扩充产生更多训练数据,以便模型学习到更多矩阵特征。其次,对扩充后的数据进行筛选和过滤,包括处理无效数据、过滤不符合要求的数据等。最后,采用直方采样算法提取稀疏矩阵的行特征以及列特征,并借助yaSpMV[10]工具获取体系结构参数以及SpMV运算时间。

Download:
图 2 数据预处理过程 Fig. 2 Process of data preprocessing
1.3 基于箱图的时间标签分类

基于深度学习的模型训练需要海量的标注数据。本文使用箱形图[22]统计时间信息,箱形图能够显示出一组数据的最大值、最小值、中位数以及上下四分位数,可以用来反映数据分布的中心位置和散布范围,并且可以直观地识别批量数据中的异常值。在箱形图中,异常值被定义为小于$ {Q}_{1}-1.5{I}_{\mathrm{IQR}} $或大于$ {Q}_{3}+1.5{I}_{\mathrm{IQR}} $的值,其中,$ {Q}_{1} $为第1个四分位数,$ {Q}_{3} $为第3个四分位数,$ {I}_{\mathrm{IQR}} $$ {Q}_{3} $$ {Q}_{1} $的差距,即$ {I}_{\mathrm{IQR}}={Q}_{3}-{Q}_{1} $。基于箱形图的时间信息统计结果如表 2所示。

下载CSV 表 2 基于箱形图的时间统计信息 Table 2 Time statistics based on box plot

为使数据类别划分尽可能均匀,实验采用$ {Q}_{1} $$ {Q}_{2} $$ {Q}_{3} $这3个四分位点作为分界点,将摒弃异常值之后的数据划分为4个部分,分别对应0、1、2、3等4个类别(Class)。不同类别对应的时间(t)情况如式(1)所示:

$ \mathrm{Class}=\left\{\begin{array}{l0, 0}\le t < {Q}_{1}\\ 1, {Q}_{1}\le t < {Q}_{2}\\ 2, {Q}_{2}\le t < {Q}_{3}\\ 3, {Q}_{3}\le t < {Q}_{3}+1.5{I}_{\mathrm{IQR}}\end{array}\right. $ (1)

其中:SpMV运算时间在[0,$ {Q}_{1} $)、[$ {Q}_{1}, {Q}_{2} $)、[$ {Q}_{2}, {Q}_{3} $)、[$ {Q}_{3}, {Q}_{3}+1.5{I}_{\mathrm{IQR}} $)区间范围内的分类标签分别为0、1、2、3。SpMV运算时间预测模型的训练和推理过程如下:

1)对原始稀疏矩阵数据进行预处理,提取稀疏矩阵的特征,得到特征矩阵,包括行特征矩阵和列特征矩阵。

2)获取硬件平台的体系结构参数组合,构建多类别特征数据集,同时对每一组参数设置执行SpMV运算,得到对应的SpMV运算时间,作为训练标签。

3)设计基于卷积神经网络的模型结构,利用步骤1、步骤2中得到的特征数据和标签组成数据集,输入模型中进行训练,不断进行参数优化调整,直至得到训练好的模型。

4)使用新的稀疏矩阵,经过数据预处理得到特征数据,输入训练好的模型中得到预测结果。

2 实验与结果分析

为验证本文特征融合CNN模型的准确性和有效性,实验选择佛罗里达稀疏矩阵数据集[23]进行验证,选用格式为MM格式[24],获取并扩充得到稀疏矩阵文件1 538个。实验平台相关信息如表 3所示。

下载CSV 表 3 实验平台相关信息 Table 3 Experimental platform related informations

本文特征融合CNN模型采取将稀疏矩阵特征与体系结构参数特征先分别卷积池化再进行融合的模型进行处理,旨在消除输入特征之间的相互干扰。为验证该模型的有效性,建立一个对比模型,记为非特征融合CNN模型。在该模型中,稀疏矩阵特征与体系结构参数特征在网络后期直接融合,这与图 1所展现的特征先消融再融合的结构有着本质区别。

对于两个模型,将预处理得到的数据按10∶1的比例分为训练集和验证集,数据量信息如表 4所示。模型均在相同的训练集以及验证集上进行实验。由于数据量较大,如果直接将训练数据输入预测模型进行训练,每轮迭代时间较长,参数更新缓慢,因此采用梯度下降法中的mini-batch训练方法进行小批量训练,结合反向传播算法优化参数,降低内存负载,提高训练速度。模型训练参数设置如下:损失函数为CrossEntropyLoss,优化器为optim.Adam,学习率为1e-2,共训练50批次,每批次数据量为1 024。

下载CSV 表 4 数据集划分 Table 4 Dataset division

选取以下评价指标对特征融合CNN三通道独立CNN模型进行预测性能分析:

1)Loss值。使用平均绝对误差(Mean Absolute Error,MAE)值表示Loss值,MAE计算公式如下:

$ {M}_{\mathrm{MAE}}=\frac{1}{n}\sum\limits_{i=1}^{n}\left|{y}_{i}-{y}_{i}^{\mathrm{\text{'}}}\right| $ (2)

其中:$ n $表示数据数目;$ {y}_{i} $$ {y}_{i}^{\mathrm{\text{'}}} $分别表示第$ i $条SpMV执行时间的真实值和预测值。

2)ACC值。使用ACC值作为准确率的值,ACC计算公式如下:

$ {A}_{\mathrm{ACC}}=\frac{{C}_{\mathrm{true}}}{{C}_{\mathrm{all}}}\times 100\mathrm{\%} $ (3)

其中:$ {C}_{\mathrm{true}} $$ {C}_{\mathrm{all}} $分别表示预测结果正确的数目以及全部预测结果的数目。

图 3给出了未添加特征融合模块的非特征融合CNN模型以及添加了特征融合模块的三通道独立CNN模型的Loss值随迭代轮次的变化趋势图。从图 3中可以看出,特征融合CNN模型比非特征融合CNN模型的收敛速度更快,收敛效果更好。图 4给出了两个模型的ACC值随迭代轮次的变化趋势图,两个模型在训练集以及验证集上的平均准确率如表 5所示。可见,特征融合CNN模型在收敛过程中的预测准确率更高,表现出更好的泛化能力,说明本文对不同特征之间关联性的考虑及处理使得特征提取更加全面多样且层次性更强,从而进一步提升了预测准确率。

Download:
图 3 特征融合CNN模型与非特征融合CNN模型的Loss值对比 Fig. 3 Comparison of Loss values between feature fusion CNN model and non-feature fusion CNN model
Download:
图 4 特征融合CNN模型与非特征融合CNN模型的ACC值对比 Fig. 4 Comparison of ACC values between feature fusion CNN model and non-feature fusion CNN model
下载CSV 表 5 模型平均预测准确率对比 Table 5 Comparison of average prediction accuracy between models 
3 结束语

预测SpMV的运算时间有利于加快SpMV自动调优速度。本文建立基于深度学习的SpMV运算时间预测模型,结合稀疏矩阵的行特征、列特征以及运行平台的体系结构参数等因素,分类别对SpMV的运算时间进行预测。实验结果表明,基于特征融合CNN的SpMV运算时间预测模型的预测准确率较高,运行速度较快,适合处理不同特点的稀疏矩阵。后续将对SpMV自动调优过程中的每组调优参数均进行运算时间预测,从而寻得耗时最短的调优参数组合,以达到快速自动调优的目的。

参考文献
[1]
李亿渊, 薛巍, 陈德训, 等. 稀疏矩阵向量乘法在申威众核架构上的性能优化[J]. 计算机学报, 2020, 43(6): 1010-1024.
LI Y Y, XUE W, CHEN D X, et al. Performance optimization for sparse matrix-vector multiplication on Sunway architecture[J]. Chinese Journal of Computers, 2020, 43(6): 1010-1024. (in Chinese)
[2]
VUDUC R, DEMMEL J W, YELICK K A, et al. Performance optimizations and bounds for sparse matrix-vector multiply[C]//Proceedings of 2002 ACM/IEEE Conference on Supercomputing. Washington D.C., USA: IEEE Press, 2002: 1-35.
[3]
BELL N, GARLAND M. Implementing sparse matrix-vector multiplication on throughput-oriented processors[C]//Proceedings of 2009 ACM Conference on High Performance Computing Networking, Storage and Analysis. New York, USA: ACM Press, 2009: 1-11.
[4]
CHOI J W, SINGH A, VUDUC R W. Model-driven autotuning of sparse matrix-vector multiply on GPUs[C]//Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. New York, USA: ACM Press, 2010: 115-126.
[5]
KOURTIS K, KARAKASIS V, GOUMAS G, et al. CSX: an extended compression format for SpMV on shared memory systems[C]//Proceedings of the 16th ACM Symposium on Principles and Practice of Parallel Programming. New York, USA: ACM Press, 2011: 247-256.
[6]
LIU W F, VINTER B. CSR5: an efficient storage format for cross-platform sparse matrix-vector multiplication[C]//Proceedings of the 29th ACM on International Conference on Supercomputing. New York, USA: ACM Press, 2015: 339-350.
[7]
LIU W F, VINTER B. Speculative segmented sum for sparse matrix-vector multiplication on heterogeneous processors[J]. Parallel Computing, 2015, 49: 179-193. DOI:10.1016/j.parco.2015.04.004
[8]
SU B Y, KEUTZER K. clSpMV: a cross-platform OpenCL SpMV framework on GPUs[C]//Proceedings of the 26th ACM international conference on Supercomputing. New York, USA: ACM Press, 2012: 353-364.
[9]
XIE B W, ZHAN J F, LIU X, et al. CVR: efficient vectorization of SpMV on X86 processors[C]//Proceedings of 2018 International Symposium on Code Generation and Optimization. New York, USA: ACM Press, 2018: 149-162.
[10]
YAN S G, LI C, ZHANG Y Q, et al. yaSpMV: yet another SpMV framework on GPUs[C]//Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. New York, USA: ACM Press, 2014: 107-118.
[11]
袁娥, 张云泉, 刘芳芳, 等. SpMV的自动性能优化实现技术及其应用研究[J]. 计算机研究与发展, 2009, 46(7): 1117-1126.
YUAN E, ZHANG Y Q, LIU F F, et al. Automatic performance tuning of sparse matrix-vector multiplication: implementation techniques and its application research[J]. Journal of Computer Research and Development, 2009, 46(7): 1117-1126. (in Chinese)
[12]
VUDUC R, DEMMEL J W, YELICK K A. OSKI: a library of automatically tuned sparse matrix kernels[J]. Journal of Physics: Conference Series, 2005, 16: 521-530.
[13]
WILLIAMS S, OLIKER L, VUDUC R, et al. Optimization of sparse matrix-vector multiplication on emerging multicore platforms[J]. Parallel Computing, 2009, 35(3): 178-194. DOI:10.1016/j.parco.2008.12.006
[14]
李佳佳, 张秀霞, 谭光明, 等. 选择稀疏矩阵乘法最优存储格式的研究[J]. 计算机研究与发展, 2014, 51(4): 882-894.
LI J J, ZHANG X X, TAN G M, et al. Study of choosing the optimal storage format of sparse matrix vector multiplication[J]. Journal of Computer Research and Development, 2014, 51(4): 882-894. (in Chinese)
[15]
SEDAGHATI N, MU T, POUCHET L N, et al. Automatic selection of sparse matrix representation on GPUs[C]//Proceedings of the 29th ACM on International Conference on Supercomputing. New York, USA: ACM Press, 2015: 99-108.
[16]
BENATIA A, JI W X, WANG Y Z, et al. Sparse matrix format selection with multiclass SVM for SpMV on GPU[C]//Proceedings of the 45th International Conference on Parallel Processing. Washington D.C., USA: IEEE Press, 2016: 496-505.
[17]
NISA I, SIEGEL C, RAJAM A S, et al. Effective machine learning based format selection and performance modeling for SpMV on GPUs[C]//Proceedings of 2018 IEEE International Parallel and Distributed Processing Symposium Workshops. Washington D.C., USA: IEEE Press, 2018: 1056-1065.
[18]
ZHAO Y, ZHOU W J, SHEN X P, et al. Overhead-conscious format selection for SpMV-based applications[C]//Proceedings of 2018 IEEE International Parallel and Distributed Processing Symposium. Washington D.C., USA: IEEE Press, 2018: 950-959.
[19]
ZHOU W J, ZHAO Y, SHEN X P, et al. Enabling runtime SpMV format selection through an overhead conscious method[J]. IEEE Transactions on Parallel and Distributed Systems, 2020, 31(1): 80-93. DOI:10.1109/TPDS.2019.2932931
[20]
ZHAO Y, LI J J, LIAO C H, et al. Bridging the gap between deep learning and sparse matrix format selection[C]//Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. New York, USA: ACM Press, 2018: 94-108.
[21]
IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift[C]//Proceedings of the 32nd International Conference on International Conference on Machine Learning. New York, USA: ACM Press, 2015: 448-456.
[22]
WILLIAMSON D F, PARKER R A, KENDRICK J S. The box plot: a simple visual method to interpret data[J]. Annals of Internal Medicine, 1989, 110(11): 916-921. DOI:10.7326/0003-4819-110-11-916
[23]
DAVIS T A, HU Y F. The university of Florida sparse matrix collection[J]. ACM Transactions on Mathematical Software, 2011, 38(1): 1-25.
[24]
BOISVERT R F, POZO R, REMINGTON K A. The matrix market exchange formats[EB/OL]. [2020-11-15]. https://www.researchgate.net/publication/213880672_The_Matrix_Market_Exchange_Format_Initial_Design.