CN106547723A - 一种预测稀疏矩阵运算能耗的方法 - Google Patents
一种预测稀疏矩阵运算能耗的方法 Download PDFInfo
- Publication number
- CN106547723A CN106547723A CN201510609130.XA CN201510609130A CN106547723A CN 106547723 A CN106547723 A CN 106547723A CN 201510609130 A CN201510609130 A CN 201510609130A CN 106547723 A CN106547723 A CN 106547723A
- Authority
- CN
- China
- Prior art keywords
- sparse matrix
- matrix
- energy consumption
- computing
- performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种预测稀疏矩阵运算能耗的方法。该方法首先根据稀疏矩阵非零元素分布的特征将样本矩阵进行层次聚类。其次,将各个类中能效值最大的样本矩阵的资源分配作为该类别的最优资源分配情况。最后对样本矩阵的计算密度和计算性能建立线性回归模型,利用模型对稀疏矩阵运算的计算性能进行预测,进而根据性能和能效的关系预测出稀疏矩阵运算的能耗。本发明基于知识发现预测稀疏矩阵运算能耗的方法,充分考虑到稀疏矩阵特征值和资源分配对计算性能与能耗的影响。通过层次聚类将样本矩阵划分为不同的类别使得预测过程具有自学习的特征。
Description
技术领域
本发明涉及一种预测稀疏矩阵运算最优资源分配及其能耗的方法,属于高性能数值计算领域。
背景技术
稀疏矩阵线性代数运算是高性能计算中的常见问题,广泛地存在于各类工程实践。通常情况下解稀疏矩阵,需要大量的计算资源。
稀疏矩阵是指矩阵A的元素大部分是零,非零元素所占比例非常小。稀疏矩阵存储时,除了存储非零元素外,还要记录非零元素在矩阵中所占的位置。通常的存储方法是CSR(compressed sparse row)方法,需要存储稀疏矩阵A的每个非零元素的值,非零元素所在的列和每行第一个非零元素的索引,共三个数组(其中A是m×n矩阵,有nz个非零元素),如下所示:
Val[nz],记录每个非零元素的值;
Col[nz],记录每个非零元素所在的列;
Ptr[m+1],记录每行的第一个非零元素在数组Col[nz]的索引。
基于CPU计算平台的稀疏矩阵运算性能受限于存储访问和数据重用,部分研究工作是针对稀疏矩阵向量乘法运算的稀疏矩阵存储格式进行优化。在稀疏矩阵向量乘法的优化方面,前人已经做了很多工作。如OSKI软件包通过采用寄存器分块和cache分块技术,使向量值可以得到重用,改变内存访问顺序,提高了浮点计算与存储访问的比值,并且采用启发式算法,自适应选择最优分块大小,进而提高性能。
当稀疏线性方程规模很大的情况下,在CPU上进行迭代法求解时耗时很长,进而会消耗更多的能耗。
目前,在通用计算领域对稀疏矩阵的运算研究较少,已有的研究主要是实现稀疏矩阵和向量之间的乘法运算。针对稀疏矩阵向量乘法的优化工作虽然很多,但都没有针对不同的稀疏矩阵、计算内核和平台对运算过程中的最优资源分配做出准确的判断,没有在其能耗方面进行预测,并且其性能分析都只是基于计算性能或是时间等,现在更有必要考虑系统在运算过程中的能耗,这些信息对于今后节省集群能耗相关研究有着重要作用,本发明主要是解决这些问题。
发明内容
本发明主要提出一种预测稀疏矩阵运算能耗的方法,根据稀疏矩阵的特征值将样本矩阵进行层次聚类,并判断待预测稀疏矩阵的所属类别,确定资源最优分配。本发明所公开的方法通过知识发现,能够寻找出针对不同稀疏矩阵能效最大时的最优资源分配,进而预测出在该资源分配情况下稀疏矩阵运算的能耗,具有自学习的特性。
本发明提供的预测稀疏矩阵运算能耗的具体步骤如下:
(1)将样本矩阵进行层次聚类,过程为:初始化一个样本为一个类,计算任意两个样本矩阵之间的距离,当距离小于某一阈值时,将这两个样本归为一类;
(2)在各个类中找出能效值最大的样本矩阵,其资源分配作为该类别能耗性能最优的分配情况;
(3)建立样本矩阵计算密度和计算性能的线性回归模型:假设计算密度与计算性能的线性回归方程为y=a·x+b,有N个样本稀疏矩阵,对于样本中这N组计算密度和计算性能的值,采用最小二乘法求出a和b,进而得到回归方程;
(4)对于一个给定的稀疏矩阵,首先根据特征值判断其所属类别,该类别的资源最优分配情况作为该稀疏矩阵能耗性能最优时的资源分配;
(5)在该类别中找出与该矩阵相似度最高的样本矩阵,其能效值作为待预测矩阵的近似能效值,其执行稀疏矩阵运算时的cache misses作为待预测矩阵的近似cache misses。浮点操作数可根据该稀疏矩阵计算得到,进而计算出该矩阵的计算密度;
(6)根据计算密度和计算性能的线性回归方程,可预测出该矩阵的浮点计算能力,通过能效公式即可算出能耗值。
本发明与现有技术相比的有益效果:
发明的一种预测稀疏矩阵运算能耗的方法,将系统运算过程中的能耗作为稀疏矩阵运算的性能指标之一,运算过程中采用能效最大的资源分配,能够提升稀疏矩阵运算的性能,并节省能耗。
发明的一种预测稀疏矩阵运算能耗的方法,一开始使用基于机器学习的层次聚类法能够将样本中具有相似特征值的稀疏矩阵归为一类,并作为判断待预测矩阵所属类别的判别依据,具有自学习的特点。
发明的一种预测稀疏矩阵运算能耗的方法,将稀疏矩阵运算的计算密度与计算性能结合起来,考虑到稀疏矩阵特征值和机器特性的影响,针对不同稀疏矩阵、运算内核和平台具有适应性。
附图说明
图1为本发明预测稀疏矩阵运算能耗的流程图
图2为本发明层次聚类的流程图
具体实施方式
下面结合附图和实施方法对本发明做进一步的详细说明。
如图1所示,本发明中预测稀疏矩阵运算能耗的过程包括以下步骤:
步骤一、根据样本矩阵的特征值进行层次聚类,在各个类中找出能效值最大的样本矩阵,将其资源分配作为该类别能耗性能最优的资源分配情况。
其中,稀疏矩阵非零元素分布的特征值包括:稀疏矩阵规模,非零元素总数,对角线、上三角、下三角非零元素个数,平均每行、每列非零元素个数,非零元素最多、最少的列标和行标以及对应的元素个数。
能效的计算公式是:
表示单位能耗带来的计算性能。
步骤二、建立样本矩阵计算密度和计算性能的线性回归模型:假设计算密度与计算性能的线性回归方程为y=a·x+b,其中x为计算密度,y为计算性能,有N个样本稀疏矩阵,对应着N组计算密度和计算性能的值,采用最小二乘法求出a和b,进而得到回归方程。
样本中计算密度的值能通过计算得到,其公式为:
AI=FLOPs/(BYTES+cache misses*cache size) (2)
其中分子是浮点操作次数,通过测量硬件得到,BYTES为算法的访存量,计算得到,cache misses通过硬件计数器获得。
BYTES算法访存量的计算方法为:在运算过程中(稀疏矩阵存储为CSR结构),一个稀疏矩阵的算法访存量是csr_bytes=n×12+(m+1)×4,其中n是稀疏矩阵非零元素的个数,m为稀疏矩阵行数。其中,非零元素存储为double型,每个单位有8byte,索引存储为int型,每个单位有4byte。
稀疏矩阵运算的算法访存量与计算内核相关,以稀疏矩阵向量乘法运算内核为例,其算法访存量为:
csr_bytes+vectors_bytes (3)
其中vectors_bytes是源向量和目标向量的访存量,计算方法为:
vectors_bytes=(nrows+ncols)×8 (4)
nrows,ncols分别表示源向量和目标向量中元素的个数。计算性能可以通过硬件计数器获得。
步骤三、对于一个给定的稀疏矩阵,判断其所属类别。该类别的资源最优分配情况作为该稀疏矩阵能耗性能最优时的资源分配。
判断稀疏矩阵所属类别的具体过程为:
(1)将每个类中心的样本矩阵、待预测矩阵分别用特征向量表示;
(2)分别计算待预测矩阵与每个类中心样本矩阵的特征向量的欧式距离;
(3)与待预测矩阵距离最小的类别为其所属类别。
步骤四、在该类别中找出与该矩阵相似度最高的样本矩阵,其能效值作为待预测矩阵的近似能效值,其执行稀疏矩阵运算时的cache misses作为待预测矩阵的近似cache misses。浮点操作数可根据稀疏矩阵和内核计算得到,进而算出计算密度。
计算浮点操作次数的过程为:假设稀疏矩阵为n×n的规模大小,运算中用到p个处理器,以稀疏矩阵向量乘法运算内核为例,每个处理器的浮点运算次数为:
根据处理器的个数可知浮点操作总次数。
步骤五、根据计算密度和计算性能的线性回归方程,可预测出该稀疏矩阵运算过程中的浮点计算性能。
步骤六、根据能效公式和浮点计算性能计算出能耗值。
如图2所示,本发明中对样本矩阵进行层次聚类的过程包括以下步骤:
步骤一、对于N个样本矩阵,初始化时一个样本为一个类。
步骤二、计算任意两个样本矩阵特征值构成的特征向量之间的欧式距离,当距离小于某一阈值时,将这两个样本归为一类。
步骤三、当所有类之间的距离都大于阈值时,聚类结束,否则重复步骤二。
Claims (13)
1.一种预测稀疏矩阵运算能耗的方法,其特征在于包括如下步骤:
1)将样本矩阵进行层次聚类,过程为:初始化时一个样本为一个类,计算任意两个样本矩阵之间的距离,当距离小于某一阈值时,将这两个样本归为一类;
2)在各个类中找出能效值最大的样本矩阵,其资源分配作为该类别能耗性能最优的分配情况;
3)建立样本矩阵计算密度和计算性能的线性回归模型:设计算密度与计算性能的线性回归方程为y=a·x+b,有N个样本稀疏矩阵,对于样本中这N组计算密度和计算性能的值,采用最小二乘法求出a和b,进而得到回归方程;
4)对于一个给定的稀疏矩阵,首先根据特征值判断其所属类别,该类别的最优资源分配情况作为该稀疏矩阵运算时能耗性能最优的资源分配;
5)在该类别中找出与该矩阵相似度最高的样本矩阵,其能效值作为待预测矩阵的近似能效值,其执行稀疏矩阵运算时的cachemisses作为待预测矩阵的近似cachemisses,根据稀疏矩阵及运算内核计算浮点操作数,进而计算出计算密度;
6)根据计算密度和计算性能的线性回归模型,可预测出稀疏矩阵运算的浮点计算性能,通过能效公式即可算出能耗值。
2.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤1中,样本矩阵的距离为稀疏矩阵非零元素分布的特征值构成的特征向量之间的欧式距离。
3.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤2中,能效的定义是:
表示单位能耗带来的计算性能。
4.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤2中,资源分配是指:执行稀疏矩阵运算时根据任务计算量及稀疏矩阵非零元素的分布情况分配的结点数、进程数和线程数。
5.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤2中,能耗性能最优是指:每单位能耗带来的计算性能值最大。
6.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤3中,计算密度的计算公式为:
AI=FLOPs/(BYTES+cachemisses*cachesize) (2)
其中分子是浮点操作次数,通过测量硬件得到,BYTES为算法的访存量,通过计算得到,cachemisses通过硬件计数器获得。
7.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤3中,计算密度和计算性能的线性关系与机器性能有关,在不同的机器上需要重新建立两者的线性回归模型。
8.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤4中,根据稀疏矩阵特征值判断其所属类别的具体过程为:
1)将每个类中心的样本矩阵,和待预测矩阵的特征值分别用特征向量表示;
2)分别计算待预测矩阵与每个类中心样本矩阵的特征向量的欧式距离;
3)与待预测矩阵距离最小的类别为其所属类别。
9.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤5中,计算浮点操作次数的过程为:假设稀疏矩阵为n×n的规模大小,运 算中使用p个处理器,以稀疏矩阵向量乘法的运算内核为例,每个处理器的浮点运算次数为:
根据处理器的个数可知浮点操作总次数。
10.根据权利要求2所述的预测稀疏矩阵运算能耗的方法,其特征在于:稀疏矩阵非零元素分布的特征值包括:稀疏矩阵规模,非零元素总数,对角线、上三角、下三角非零元素个数,平均每行、每列非零元素个数,非零元素最多、最少的列标和行标以及对应的元素个数。
11.根据权利要求4所述的预测稀疏矩阵运算能耗的方法,其特征在于:任务计算量是指在不同的稀疏矩阵和运算内核情况下,需要执行的浮点运算量。
12.根据权利要求6所述的预测稀疏矩阵运算能耗的方法,其特征在于:以稀疏矩阵向量乘法运算内核为例(稀疏矩阵为CSR存储结构),BYTES算法访存量的计算方法为:
csr_bytes+vectors_bytes (4)
其中csr_bytes是规模为n×m的稀疏矩阵的访存量,计算方法为:
csr_bytes=n×12+(m+1)×4 (5)
vectors_bytes是源向量和目标向量的访存量,计算方法为:
vectors_bytes=(nrows+ncols)×8 (6) 。
13.根据权利要求12所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述CSR存储结构需要存储稀疏矩阵的每个非零元素的值,为double型,每个单位有8byte,非零元素所在的列和每行第一个非零元素的索引,为int型,每个单位有4byte,共三个数组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510609130.XA CN106547723B (zh) | 2015-09-23 | 2015-09-23 | 一种预测稀疏矩阵运算能耗的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510609130.XA CN106547723B (zh) | 2015-09-23 | 2015-09-23 | 一种预测稀疏矩阵运算能耗的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547723A true CN106547723A (zh) | 2017-03-29 |
CN106547723B CN106547723B (zh) | 2019-04-05 |
Family
ID=58365440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510609130.XA Active CN106547723B (zh) | 2015-09-23 | 2015-09-23 | 一种预测稀疏矩阵运算能耗的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106547723B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113891846A (zh) * | 2019-08-28 | 2022-01-04 | 株式会社日立制作所 | 电梯分析系统及电梯分析系统的设计方法 |
TWI770261B (zh) * | 2017-08-31 | 2022-07-11 | 美商高通公司 | 矩陣處理器為基礎之裝置及在其中提供疏矩陣之有效乘法之方法 |
-
2015
- 2015-09-23 CN CN201510609130.XA patent/CN106547723B/zh active Active
Non-Patent Citations (10)
Title |
---|
JEE W. CHOI等: "Model-driven Autotuning of Sparse Matrix-Vector Multiply on GPUs", 《ACM SIGPLAN SYMPOSIUM ON PRINCIPLES & PRACTICE OF PARALLEL PROGRAMMING》 * |
NATHAN BELL等: "Implementing Sparse Matrix-Vector Multiplication on Throughput-Oriented Processors", 《CONFERENCE ON HIGH PERFORMANCE COMPUTING NETWORKING》 * |
刘世培等: "一种基于FPGA的稀疏矩阵高效乘法器", 《微电子学》 * |
史鸣飞: "基于性能计数器的多核处理器功耗估算", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
张波等: "基于概率稀疏随机矩阵的压缩数据收集方法", 《电子与信息学报》 * |
梁添: "基于GPU的稀疏矩阵运算优化研究", 《中国优秀硕士学位论文全文数据库-基础科学辑》 * |
王伟等: "大规模稀疏矩阵的主特征向量计算优化方法", 《计算机科学与探索》 * |
王卓薇: "基于GPU的并行计算性能分析模型", 《计算机科学》 * |
王海峰等: "静态程序切片的GPU通用计算功耗预测模型", 《软件学报》 * |
邬贵明: "FPGA矩阵计算并行算法与结构", 《中国博士学位论文全文数据库-信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI770261B (zh) * | 2017-08-31 | 2022-07-11 | 美商高通公司 | 矩陣處理器為基礎之裝置及在其中提供疏矩陣之有效乘法之方法 |
CN113891846A (zh) * | 2019-08-28 | 2022-01-04 | 株式会社日立制作所 | 电梯分析系统及电梯分析系统的设计方法 |
CN113891846B (zh) * | 2019-08-28 | 2023-09-15 | 株式会社日立制作所 | 电梯分析系统及电梯分析系统的设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106547723B (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3533003B1 (en) | Exploiting input data sparsity in neural network compute units | |
CN103336758B (zh) | 一种采用带有局部信息的压缩稀疏行的稀疏矩阵存储方法及基于该方法的SpMV实现方法 | |
US7373480B2 (en) | Apparatus and method for determining stack distance of running software for estimating cache miss rates based upon contents of a hash table | |
US7366871B2 (en) | Apparatus and method for determining stack distance including spatial locality of running software for estimating cache miss rates based upon contents of a hash table | |
CN106599585B (zh) | 基于并行蜂群算法的水文模型参数优化方法及装置 | |
CN103365731B (zh) | 一种降低处理器软错误率的方法和系统 | |
CN111427750A (zh) | 一种计算机平台的gpu功耗估计方法、系统及介质 | |
Zhou et al. | Model-architecture co-design for high performance temporal gnn inference on fpga | |
JP3792879B2 (ja) | 並列実行システム | |
Wang et al. | Enabling latency-aware data initialization for integrated CPU/GPU heterogeneous platform | |
Vehtari et al. | Package ‘loo’ | |
CN106547723A (zh) | 一种预测稀疏矩阵运算能耗的方法 | |
Ji et al. | An artificial neural network model of LRU-cache misses on out-of-order embedded processors | |
Mirsoleimani et al. | A two-tier design space exploration algorithm to construct a gpu performance predictor | |
Yuan et al. | Modeling the locality in graph traversals | |
CN107665291B (zh) | 一种基于云计算平台Spark的变异检测方法 | |
Jooya et al. | Efficient design space exploration of GPGPU architectures | |
CN105760270B (zh) | 一种能耗估算的方法及装置 | |
Zhan et al. | Branch-aware data variable allocation for energy optimization of hybrid SRAM+ NVM SPM☆ | |
Alba et al. | Systolic optimization on GPU platforms | |
Iskandar et al. | Near-data-processing architectures performance estimation and ranking using machine learning predictors | |
Liu et al. | Mathematical Verification and Analysis of CUDA based Parallel Matrix Multiplication | |
CN114493078A (zh) | 一种能源电力产业链的风险预警方法、系统、设备和介质 | |
CN102073798B (zh) | 基于多核处理器的核糖核酸次级结构并行预测方法 | |
Papalekas et al. | Near data processing performance improvement prediction via metric-based workload classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |