CN106547723B - 一种预测稀疏矩阵运算能耗的方法 - Google Patents
一种预测稀疏矩阵运算能耗的方法 Download PDFInfo
- Publication number
- CN106547723B CN106547723B CN201510609130.XA CN201510609130A CN106547723B CN 106547723 B CN106547723 B CN 106547723B CN 201510609130 A CN201510609130 A CN 201510609130A CN 106547723 B CN106547723 B CN 106547723B
- Authority
- CN
- China
- Prior art keywords
- sparse matrix
- matrix
- energy consumption
- sample
- sparse
- 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.)
- Active
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 130
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000005265 energy consumption Methods 0.000 title claims abstract description 44
- 238000013468 resource allocation Methods 0.000 claims abstract description 15
- 238000012417 linear regression Methods 0.000 claims abstract description 13
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000003491 array Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 claims 1
- 230000008520 organization Effects 0.000 claims 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
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,其中y表示计算性能,x表示计算密度,有N个样本稀疏矩阵,对于样本中这N组计算密度和计算性能的值,采用最小二乘法求出a和b,进而得到回归方程;
(4)对于一个给定的稀疏矩阵,首先根据特征值判断其所属类别,该类别的资源最优分配情况作为该稀疏矩阵能耗性能最优时的资源分配;
(5)在该类别中找出与该矩阵相似度最高的样本矩阵,其能效值作为待预测矩阵的近似能效值,其执行稀疏矩阵运算时的缓存缺失次数作为待预测矩阵的近似缓存缺失次数。浮点操作次数可根据该稀疏矩阵计算得到,进而计算出该矩阵的计算密度;
(6)根据计算密度和计算性能的线性回归方程,可预测出该矩阵的浮点计算能力,通过能效公式即可算出能耗值。
本发明与现有技术相比的有益效果:
发明的一种预测稀疏矩阵运算能耗的方法,将系统运算过程中的能耗作为稀疏矩阵运算的性能指标之一,运算过程中采用能效最大的资源分配,能够提升稀疏矩阵运算的性能,并节省能耗。
发明的一种预测稀疏矩阵运算能耗的方法,一开始使用基于机器学习的层次聚类法能够将样本中具有相似特征值的稀疏矩阵归为一类,并作为判断待预测矩阵所属类别的判别依据,具有自学习的特点。
发明的一种预测稀疏矩阵运算能耗的方法,将稀疏矩阵运算的计算密度与计算性能结合起来,考虑到稀疏矩阵特征值和机器特性的影响,针对不同稀疏矩阵、运算内核和平台具有适应性。
附图说明
图1为本发明预测稀疏矩阵运算能耗的流程图
图2为本发明层次聚类的流程图
具体实施方式
下面结合附图和实施方法对本发明做进一步的详细说明。
如图1所示,本发明中预测稀疏矩阵运算能耗的过程包括以下步骤:
步骤一、根据样本矩阵的特征值进行层次聚类,在各个类中找出能效值最大的样本矩阵,将其资源分配作为该类别能耗性能最优的资源分配情况。
其中,稀疏矩阵非零元素分布的特征值包括:稀疏矩阵规模,非零元素总数,对角线、上三角、下三角非零元素个数,平均每行、每列非零元素个数,非零元素最多、最少的列标和行标以及对应的元素个数。
能效的计算公式是:
其中V表示能效,其含义是单位能耗带来的计算性能。
步骤二、建立样本矩阵计算密度和计算性能的线性回归模型:假设计算密度与计算性能的线性回归方程为y=a·x+b,其中x为计算密度,y为计算性能,有N个样本稀疏矩阵,对应着N组计算密度和计算性能的值,采用最小二乘法求出a和b,进而得到回归方程。
样本中计算密度的值能通过计算得到,其公式为:
AI=FLOPs/(BYTES+cache misses*cache size) (2)
其中AI表示计算密度,通过计算得到;FLOPs表示浮点操作次数,通过测量硬件得到;BYTES为算法的访存量,通过计算得到;cache misses表示缓存缺失次数,通过硬件计数器获得;cache size表示缓存大小。
算法访存量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)与待预测矩阵距离最小的类别为其所属类别。
步骤四、在该类别中找出与该矩阵相似度最高的样本矩阵,其能效值作为待预测矩阵的近似能效值,其执行稀疏矩阵运算时的cachemisses作为待预测矩阵的近似cachemisses。浮点操作次数可根据稀疏矩阵和内核计算得到,进而算出计算密度。
计算浮点操作次数的过程为:假设稀疏矩阵为n×n的规模大小,运算中用到p个处理器,以稀疏矩阵向量乘法运算内核为例,每个处理器的浮点运算次数为:
根据处理器的个数可知浮点操作总次数。
步骤五、根据计算密度和计算性能的线性回归方程,可预测出该稀疏矩阵运算过程中的浮点计算性能。
步骤六、根据能效公式和浮点计算性能计算出能耗值。
如图2所示,本发明中对样本矩阵进行层次聚类的过程包括以下步骤:
步骤一、对于N个样本矩阵,初始化时一个样本为一个类。
步骤二、计算任意两个样本矩阵特征值构成的特征向量之间的欧式距离,当距离小于某一阈值时,将这两个样本归为一类。
步骤三、当所有类之间的距离都大于阈值时,聚类结束,否则重复步骤二。
Claims (13)
1.一种预测稀疏矩阵运算能耗的方法,其特征在于包括如下步骤:
1)将样本矩阵进行层次聚类,过程为:初始化时一个样本为一个类,计算任意两个样本矩阵之间的距离,当距离小于某一阈值时,将这两个样本归为一类;
2)在各个类中找出能效值最大的样本矩阵,其资源分配作为该类别能耗性能最优的分配情况;
3)建立样本矩阵计算密度和计算性能的线性回归模型:设计算密度与计算性能的线性回归方程为y=a·x+b,有N个样本稀疏矩阵,其中y表示计算性能,x表示计算密度,对于样本中这N组计算密度和计算性能的值,采用最小二乘法求出a和b,进而得到回归方程;
4)对于一个给定的稀疏矩阵,首先根据特征值判断其所属类别,该类别的最优资源分配情况作为该稀疏矩阵运算时能耗性能最优的资源分配;
5)在该类别中找出与该矩阵相似度最高的样本矩阵,其能效值作为待预测矩阵的近似能效值,其执行稀疏矩阵运算时的缓存缺失次数作为待预测矩阵的近似缓存缺失次数,根据稀疏矩阵及运算内核计算浮点操作次数,进而计算出计算密度;
6)根据计算密度和计算性能的线性回归模型,可预测出稀疏矩阵运算的浮点计算性能,通过能效公式即可算出能耗值。
2.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤1中,样本矩阵的距离为稀疏矩阵非零元素分布的特征值构成的特征向量之间的欧式距离。
3.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤2中,能效的定义是:
其中V表示能效,其含义是单位能耗带来的计算性能。
4.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤2中,资源分配是指:执行稀疏矩阵运算时根据任务计算量及稀疏矩阵非零元素的分布情况分配的结点数、进程数和线程数。
5.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤2中,能耗性能最优是指:每单位能耗带来的计算性能值最大。
6.根据权利要求1所述的预测稀疏矩阵运算能耗的方法,其特征在于:所述步骤3中,计算密度的计算公式为:
AI=FLOPs/(BYTES+cachemisses*cachesize) (2)
其中AI表示计算密度,通过计算得到;FLOPs表示浮点操作次数,通过测量硬件得到;BYTES为算法的访存量,通过计算得到;cachemisses表示缓存缺失次数,通过硬件计数器获得;cachesize表示缓存大小。
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)
其中nrows,ncols分别表示源向量和目标向量中元素的个数。
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 CN106547723A (zh) | 2017-03-29 |
CN106547723B true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10725740B2 (en) * | 2017-08-31 | 2020-07-28 | Qualcomm Incorporated | Providing efficient multiplication of sparse matrices in matrix-processor-based devices |
JP7315415B2 (ja) * | 2019-08-28 | 2023-07-26 | 株式会社日立製作所 | エレベータ分析システム及びエレベータ分析システムの設計方法 |
-
2015
- 2015-09-23 CN CN201510609130.XA patent/CN106547723B/zh active Active
Non-Patent Citations (10)
Title |
---|
FPGA矩阵计算并行算法与结构;邬贵明;《中国博士学位论文全文数据库-信息科技辑》;20120415(第04期);第I137-2页 * |
Implementing Sparse Matrix-Vector Multiplication on Throughput-Oriented Processors;Nathan Bell等;《Conference on High Performance Computing Networking》;20091120;第1-11页 * |
Model-driven Autotuning of Sparse Matrix-Vector Multiply on GPUs;Jee W. Choi等;《Acm Sigplan Symposium on Principles & Practice of Parallel Programming》;20101231;第45卷(第5期);第115-126页 * |
一种基于FPGA的稀疏矩阵高效乘法器;刘世培等;《微电子学》;20130430;第43卷(第2期);第153-157页 * |
基于GPU的并行计算性能分析模型;王卓薇;《计算机科学》;20140131;第41卷(第1期);第31-38页 * |
基于GPU的稀疏矩阵运算优化研究;梁添;《中国优秀硕士学位论文全文数据库-基础科学辑》;20130715(第07期);第A002-4页 * |
基于性能计数器的多核处理器功耗估算;史鸣飞;《中国优秀硕士学位论文全文数据库-信息科技辑》;20101015(第10期);第I137-11页 * |
基于概率稀疏随机矩阵的压缩数据收集方法;张波等;《电子与信息学报》;20140430;第36卷(第4期);第834-839页 * |
大规模稀疏矩阵的主特征向量计算优化方法;王伟等;《计算机科学与探索》;20121231;第6卷(第2期);第118-124页 * |
静态程序切片的GPU通用计算功耗预测模型;王海峰等;《软件学报》;20130831;第24卷(第8期);第1746-1760页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106547723A (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399222B (zh) | Gpu集群深度学习任务并行化方法、装置及电子设备 | |
Zhang et al. | Sparch: Efficient architecture for sparse matrix multiplication | |
US10459876B2 (en) | Performing concurrent operations in a processing element | |
CN107608715A (zh) | 用于执行人工神经网络正向运算的装置及方法 | |
CN106570250A (zh) | 面向电力大数据的微电网短期负荷预测方法 | |
CN105354595A (zh) | 一种鲁棒视觉图像分类方法及系统 | |
CN107657599A (zh) | 基于混合粒度划分和动态负载分配的遥感图像融合系统并行实现方法 | |
CN111427750A (zh) | 一种计算机平台的gpu功耗估计方法、系统及介质 | |
CN105243394A (zh) | 一种类不平衡对分类模型性能影响程度的评价方法 | |
CN106547723B (zh) | 一种预测稀疏矩阵运算能耗的方法 | |
Zhang et al. | Enabling highly efficient capsule networks processing through a PIM-based architecture design | |
CN107908536A (zh) | Cpu‑gpu异构环境中对gpu应用的性能评估方法及系统 | |
Zhou et al. | Model-architecture co-design for high performance temporal gnn inference on fpga | |
CN103677960A (zh) | 一种能耗约束的虚拟机博弈重放置方法 | |
Ying et al. | Processor free time forecasting based on convolutional neural network | |
CN108320027A (zh) | 一种基于量子计算的大数据处理方法 | |
Wang et al. | Evaluating computing performance of deep neural network models with different backbones on IoT-based edge and cloud platforms | |
Zong-ling et al. | The design of lightweight and multi parallel CNN accelerator based on FPGA | |
CN104504303A (zh) | 基于cpu+gpu异构系统的序列比对方法 | |
CN108108251A (zh) | 一种基于MPI并行化的参考点k近邻分类方法 | |
Tani et al. | Bulk execution of oblivious algorithms on the unified memory machine, with GPU implementation | |
CN104123452B (zh) | 基于模糊决策的gpu负载综合评判方法 | |
CN107665291B (zh) | 一种基于云计算平台Spark的变异检测方法 | |
Jooya et al. | Efficient design space exploration of GPGPU architectures | |
CN107368375A (zh) | 一种基于MapReduce的K-means聚类算法FPGA加速系统 |
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 |