CN118132911A - 图计算中稀疏矩阵向量乘的自适应方法与装置 - Google Patents

图计算中稀疏矩阵向量乘的自适应方法与装置 Download PDF

Info

Publication number
CN118132911A
CN118132911A CN202410089206.XA CN202410089206A CN118132911A CN 118132911 A CN118132911 A CN 118132911A CN 202410089206 A CN202410089206 A CN 202410089206A CN 118132911 A CN118132911 A CN 118132911A
Authority
CN
China
Prior art keywords
sparse
matrix
vector
sparse matrix
features
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.)
Pending
Application number
CN202410089206.XA
Other languages
English (en)
Inventor
肖国庆
周涛
李肯立
陈玥丹
段明星
唐卓
阳王东
刘楚波
周旭
罗辉章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Research Institute Of Hunan University
Hunan University
Original Assignee
Shenzhen Research Institute Of Hunan University
Hunan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Research Institute Of Hunan University, Hunan University filed Critical Shenzhen Research Institute Of Hunan University
Priority to CN202410089206.XA priority Critical patent/CN118132911A/zh
Publication of CN118132911A publication Critical patent/CN118132911A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2136Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on sparsity criteria, e.g. with an overcomplete basis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本申请涉及一种图计算中稀疏矩阵向量乘的自适应方法与装置,其中,方法包括:获取图计算中稀疏矩阵,并提取稀疏矩阵的稀疏特征;获取输入的稀疏向量,提取稀疏向量特征;根据稀疏矩阵以及稀疏向量特征,采用预设决策树模型进行最优算法选择;根据稀疏矩阵以及稀疏向量特征,并采用选择的最优算法进行计算,迭代返回获取图计算中稀疏矩阵,并提取稀疏矩阵的稀疏特征的步骤,直至满足预设迭代结束条件;决策树模型在训练时构建稀疏矩阵向量乘候选计算内核列表,在图算法的迭代过程中,选择最优算法,同时针对输入的稀疏矩阵分别获取稀疏特征和稀疏向量特征,确保预设决策树模型准确预测,因此,整个方案可以实现图计算中稀疏矩阵向量乘的自适应处理。

Description

图计算中稀疏矩阵向量乘的自适应方法与装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种图计算中稀疏矩阵向量乘的自适应方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
稀疏矩阵与向量乘法是一种广泛应用于科学计算和各种工程领域的关键算子。例如数值天气预报、辐射流体动力学、核反应堆模拟等许多科学计算问题都需要求解偏微分方程,为了提高求解速度,可以将这些偏微分方程离散为大规模稀疏线性方程组。稀疏矩阵与向量乘法是求解线性稀疏方程组的重要基元。并且在机器学习和深度学习的训练和相关应用中,在推荐系统中,在许多重要的图算法中,如PageRank、广度优先搜索(BFS)、二分图匹配中,大规模稀疏矩阵是常见的数据源,稀疏矩阵与向量乘法也是常见的数值计算内核。
在传统的稀疏矩阵与向量乘法中,输入向量是密集的,但近年来,在越来越多的机器学习和大规模图计算应用中,稀疏矩阵与向量乘法的输入向量变得稀疏,特别是在一些图算法中,输入向量的稀疏性在计算过程中也会发生变化。
在图计算中,稀疏矩阵与向量乘法中的矩阵来自图的邻接矩阵,而向量是迭代中当前活动节点的集合。而现实世界的图有不同的大小和节点分布,使得图的邻接矩阵的大小和稀疏密度非常不同。综上所述,对于这些差异巨大的输入数据,甚至迭代中向量稀疏性的改变也会导致一些内核的性能损失。因此,如何提供一种图计算中稀疏矩阵向量乘的自适应方案是目前急需解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种图计算中稀疏矩阵向量乘的自适应方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种图计算中稀疏矩阵向量乘的自适应方法。所述方法包括:
获取图计算中稀疏矩阵,并提取所述稀疏矩阵的稀疏特征;
获取输入的稀疏向量,提取稀疏向量特征;
根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择;
根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件。
其中,所述预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于所述训练数据集进行决策树模型的训练。
在其中一个实施例中,所述构建稀疏矩阵向量乘候选计算内核列表包括:
基于计算模式、图数据特征、位数组压缩和串并行结合算法构建多个稀疏矩阵向量乘内核,生成稀疏矩阵向量乘候选计算内核列表。
在其中一个实施例中,所述根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集包括;
根据所述稀疏矩阵向量乘候选计算内核列表,获取不同数据分布的矩阵;
针对所述不同数据分布的矩阵,计算矩阵的行列数据信息以及行列非零元分布的均值与方差,并计算不同输入稀疏向量;
根据性能测试结果选择最优算法,对矩阵特征和向量特征添加标签,并将添加标签后的数据分别生成训练数据集和验证数据集。
在其中一个实施例中,所述基于所述训练数据集进行决策树模型的训练包括:
根据所述训练数据集对决策树模型进行训练;
采用所述验证数据集对训练后的决策树模型进行验证,并根据模型精度和提取稀疏特征的开销对训练后的决策树模型形评估,筛选最优的决策树模型。
在其中一个实施例中,所述根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择包括:
将稀疏矩阵输入至预设决策树模型,判断稀疏矩阵类型;
若所述稀疏矩阵类型为幂律矩阵,则对所述稀疏矩阵进行重排序;
提取矩阵特征,若基于所述矩阵特征判定需要使用位数组压缩,则启动位数组压缩方法;
将稀疏向量特征输入至预设决策树模型,将稀疏矩阵和稀疏向量特征传输至具体算法选择器,根据输入来选择CSR(Compressed Sparse Row)格式、CSC(Compressed SparseColumn)格式、或CSCV(Compressed Sparse ColumnVector)格式。
在其中一个实施例中,所述根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件包括:
根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算;
迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤;
判断是否达到预设最大迭代次数;
若是,则结束,得到图计算结果;
若否,则返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤。
第二方面,本申请还提供了一种图计算中稀疏矩阵向量乘的自适应装置。
所述装置包括:
数据获取模块,用于获取图计算中稀疏矩阵,并提取所述稀疏矩阵的稀疏特征;
特征提取模块,用于获取输入的稀疏向量,提取稀疏向量特征;
算法选择模块,用于根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择;
迭代模块,用于根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件;
其中,所述预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于所述训练数据集进行决策树模型的训练。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取图计算中稀疏矩阵,并提取所述稀疏矩阵的稀疏特征;
获取输入的稀疏向量,提取稀疏向量特征;
根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择;
根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件;
其中,所述预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于所述训练数据集进行决策树模型的训练。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取图计算中稀疏矩阵,并提取所述稀疏矩阵的稀疏特征;
获取输入的稀疏向量,提取稀疏向量特征;
根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择;
根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件;
其中,所述预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于所述训练数据集进行决策树模型的训练。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取图计算中稀疏矩阵,并提取所述稀疏矩阵的稀疏特征;
获取输入的稀疏向量,提取稀疏向量特征;
根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择;
根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件;
其中,所述预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于所述训练数据集进行决策树模型的训练。
上述图计算中稀疏矩阵向量乘的自适应方法、装置、计算机设备、存储介质和计算机程序产品,获取图计算中稀疏矩阵,并提取稀疏矩阵的稀疏特征;获取输入的稀疏向量,提取稀疏向量特征;根据稀疏矩阵以及稀疏向量特征,采用预设决策树模型进行最优算法选择;根据稀疏矩阵以及稀疏向量特征,并采用选择的最优算法进行计算,迭代返回获取图计算中稀疏矩阵,并提取稀疏矩阵的稀疏特征的步骤,直至满足预设迭代结束条件;决策树模型在训练时构建稀疏矩阵向量乘候选计算内核列表,在图算法的迭代过程中,选择最优算法,同时针对输入的稀疏矩阵分别获取稀疏特征和稀疏向量特征,确保预设决策树模型准确预测,因此,整个方案可以实现图计算中稀疏矩阵向量乘的自适应处理。
附图说明
图1为一个实施例中图计算中稀疏矩阵向量乘的自适应方法的流程示意图;
图2为不同的机器学习模型的级联图;
图3为另一个实施例中稀疏矩阵向量乘的自适应方法的流程示意图;
图4为一个具体应用实例中稀疏矩阵向量乘的自适应方法的流程示意图;
图5为一个具体应用实例中稀疏矩阵向量乘的自适应方法的性能展示图;
图6为一个实施例中稀疏矩阵向量乘的自适应装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种图计算中稀疏矩阵向量乘的自适应方法,包括以下步骤:
S200:获取图计算中稀疏矩阵,并提取稀疏矩阵的稀疏特征。
稀疏矩阵是一种特殊类型的矩阵,其中大多数元素都是零。对于稀疏矩阵的处理,我们通常使用特殊的压缩格式来存储,从而节省存储空间和提高计算效率。提取稀疏矩阵的稀疏特征主要涉及对矩阵的非零元素的识别和处理。在这里,针对首先获取图计算中的稀疏矩阵,并且提取该稀疏矩阵的稀疏特征。具体来说,稀疏矩阵的稀疏特征主要包括矩阵行数、列数、非零元数量;矩阵所有行中最大非零元数量、最小非零元数量、平均非零元数量、非零元数量方差;矩阵所有列中最大非零元数量、最小非零元数量、平均非零元数量、非零元数量方差等。
S400:获取输入的稀疏向量,提取稀疏向量特征。
稀疏向量是指向量中只有少数元素非零,其余元素都为零。这种特性使得稀疏向量在存储和计算时可以大大节省空间和时间。在实际应用中,许多算法和数据表示都采用稀疏向量,以降低计算复杂度和提高效率。例如,文本挖掘中的词袋模型就是一种常见的稀疏向量表示,其中每个单词出现与否用一个零或非零的元素表示。此外,在机器学习和数据分析中,稀疏向量也被广泛应用于特征提取、降维和压缩等任务。通过保留稀疏向量,可以提取出数据中的重要特征,并去除噪声和冗余信息,从而提高算法的准确性和效率。具体来说,获取输入的稀疏向量并提取稀疏向量特征通常涉及以下几个步骤:数据预处理:首先,你需要对输入向量进行适当的预处理。这可能包括缩放、标准化或归一化,以及可能的特征选择或降维。稀疏编码:使用稀疏编码技术(如Lasso、Ridge Regression或k-SVD)对输入向量进行编码,以生成稀疏向量。这些算法会寻找一个能够以最小误差表示输入向量的稀疏向量。特征选择:从稀疏向量中选择具有较高非零值的特征。这些特征对应于输入向量中实际存在的特征。应用:将提取的稀疏特征应用于机器学习模型或算法中,进行进一步的分析和预测。这种方法的主要优点是它可以减少特征的数量,同时提高模型的解释性和性能。通过仅保留输入向量中的重要特征,可以减少噪声和冗余,从而提高模型的泛化能力。
S600:根据稀疏矩阵以及稀疏向量特征,采用预设决策树模型进行最优算法选择。
预设决策树模型是预先训练得到的决策树模型。具体来说,预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于训练数据集进行决策树模型的训练。稀疏矩阵向量乘候选计算内核列表中包含有多种不同的稀疏矩阵向量乘内核,根据这些稀疏矩阵向量乘候选计算内核列表进行相应的矩阵性能测试,构建训练数据集进行策略树模型的训练。在实际应用时,将稀疏矩阵以及稀疏向量特征输入至预设决策树模型进行算法选择,以自适应选择开销最小的最优算法。
S800:根据稀疏矩阵以及稀疏向量特征,并采用选择的最优算法进行计算,迭代返回获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件。
在图计算的迭代过程中循环执行上述S400~S600的步骤,直至满足迭代结束条件,得到图计算结果。具体来说,这里的迭代结束条件具体可以是达到最大迭代次数,然后再归集至迭代结束时对应的图计算结果数据。
上述图计算中稀疏矩阵向量乘的自适应方法,获取图计算中稀疏矩阵,并提取稀疏矩阵的稀疏特征;获取输入的稀疏向量,提取稀疏向量特征;根据稀疏矩阵以及稀疏向量特征,采用预设决策树模型进行最优算法选择;根据稀疏矩阵以及稀疏向量特征,并采用选择的最优算法进行计算,迭代返回获取图计算中稀疏矩阵,并提取稀疏矩阵的稀疏特征的步骤,直至满足预设迭代结束条件;决策树模型在训练时构建稀疏矩阵向量乘候选计算内核列表,在图算法的迭代过程中,选择最优算法,同时针对输入的稀疏矩阵分别获取稀疏特征和稀疏向量特征,确保预设决策树模型准确预测,因此,整个方案可以实现图计算中稀疏矩阵向量乘的自适应处理。
在其中一个实施例中,构建稀疏矩阵向量乘候选计算内核列表包括:
基于计算模式、图数据特征、位数组压缩和串并行结合算法构建多个稀疏矩阵向量乘内核,生成稀疏矩阵向量乘候选计算内核列表。
具体来说,可以从计算模式,图数据特征,位数组压缩和串并行结合算法出发,构建了九个不同的稀疏矩阵向量乘内核,然后基于这里得到的九个不同的稀疏矩阵向量乘内核,生成稀疏矩阵向量乘候选计算内核列表。
进一步来说,上述处理过程包括以下步骤:
S11、从数据访问模式出发,稀疏矩阵向量乘计算内核主要分为矩阵驱动的压缩稀疏行格式算法,以及向量驱动的压缩稀疏列格式算法、压缩稀疏列向量格式算法。以下详细介绍三种不同的矩阵存储格式算法。
矩阵驱动的压缩稀疏行格式算法,是矩阵内积算法。GPU上的线程一次计算矩阵的一行,并且根据矩阵中的行来访问向量元素,中间结果写入到结果向量时,没有写入冲突。该算法性能不随向量稀疏度的变化而变化。
向量驱动的压缩稀疏列格式算法,是矩阵外积算法。GPU上的线程一次计算向量的一个元素,并且根据向量的元素去访问矩阵列。因此可以通过判断向量元素是否为0来避免冗余计算。中间结果在写入到结果向量时会有写入冲突,要使用原子操作来避免。该算法性能随着输入向量越来越密集而会变差。
向量驱动的压缩稀疏列向量格式算法,是矩阵外籍算法。数据访问模式与计算模式跟S112中的算法相同,是通过预先扫描输入向量,来重组输入矩阵,减少矩阵中冗余的非零元,减少计算量,改善矩阵数据访问。该算法的预处理可以使用openmp来并行优化,当计算量较少时,也可以在CPU端使用串行的方式来计算。串并行的预处理和串并行的主计算相结合,就有四种算法。
S12、使用位数组索引能够压缩稀疏格式中的索引数组,从而减少数据传输量。因为压缩稀疏行格式的行索引数组和压缩稀疏列格式的列索引数组是严格升序,因此,可以将32位整形数组压缩为8位的位数组,压缩前数据的前32位存储为辅助索引数组。而辅助索引数组的大小远小于原数组大小。而位数组的空间占用是原数组的1/4。当将位数组和辅助索引数组传输到GPU端后,使用并行程序还原数据。
S13、结合S11和S12,则有使用位数组的压缩稀疏行格式;不使用位数组的压缩稀疏行格式;使用位数组的压缩稀疏列格式;不使用位数组的压缩稀疏列格式。而压缩稀疏列向量格式算法则根据串并行的预处理跟主计算阶段,分为四种不同的算法。
S14、而对于非零元分布极不均衡的幂律图,使用重排矩阵列的方式,将矩阵分割为稀疏部分和较密集部分,对较密集部分提供一种坐标格式进行计算。稀疏部分则与普通矩阵进行同样的处理。综上稀疏矩阵向量乘候选计算内核列表集成了九种计算内核。一共使用了8个不同的机器学习模型,其级联方式如图2所示,提取矩阵特征后,判断是否为幂律矩阵,是幂律矩阵就需要进行相应的分块预处理,幂律矩阵的稀疏部分与常规矩阵的处理方式相同,幂律矩阵的密集部分则主要使用压缩稀疏行,压缩稀疏列和坐标格式这三种算法。当使用压缩稀疏列向量格式时,则先预测预处理算法,再预测主计算算法。而在传输矩阵数据前,需要进行位数组算法的预测。
在其中一个实施例中,根据稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集包括;
步骤1:根据稀疏矩阵向量乘候选计算内核列表,获取不同数据分布的矩阵。
为了构建有效的训练数据集,需要对不同数据分布的矩阵都进行相应的性能测试。在这里,先根据稀疏矩阵向量乘候选计算内核列表,来获取不同数据分布的矩阵。
步骤2:针对不同数据分布的矩阵,计算矩阵的行列数据信息以及行列非零元分布的均值与方差,并计算不同输入稀疏向量。
在进行性能测试时,针对不同数据分布的矩阵需要先计算矩阵的行列数据信息以及行列非零元分布的均值和方差等等,再计算不同输入稀疏向量。
步骤3:根据性能测试结果选择最优算法,对矩阵特征和向量特征添加标签,并将添加标签后的数据分别生成训练数据集和验证数据集。
根据性能测试结果选择最优算法,为矩阵和向量特征加上标签。针对添加标签后的特征数据,按照一定的比例构建得到训练数据集和验证数据集,这里的一定比例具体可以为7:3、8:2、或9:1等。
在实际应用中,进行性能测试时,需要先计算矩阵的稀疏特征:包括矩阵行数、列数、非零元数量;矩阵所有行中最大非零元数量、最小非零元数量、平均非零元数量、非零元数量方差;矩阵所有列中最大非零元数量、最小非零元数量、平均非零元数量、非零元数量方差;再计算不同输入稀疏向量:包括向量非零元数量、向量稀疏度、由于输入向量导致的矩阵冗余计算的非零元数量及其在所有非零元中的占比。以上是构建训练数据集的特征,在性能测试时,输入向量是随机生成的,密度从0.001%到100%,而输入矩阵在迭代过程中保持不变。通过比较运行时间,得到最优算法,为训练数据集中的特征打上标签。再按7:3的比例划分训练和验证数据集。
在其中一个实施例中,基于训练数据集进行决策树模型的训练包括:
根据训练数据集对决策树模型进行训练;采用验证数据集对训练后的决策树模型进行验证,并根据模型精度和提取稀疏特征的开销对训练后的决策树模型形评估,筛选最优的决策树模型。
进一步的,在得到训练数据集和验证数据集之后,首先根据训练数据集对决策树模型进行训练,然后在采用验证数据集对训练后的决策树模型进行验证,最后对训练后的决策树模型形评估,筛选最优的决策树模型,在进行评估的过程中具体可以从模型精度和提取稀疏特征的开销两个维度进行。
如图3所示,在其中一个实施例中,S600包括:
S620:将稀疏矩阵输入至预设决策树模型,判断稀疏矩阵类型。
加载预设决策树模型,将稀疏矩阵输入至预设决策树模型中,判断稀疏矩阵类型。具体来说,这里的矩阵类型包括幂律矩阵和非幂律矩阵。若为幂律矩阵则进入S640;若为非幂律矩阵则直接进行S660。幂律矩阵是指一个矩阵,其元素按照幂律分布。幂律分布是一种常见的概率分布形式,其特点是概率随着事件发生次数的增加而指数级下降。在矩阵中,如果元素按照幂律分布,则矩阵中较大的元素将集中在矩阵的对角线附近,而远离对角线的元素将逐渐减小。这种分布形式在很多领域都有应用,例如在物理学、经济学和生物学等领域中都存在幂律分布的现象。
S640:若稀疏矩阵类型为幂律矩阵,则对稀疏矩阵进行重排序。
若稀疏矩阵类型为幂律矩阵,则需要对稀疏矩阵进行重排序,以提高数据局部性。
S660:提取矩阵特征,若基于矩阵特征判定需要使用位数组压缩,则启动位数组压缩方法。
针对处理后的稀疏矩阵,提取矩阵特征,并进一步判断是否需要使用位数组压缩,若需要,则在CPU端启动位数组压缩稀疏矩阵的索引数组,当索引数组被传输到GPU端后,进行解压缩。
S680:将稀疏向量特征输入至预设决策树模型,将稀疏矩阵和稀疏向量特征传输至具体算法选择器,根据输入来选择CSR格式、CSC格式、或CSCV格式。
另一方面,将稀疏向量特征输入至预设决策树模型,再将稀疏矩阵和稀疏向量特征传输至具体算法选择器,根据输入来选择采用CSR格式,CSC格式或者CSCV格式。其中CSCV格式需要额外的预处理,并且预处理与主计算程序可以采用串行和并行相结合的算法。
在其中一个实施例中,根据稀疏矩阵以及稀疏向量特征,并采用选择的最优算法进行计算,迭代返回获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件:
根据稀疏矩阵以及稀疏向量特征,并采用选择的最优算法进行计算;迭代返回获取输入的稀疏向量,提取稀疏向量特征的步骤;判断是否达到预设最大迭代次数;若是,则结束,得到图计算结果;若否,则返回获取输入的稀疏向量,提取稀疏向量特征的步骤。
每次迭代开始时,计算输入向量的特征,预设决策树模型根据矩阵和向量的特征进行最优算法预测,开始执行算法,并判断迭代是否结束。这里的预设迭代结束条件具体可以为满足预设最大迭代次数条件,或者预设标准计算精度条件等。
如图4所示,本申请图计算中稀疏矩阵向量乘的自适应方法具体包括以下步骤:
1、加载机器学习模型(预设决策树模型)并初始化;
2、读取稀疏矩阵,提取特征,启动预处理预测模型;
3、判断是否为幂律矩阵,若是,则进入重新排序以提高数据局部性后进入步骤4;若否,则直接进入步骤4;
4、判断是否使用位组数压缩,若是,则启动位数组压缩方法,然后进入步骤5,若否,则直接进入步骤5;
5、输入稀疏向量并提取特征;
6、具体算法选择器,判断压缩行格式、压缩列格式、压缩列向量格式;
7、判断是否完成所有迭代,若是,则结束运算,若否,则返回步骤5。
在上述具体应用实例中,本申请将原本算法中的稀疏矩阵向量乘法替换为本申请中的自适应算法。图5为相较于NVIDIA的高性能稀疏计算库CuSPARSE,本申请执行稀疏图的宽度优先搜索算法时,稀疏矩阵向量乘的加速效果,(图5的纵坐标做了对2取对数处理)。相对于库中的CSR格式,平均加速为2.52倍,相对于库中的BSR格式,平均加速为6.02倍。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的图计算中稀疏矩阵向量乘的自适应方法的图计算中稀疏矩阵向量乘的自适应装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个图计算中稀疏矩阵向量乘的自适应装置实施例中的具体限定可以参见上文中对于图计算中稀疏矩阵向量乘的自适应方法的限定,在此不再赘述。
如图6所示,本申请还提供了一种图计算中稀疏矩阵向量乘的自适应装置。装置包括:
数据获取模块200,用于获取图计算中稀疏矩阵,并提取稀疏矩阵的稀疏特征;
特征提取模块400,用于获取输入的稀疏向量,提取稀疏向量特征;
算法选择模块600,用于根据稀疏矩阵以及稀疏向量特征,采用预设决策树模型进行最优算法选择;
迭代模块800,用于根据稀疏矩阵以及稀疏向量特征,并采用选择的最优算法进行计算,迭代返回获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件;
其中,预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于训练数据集进行决策树模型的训练。
在其中一个实施例中,构建稀疏矩阵向量乘候选计算内核列表包括:基于计算模式、图数据特征、位数组压缩和串并行结合算法构建多个稀疏矩阵向量乘内核,生成稀疏矩阵向量乘候选计算内核列表。
在其中一个实施例中,根据稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集包括;
根据稀疏矩阵向量乘候选计算内核列表,获取不同数据分布的矩阵;针对不同数据分布的矩阵,计算矩阵的行列数据信息以及行列非零元分布的均值与方差,并计算不同输入稀疏向量;根据性能测试结果选择最优算法,对矩阵特征和向量特征添加标签,并将添加标签后的数据分别生成训练数据集和验证数据集。
在其中一个实施例中,基于训练数据集进行决策树模型的训练包括:
根据训练数据集对决策树模型进行训练;采用验证数据集对训练后的决策树模型进行验证,并根据模型精度和提取稀疏特征的开销对训练后的决策树模型形评估,筛选最优的决策树模型。
在其中一个实施例中,算法选择模块600还用于将稀疏矩阵输入至预设决策树模型,判断稀疏矩阵类型;若稀疏矩阵类型为幂律矩阵,则对稀疏矩阵进行重排序;提取矩阵特征,若基于矩阵特征判定需要使用位数组压缩,则启动位数组压缩方法;将稀疏向量特征输入至预设决策树模型,将稀疏矩阵和稀疏向量特征传输至具体算法选择器,根据输入来选择CSR格式、CSC格式、或CSCV格式。
在其中一个实施例中,迭代模块800,还用于根据稀疏矩阵以及稀疏向量特征,并采用选择的最优算法进行计算;迭代返回获取输入的稀疏向量,提取稀疏向量特征的步骤;判断是否达到预设最大迭代次数;若是,则结束,得到图计算结果;若否,则返回获取输入的稀疏向量,提取稀疏向量特征的步骤。
上述图计算中稀疏矩阵向量乘的自适应装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种图计算中稀疏矩阵向量乘的自适应方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述图计算中稀疏矩阵向量乘的自适应方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述图计算中稀疏矩阵向量乘的自适应方法。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述图计算中稀疏矩阵向量乘的自适应方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive RandomAccess Memory,MRAM)、铁电存储器(Ferroelectric RandomAccess Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(RandomAccess Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static RandomAccess Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccessMemory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种图计算中稀疏矩阵向量乘的自适应方法,其特征在于,所述方法包括:
获取图计算中稀疏矩阵,并提取所述稀疏矩阵的稀疏特征;
获取输入的稀疏向量,提取稀疏向量特征;
根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择;
根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件。
其中,所述预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于所述训练数据集进行决策树模型的训练。
2.根据权利要求1所述的方法,其特征在于,所述构建稀疏矩阵向量乘候选计算内核列表包括:
基于计算模式、图数据特征、位数组压缩和串并行结合算法构建多个稀疏矩阵向量乘内核,生成稀疏矩阵向量乘候选计算内核列表。
3.根据权利要求1所述的方法,其特征在于,所述根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集包括;
根据所述稀疏矩阵向量乘候选计算内核列表,获取不同数据分布的矩阵;
针对所述不同数据分布的矩阵,计算矩阵的行列数据信息以及行列非零元分布的均值与方差,并计算不同输入稀疏向量;
根据性能测试结果选择最优算法,对矩阵特征和向量特征添加标签,并将添加标签后的数据分别生成训练数据集和验证数据集。
4.根据权利要求3所述的方法,其特征在于,所述基于所述训练数据集进行决策树模型的训练包括:
根据所述训练数据集对决策树模型进行训练;
采用所述验证数据集对训练后的决策树模型进行验证,并根据模型精度和提取稀疏特征的开销对训练后的决策树模型形评估,筛选最优的决策树模型。
5.根据权利要求1所述的方法,其特征在于,所述根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择包括:
将稀疏矩阵输入至预设决策树模型,判断稀疏矩阵类型;
若所述稀疏矩阵类型为幂律矩阵,则对所述稀疏矩阵进行重排序;
提取矩阵特征,若基于所述矩阵特征判定需要使用位数组压缩,则启动位数组压缩方法;
将稀疏向量特征输入至预设决策树模型,将稀疏矩阵和稀疏向量特征传输至具体算法选择器,根据输入来选择CSR格式、CSC格式、或CSCV格式。
6.根据权利要求1所述的方法,其特征在于,所述根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件包括:
根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算;
迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤;
判断是否达到预设最大迭代次数;
若是,则结束,得到图计算结果;
若否,则返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤。
7.一种图计算中稀疏矩阵向量乘的自适应装置,其特征在于,所述装置包括:
数据获取模块,用于获取图计算中稀疏矩阵,并提取所述稀疏矩阵的稀疏特征;
特征提取模块,用于获取输入的稀疏向量,提取稀疏向量特征;
算法选择模块,用于根据所述稀疏矩阵以及所述稀疏向量特征,采用预设决策树模型进行最优算法选择;
迭代模块,用于根据所述稀疏矩阵以及所述稀疏向量特征,并采用选择的最优算法进行计算,迭代返回所述获取输入的稀疏向量,提取稀疏向量特征的步骤,直至满足预设迭代结束条件;
其中,所述预设决策树模型的构建过程包括:构建稀疏矩阵向量乘候选计算内核列表;根据所述稀疏矩阵向量乘候选计算内核列表进行矩阵性能测试,并计算矩阵和向量特征,构成训练数据集;基于所述训练数据集进行决策树模型的训练。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202410089206.XA 2024-01-23 2024-01-23 图计算中稀疏矩阵向量乘的自适应方法与装置 Pending CN118132911A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410089206.XA CN118132911A (zh) 2024-01-23 2024-01-23 图计算中稀疏矩阵向量乘的自适应方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410089206.XA CN118132911A (zh) 2024-01-23 2024-01-23 图计算中稀疏矩阵向量乘的自适应方法与装置

Publications (1)

Publication Number Publication Date
CN118132911A true CN118132911A (zh) 2024-06-04

Family

ID=91246402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410089206.XA Pending CN118132911A (zh) 2024-01-23 2024-01-23 图计算中稀疏矩阵向量乘的自适应方法与装置

Country Status (1)

Country Link
CN (1) CN118132911A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118378074A (zh) * 2024-06-26 2024-07-23 中国人民解放军国防科技大学 一种稀疏矩阵求解过程中进行排序算法调度的方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118378074A (zh) * 2024-06-26 2024-07-23 中国人民解放军国防科技大学 一种稀疏矩阵求解过程中进行排序算法调度的方法及系统

Similar Documents

Publication Publication Date Title
US11861462B2 (en) Preparing structured data sets for machine learning
US11853846B2 (en) Acceleration of model/weight programming in memristor crossbar arrays
US20200159810A1 (en) Partitioning sparse matrices based on sparse matrix representations for crossbar-based architectures
CN112633419A (zh) 小样本学习方法、装置、电子设备和存储介质
CN110516810B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
US11544542B2 (en) Computing device and method
CN118132911A (zh) 图计算中稀疏矩阵向量乘的自适应方法与装置
CN109388565B (zh) 基于生成式对抗网络的软件系统性能优化方法
CN112434024B (zh) 面向关系型数据库的数据字典生成方法、装置、设备及介质
JP5402351B2 (ja) 多目的最適化設計支援装置、方法、及びプログラム
CN111651668B (zh) 用户画像的标签生成方法及装置、存储介质、终端
CN113516019A (zh) 高光谱图像解混方法、装置及电子设备
CN117909517A (zh) 知识图谱补全方法、装置、设备、存储介质和程序产品
CN116522003B (zh) 基于嵌入表压缩的信息推荐方法、装置、设备和介质
CN116992607A (zh) 一种结构拓扑优化方法、系统及装置
CN111553442A (zh) 一种分类器链标签序列的优化方法及系统
EP4414901A1 (en) Model weight acquisition method and related system
US20220253709A1 (en) Compressing a Set of Coefficients for Subsequent Use in a Neural Network
Dong et al. An optimization method for pruning rates of each layer in CNN based on the GA-SMSM
CN113906448A (zh) 用于在神经网络中提供分块稀疏性的系统和方法
US20220261652A1 (en) Training a Neural Network
CN116227585B (zh) 集群任务的并行执行方法、装置、计算机设备和存储介质
CN116880852A (zh) 基于机器学习的代码数据检查方法、装置及计算机设备
KR20220137443A (ko) 압축된 다차원 행렬 곱셈 방법, 연산 장치 및 프로그램을 저장하는 저장매체
CN116662348A (zh) 金融数据库索引构建方法、装置、设备和存储介质

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