The invention discloses a sparse matrix vector domestic Shenwei 26010 processor multiplication based on multi-core heterogeneous method, the sparse matrix of nonzero element distribution is irregular, the design method of the static and dynamic two different partitioning method, in order to adapt to the different sparse matrix; put forward a set of dynamic cache in order to improve the mechanism of static, vector x memory hit rate; proposed an adaptive optimization method, for sparse matrix input, can select the optimal parameters of dynamic execution, in order to improve its performance. The invention adopts 16 Matrix sparse matrix Market matrix concentration tested, compared to domestic Shenwei processor single core running version of SpMV is about 10 times the maximum acceleration, the average speedup of 6.51.
【技术实现步骤摘要】
一种基于国产申威26010处理器的稀疏矩阵向量乘异构众核实现方法
本专利技术涉及一种稀疏矩阵的核心计算稀疏矩阵向量乘SpMV(SparseMatrix-VectorMultiplication)在国产申威众核处理器上的实现方法,属于高性能数值计算
,主要用于气象、湍流模拟、天体物理、油藏模拟等科学计算和实际应用中。
技术介绍
稀疏矩阵向量乘(SpMV)y=A*x是科学与工程计算中一个非常重要的计算内核,其性能往往对应用整体性能有着很大的影响。SpMV是属于访存密集型的,算法中的浮点计算与存储访问的比率很低,且稀疏矩阵非零元素分布很不规则。传统的CSR(CompressedSparseRow)格式的SpMV实现中向量x为间接访问且访问不规则,可重用性差,给SpMV的高效实现带来很大挑战。目前超级计算机的体系结构已经从多核向众核乃至异构众核发展,然而访存墙问题却越来越突出,带宽受限型操作的峰值性能也越来越低,并且实现难度逐步增大。由我国国家并行计算机工程技术研究中心研制的新一代申威异构众核处理器已经面世,其峰值性能为3TFlops/s,聚合访存带宽为130GB/s,相比计算能力,其访存能力偏弱,给稀疏矩阵向量乘的高效实现带来了巨大的挑战。稀疏矩阵向量乘作为迭代解法器的核心计算如果能够提高运行速度,整个计算的运行效率将会大大改善,在实际应用中有着十分重要的作用。稀疏矩阵是指矩阵A的元素大部分是零,而非零元素所占比例非常小,往往小于总数的1%。通过只存储和操作这些非零元,可以减少存储的内存,并大幅减少乘法次数,进而提高整体性能。稀疏矩阵存储时,除了存储非零元 ...
【技术保护点】
一种基于国产申威26010处理器的稀疏矩阵向量乘异构众核实现方法,其特征在于包括:自适应优化、任务划分和向量x访存三个步骤,首先针对输入的稀疏矩阵进行稀疏矩阵向量乘SpMV计算时的三个参数,即调度方式、向量x的最优静态缓冲区大小、向量x静态缓冲区读取的起始位置进行自适应优化,从而获得该稀疏矩阵的SpMV最优性能;然后根据优化后的调度方式进行任务划分;最后基于优化后的调度方式、向量x的最优静态缓冲区大小、向量x静态缓冲区读取的起始位置三个参数进行从核计算,每个从核计算时对向量x访存采用动静态的访存机制,从而实现基于国产申威26010处理器的SpMV异构众核的过程。
【技术特征摘要】
1.一种基于国产申威26010处理器的稀疏矩阵向量乘异构众核实现方法,其特征在于包括:自适应优化、任务划分和向量x访存三个步骤,首先针对输入的稀疏矩阵进行稀疏矩阵向量乘SpMV计算时的三个参数,即调度方式、向量x的最优静态缓冲区大小、向量x静态缓冲区读取的起始位置进行自适应优化,从而获得该稀疏矩阵的SpMV最优性能;然后根据优化后的调度方式进行任务划分;最后基于优化后的调度方式、向量x的最优静态缓冲区大小、向量x静态缓冲区读取的起始位置三个参数进行从核计算,每个从核计算时对向量x访存采用动静态的访存机制,从而实现基于国产申威26010处理器的SpMV异构众核的过程。2.根据权利要求1所述的基于国产申威26010处理器的稀疏矩阵向量乘异构众核实现方法,其特征在于:所述自适应优化过程如下:针对每个输入稀疏矩阵,选取最适用的三个参数:调度方式、向量x的最优静态缓冲区大小、向量x静态缓冲区读取的起始位置,首先选择最优的向量x的静态缓冲区大小,起始为128,最大值为max_x_size,每128递增;然后选取最优的向量x静态缓冲区读取的起始位置;最后选择最优的调度方式,所有参数的选择都采用预先运行SpMV的相应函数并选取最小执行时间对应的参数的方法来进行。3.根据权利要求1所述的基于国产申威26010处理器的稀疏矩阵向量乘异构众核实现方法,其特征在于:所述任务划分如下:对于稀疏矩阵,采用一维划分方式,所述一维划分方式又有两种:静态任务划分和动态任务划分;所述两种方式分别适用于不同类型的稀疏矩阵;静态任务划分适用于每行非零元分布比较均匀,且向量x的访存行为差异不大的稀疏矩阵;动态任务划分则相反;所述静态任务划分是将稀疏矩阵按行等分,每个从核计算m/64...
【专利技术属性】
技术研发人员:刘芳芳,杨超,吴长茂,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。