CN113641956B - 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法 - Google Patents

面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法 Download PDF

Info

Publication number
CN113641956B
CN113641956B CN202110896851.9A CN202110896851A CN113641956B CN 113641956 B CN113641956 B CN 113641956B CN 202110896851 A CN202110896851 A CN 202110896851A CN 113641956 B CN113641956 B CN 113641956B
Authority
CN
China
Prior art keywords
thread
sub
matrix
vector
case
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
Application number
CN202110896851.9A
Other languages
English (en)
Other versions
CN113641956A (zh
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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN202110896851.9A priority Critical patent/CN113641956B/zh
Publication of CN113641956A publication Critical patent/CN113641956A/zh
Application granted granted Critical
Publication of CN113641956B publication Critical patent/CN113641956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开一种面向SW26010‑Pro处理器的1、2级BLAS函数库的高性能实现方法,包括:对问题进行任务划分,产生若干子问题,其中所述问题的结构包括向量、普通矩阵、对称矩阵或三角矩阵;若为向量、普通矩阵或对称矩阵时,将各子问题的运算分配给相应线程;若为三角矩阵时,将子问题对角部分的运算分给0号线程,非对角部分的运算分配给其他相应线程;拼接各线程的运算结果,获取所述问题的解。本发明实现了BLAS 1、2级函数的并行化,解决了线程间的数据依赖问题,并通过自适应调优机制,进一步提升了函数的性能。

Description

面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现 方法
技术领域
本发明涉及基础线性代数库BLAS(Basic Linear Algebra Subprograms)实现的领域,尤其涉及一种面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法。
背景技术
BLAS是一种基础线性代数子程序库,主要包含向量和矩阵的基本操作,是最基础和最重要的数学库之一,广泛应用于科学计算、气象预报、天体物理等领域。BLAS库是很多专业软件的核心,其中,BLAS 1、2级函数会被几乎所有有关矩阵运算的应用以及稠密线性代数算法软件包(如LAPACK,ScaLAPACK)反复调用多次。在数值矩阵分析、深度学习等方面的实践表明,BLAS 1、2级函数对提高应用的运算速度和充分发挥高性能计算机的性能具有至关重要的意义。
BLAS 1、2级函数实现向量-向量、矩阵-向量操作,共包含30多个函数,且包含单精度、双精度、复数单精度和复数双精度四种类型。BLAS 1、2级函数具有访存密集的特征,其性能受限于系统访存带宽,且函数数量较多,函数涉及的矩阵在内存中有多种数据排布方式。如何对数据进行合理的划分,充分利用高效的访存模式,提高数据重用率,是BLAS 1、2级函数库高性能实现的极大挑战。
在BLAS 1、2级函数的高性能实现方面,国内外已经有相当多的研究成果。李毅等面向多核龙芯3A实现了二级BLAS函数库(李毅,何颂颂,李恺.多核龙芯3A上二级BLAS库的优化[J].计算机系统应用,2011,20(1):163-167.)。伴随着GPU加速器的快速发展,BLAS 1、2级函数在GPU上的优化工作近年来也成为研究热点,Jian Yin等在Nvidia GPU上利用寄存器分块方法实现了并行GEMV(Jian Y,Hui Y,Xu W,et al.Highly parallel GEMV withregister blocking method on GPU architecture[J].Journal of VisualCommunication&Image Representation,2014,25(7):1566-1573.),Weizhi Xu等在NvidiaGPU上实现了一个针对GEMV的性能调优框架,针对GEMV的输入规模选择最优的算法(W.Xuet al.,"Auto-Tuning GEMV on Many-Core GPU,"2012IEEE 18th InternationalConference on Parallel and Distributed Systems,2012,pp.30-36,doi:10.1109/ICPADS.2012.15.)。
SW26010-Pro是具有异构架构的众核处理器。在基于SW26010-Pro众核处理器架构的神威新一代超级计算机上,目前还没有部署定制化的高性能BLAS1、2级函数库,且现有的开源数学库在该平台上性能较低,无法对应用提供有效的性能支撑。因此急需设计并实现一种面向该众核平台的高性能BLAS 1、2级函数库,以充分利用申威众核处理器的访存带宽,且满足上层应用对申威众核平台上高性能BLAS 1、2级函数的迫切需求。
发明内容
本发明提供一种面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法,以满足在SW26010-Pro众核处理器上对BLAS 1、2级函数的需求,解决现有的开源数学库性能较低的问题。
一种面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法,其步骤包括:
1)对问题进行任务划分,产生若干子问题,其中所述问题的结构包括向量、普通矩阵、对称矩阵或三角矩阵;
2)若为向量、普通矩阵或对称矩阵时,将各子问题的运算分配给相应线程;若为三角矩阵时,将子问题对角部分的运算分给0号线程,非对角部分的运算分配给其他相应线程;
3)拼接各线程的运算结果,获取所述问题的解。
进一步地,通过以下策略产生子问题:
1)对于向量,每一向量段视作一子问题xi′,其中i′为向量段编号,0≤i′≤k-1,k为子问题的数量;
2)对于普通矩阵,每个行块视作一子问题Ai,其中i+1是矩阵的行编号,0≤i≤k-1;
3)对于对称矩阵,每一列块视作一子问题Aj,其中j+1是矩阵的列编号,0≤j≤k-1;
4)对于三角矩阵,每一行块视作一子问题Ai
进一步地,所述问题的结构为向量时,通过以下步骤获取所述问题的解:
1)将子问题xi′分配给相应线程Ti
2)线程T0计算子问题x0的解y0
3)利用公式yi←α×xi′+yi,各线程Ti计算得到解yi,其中α为第一权重值;
4)拼接解yi,获取所述问题的解y。
进一步地,所述问题的结构为普通矩阵时,通过以下步骤获取所述问题的解:
1)将子问题Ai分配给线程Ti,其中0≤i≤k-1,k为子问题的数量;
2)基于向量x′与子问题A0,线程T0计算得到解y0
3)利用公式yi←α×Ai×x′+β×yi,各线程Ti计算得到解yi,其中α为第一权重值,β为第二权重值;
4)拼接解yi,获取所述问题的解y。
进一步地,所述问题的结构为对称矩阵时,迪过以下步骤获取所述问题的解:
1)对每一子问题Aj进行划分,获取对角子矩阵Dj及下三角子矩阵Lij,并将划分后的子问题Aj分配给线程Tj
2)对向量x′进行划分,获取若干子向量x′j
3)将对角子矩阵Dj的上三角部分用对应的下三角子矩阵Lij补齐;
4)各线程Tj基于对角子矩阵D0与子向量x′0、或上三角部分中相应的下三角子矩阵Li0与子向量x′j,计算得到解y0或解L0j;各线程Tj基于下三角子矩阵L(j+1)j与子向量x′j,计算得到相应的解y(j+1)j
5)对于对角子矩阵、下三角子矩阵及下三角子矩阵的对称部分,各线程Tj分别利用公式yj←Dj×x′j+yj、yi←Lij×x′j+yi及yj←Lij×x′i+yj进行迭代求解,并拼接相应的子解,得到所述问题的解y。
进一步地,所述问题的结构为三角矩阵时,,通过以下步骤获取所述问题的解:
1)将子问题Ai划分为相应的对角子矩阵Di及非对角子矩阵Lij,并将右端项向量b进行划分,得到子右端项向量bi
2)为各对角子矩阵Di及非对角子矩阵Lij分配线程;
3)对于对角子矩阵,线程Ti基于对角子矩阵Di进行求解;对于非对角子矩阵,利用公式yi←Di×(bi-∑0≤j<iLij×yj)进行求解;
4)拼接相应的子解,得到所述问题的解y。
进一步地,对于非对角子矩阵,通过以下步骤进行求解:
1)使用循环展开与SIMD向量化指令,并行执行普通矩阵-向量乘计算Lij*yj
2)将各计算结果归约至线程T0
3)0号线程根据归约结果、对角子矩阵Di及右端项向量段bi进行回代求解,得到子解yi
进一步地,计算Li(i-1)*y(i-1)前,相应线程与线程T0进行同步。
进一步地,线程之间的通信方法包括:RMA点对点通信。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行以上所述方法。
一种电子装置,包括存储器和处理器,其中存储器存储执行以上所述方法的程序。
本发明取得了以下技术效果:
本发明实现了BLAS 1、2级函数的并行化。本发明设计了一种线程归约机制和一种线程通讯机制,解决了线程间的数据依赖问题。本发明还使用了循环变换和向量化技术优化计算。另外,本发明设计了一种自适应调优机制,根据输入问题的规模设置合适的线程数量,进一步提升了函数的性能。本发明的高性能BLAS 1、2级函数库与单核开源BLAS数学库GotoBLAS相比,平均加速比为22.37,最高加速比为65.47。
附图说明
图1为本发明面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法整体流程示意图;
图2为向量分段与核间数据映射示意图;
图3为普通矩阵分块与核间数据映射示意图;
图4为对称矩阵分块与核间数据映射示意图;
图5为三角矩阵分块与核间数据映射示意图;
图6为线程归约机制的示意图,其中(a)为线程行归约示意图,(b)为线程列归约示意图;
图7为TRSV的任务分块示意图;
图8为线程通讯机制的示意图;
图9为AXPY的任务分段示意图;
图10为GEMV的任务分块示意图;
图11为SYMV的任务分块示意图;
图12为本发明与开源库GotoBLAS的性能加速比。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明的高性能实现方法,其特征包括:
特征一、根据输入问题的规模对矩阵或向量进行任务划分,产生若干子任务,并将各个子任务分配给每个线程。
特征二、提出一种基于RMA通信的线程归约机制和一种基于点对点同步的线程通讯机制。
特征三、使用循环变换和向量化技术优化计算。
特征四、提出一种自适应调优机制,为矩阵或向量的各个规模设置合适的线程数量。
进一步地,特征一包括:
如图2,对于向量,将其平均划分成若干向量段,将每个向量段依次映射给各个线程,图中的T0,T1,T2,...T63表示0号线程,1号线程,2号线程,…,63号线程;
如图3,对于普通矩阵,将其划分成若干小矩阵,将每个行块依次映射给各个线程,图中的T0,T1,T2,...T63表示0号线程,1号线程,2号线程,,...,63号线程;
如图4,对于对称矩阵,将其划分成若干小矩阵,将每个列块依次映射给各个线程,图中的T0,T1,T2,...T63表示0号线程,1号线程,2号线程,…,63号线程;
如图5,对于三角矩阵,将其划分成若干小矩阵,将对角块映射给0号线程,每个列块(对角块除外)映射给其它线程,图中的T0,T1,T2,...T63表示0号线程,1号线程,2号线程,...,63号线程。
进一步地,特征二包括:
如图6,从0号线程开始的任意个连续线程,采用RMA点对点通信进行归约,首先,位于同一行的线程进行行归约,归约目标为核组的第一列线程,而后,核组的第一列线程进行列归约,归约目标为0号线程,图中的T0,T1,T2,...T63表示0号线程,1号线程,2号线程,...,63号线程;
0号线程在完成当前操作后,会对1~63号中的某个线程发起一次点对点同步请求,与此同时,对应的线程在进行相应的操作前会响应这个同步请求。
进一步地,特征三包括:
对BLAS 1、2级函数的计算部分,使用了循环展开和SIMD向量化指令进行了优化。
进一步地,特征四包括:
根据向量规模将BLAS 1级函数分为四种类型,包括小规模、中等规模、大规模、超大规模。对于以上四种类型,分别启动8、16、32、64个线程。这里的小规模向量范围优选为[1024,4096],中等规模向量范围优选为(4096,32768],大规模向量范围优选为(32768,262144],超大规模向量范围优选为(262144,+∞);
根据矩阵规模将BLAS 2级函数分为两种类型,包括小规模、大规模。对于以上两种类型,分别启动16、64个线程。这里的小规模矩阵范围优选为[128*128,2048*2048],大规模矩阵范围优选为(2048,+∞)。
下面以涉及下三角系数矩阵的线程方程组求解(TRSV)为例,它主要解决如下等式:A*x=b,其中,A表示下三角矩阵,x表示待解未知向量,b表示右端项向量。具体实施步骤包括:
步骤一:根据矩阵A的规模,确定函数需要启动的线程数量。
步骤二:如图7所示,本发明按行对矩阵A、向量x和向量b进行任务划分,将每个行块视作一个子问题,共产生k个子问题。本发明对子问题进一步划分,每个子问题将产生对角子矩阵Di(0≤i≤k-1)以及若干非对角子矩阵Lij((0≤j<i)),它们对应待解未知向量段xi的解yi和右端项向量段bi。每个子问题完成如下运算:yi←Di×(bi-∑0≤j<iLij×yj)。
步骤三:本发明依次遍历每个子问题,将子问题对角部分的运算分给0号线程,非对角部分的运算按线程号依次分给其它线程。假设当前处理的是子问题i(0<i≤k-1),负责非对角部分的线程,使用循环展开和SIMD向量化指令并行执行普通矩阵-向量乘计算:Lij*yj,(0≤j<i),将计算结果归约至0号线程,0号线程根据归约结果、对角子矩阵Di及右端项向量段bi进行回代求解(back substitution),得到yi,并将yi写回主存。例如当前处理的是子问题3,负责非对角线部分的线程1,线程2,线程3,并行执行普通矩阵-向量乘计算:L30*x0,L31*x1,L32*x2。将计算结果归约至0号线程,0号线程根据归约结果进行回代求解(back substitution),得到x3,并将x3写回主存。
如图8所示,负责子矩阵Li(i-1)的线程在计算前需要和0号线程同步,等待0号线程将y(i-1)写回主存。Lij的规模是128×128,Lij*yj采用两层循环实现,本发明将外层循环展开8次,增加了单次循环中乘加运算操作的数量,并在计算过程中使用SW26010-pro众核处理器硬件提供的浮点向量乘加指令加速了乘加运算。
步骤四:输出向量x的解y。
下面以标量向量乘(AXPY)为例,它的计算形式为:y=α*x+y,其中,x和y表示向量,α表示标量。具体实施步骤包括:
步骤一:根据向量的规模确定函数需要启动的线程数量。
步骤二:如图9所示,本发明对向量x、待解未知向量y进行任务划分,将每个向量段视作一个子问题,共产生k个子问题。每个子问题完成如下运算:yi←α×xi+yi
步骤三:本发明依次遍历每个子问题,将子问题i分给i号线程。假设当前处理的是子问题i(0≤i≤63),i号线程执行计算:α×xi+yi,得到yi,并将yi写回主存。
步骤四:输出向量y。
下面以普通矩阵向量乘(GEMV)为例,它的计算形式为:y=α*A*x+β*y,其中,A表示普通矩阵,x和y表示向量,α和β表示标量。具体实施步骤包括:
步骤一:根据矩阵A的规模确定函数需要启动的线程数量。
步骤二:如图10所示,本发明按行对矩阵A、待解未知向量y进行任务划分,将每个行块视作一个子问题,共产生k个子问题。每个子问题完成如下运算:yi←α×Ai×x+β×yi
步骤三:本发明依次遍历每个子问题,将子问题i分给i号线程。假设当前处理的是子问题i(0≤i≤63),i号线程执行计算:α×Ai×x+β×yi,得到yi,并将yi写回主存。
步骤四:输出向量y。
下面以涉及下三角矩阵的对称矩阵向量乘(SYMV)为例,它的计算形式为:y=α*A*x+β*y,其中,A表示下三角对称矩阵,x和y表示向量,α和β表示标量。具体实施步骤包括:
步骤一:根据矩阵A的规模确定函数需要启动的线程数量。
步骤二:如图11所示,本发明按列对矩阵A进行任务划分,将每个列块视作一个子问题,共产生k个子问题。本发明对子问题进一步划分,每个子问题将产生对角子矩阵Dj(0≤j≤k-1)以及若干下三角子矩阵Lij(i≥j)。每个子问题完成如下操作:对于对角子矩阵,将Dj的上三角部分用下三角的元素补齐,并计算:yj←Dj×xj+yj;对于下三角子矩阵,计算:yi←Lij×xj+yi;对于下三角子矩阵的对称部分计算:yj←Lij×xi+yj
步骤三:本发明依次遍历每个子问题,将子问题j分给j号线程。假设当前处理的是子问题j(0≤j≤(k-1)),j号线程执行操作:将Dj的上三角部分用下三角的元素补齐,并计算:Dj×xj+yj,得到yj,并将yj写回主存;计算:Lij×xj+yi,得到yi,并将yi写回主存;计算:Lij×xi+yj,得到yj,并将yj写回主存。
步骤四:输出向量y。
本实施例采用GotoBLAS数学库对本发明的性能加速效果进行验证。实施例选取的问题规模保证了两个版本的函数性能均达到了各自的最优值,选取的精度为实数双精度。图12为本发明与开源库GotoBLAS的性能加速比,从中可以看出本发明相对GotoBLAS的平均加速比为22.37,最高加速比为65.47。
本实施例仅针对SW26010-Pro众核处理器,将本发明的内容经简单变形后移植到其他平台,或者在没有对本发明的任务划分以及线程归约机制等进行创造性改进,抑或在执行计算阶段于本发明的基础上进行简单优化,本质上仍未脱离本发明所涵盖的内容,仍属于本发明保护的范畴。
本发明未详细阐述的部分属于本领域技术人员的公知技术。
以上所述的实施例仅是对本发明的特定实例进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

Claims (3)

1.一种面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法,其步骤包括:
1)对问题进行任务划分,产生若干子问题,其中所述问题的结构包括向量、普通矩阵、对称矩阵或三角矩阵;其中,
在所述问题的结构为向量的情况下,将每一向量段视作一子问题xi,其中0≤i≤k-1,k为子问题的数量;
在所述问题的结构为普通矩阵的情况下,将每个行块视作一子问题Ai
在所述问题的结构为对称矩阵的情况下,每一列块视作一子问题Aj,其中j+1是矩阵的列编号,0≤j≤k-1;
在所述问题的结构为三角矩阵的情况下,每一行块视作一子问题Ai
2),将各子问题的运算分配给相应线程,以得到该线程的运算结果;其中,
在所述问题的结构是向量的情况下,所述将各子问题的运算分配给相应线程,以得到该线程的运算结果,包括:
将子问题xi分配给相应线程Ti,以使线程Ti执行计算,得到线程Ti对应的解yi=α×xi+yi,α表示标量;
在所述问题的结构是普通矩阵的情况下,所述将各子问题的运算分配给相应线程,以得到该线程的运算结果,包括:
将子问题Ai分配给线程Ti,以使线程Ti执行计算,得到线程Ti对应的解yi=α×Ai×x+β×yi,β表示标量,x表示向量;
在所述问题的结构是三角矩阵的情况下,所述将各子问题的运算分配给相应线程,以得到该线程的运算结果,包括:
对每一子问题Ai进行划分,获取对角子矩阵Di及非对角子矩阵Lij,0≤j<i;
将对角子矩阵Di的运算分给0号线程,将非对角子矩阵Lij的运算按线程号i依次分给其它线程;
该其它线程使用循环展开和SIMD向量化指令并行执行普通矩阵-向量乘计算:Lij*yj,并将计算结果归约至0号线程;
0号线程根据归约结果、对角子矩阵Di及右端项向量段bi进行回代求解,得到0号线程对应的解yi
在所述问题的结构是对称矩阵的情况下,所述将各子问题的运算分配给相应线程,以得到该线程的运算结果,包括:
对每一子问题Aj进行划分,获取对角子矩阵Dj及非对角子矩阵Lij,i≥j;
将子问题Aj分配给相应线程Tj
应线程Tj将Dj的上三角部分用下三角的元素补齐,并计算:yj←Dj×xj+yj;对于下三角子矩阵,计算:yi←Lij×xj+yi;对于下三角子矩阵的对称部分计算:yj←Lij×xi+yj
3)拼接各线程的运算结果,获取所述问题的解。
2.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1所述方法。
3.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1所述方法。
CN202110896851.9A 2021-08-05 2021-08-05 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法 Active CN113641956B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110896851.9A CN113641956B (zh) 2021-08-05 2021-08-05 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110896851.9A CN113641956B (zh) 2021-08-05 2021-08-05 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法

Publications (2)

Publication Number Publication Date
CN113641956A CN113641956A (zh) 2021-11-12
CN113641956B true CN113641956B (zh) 2023-05-30

Family

ID=78419683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110896851.9A Active CN113641956B (zh) 2021-08-05 2021-08-05 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法

Country Status (1)

Country Link
CN (1) CN113641956B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508704A (zh) * 2011-11-10 2012-06-20 上海市共进通信技术有限公司 计算机软件系统中实现任务分解和并行处理控制的方法
CN103440121A (zh) * 2013-08-20 2013-12-11 中国人民解放军国防科学技术大学 一种面向向量处理器的三角矩阵乘法向量化方法
CN103514629A (zh) * 2012-06-22 2014-01-15 密执安大学评议会 用于迭代重建的方法和设备
CN103959233A (zh) * 2011-09-15 2014-07-30 埃克森美孚上游研究公司 在执行eos计算的指令受限算法中最优化矩阵和向量运算
CN104484234A (zh) * 2014-11-21 2015-04-01 中国电力科学研究院 一种基于gpu的多波前潮流计算方法和系统
CN105808309A (zh) * 2016-03-08 2016-07-27 中国科学院软件研究所 一种基于申威平台的基础线性代数库blas三级函数gemm的高性能实现方法
CN106650925A (zh) * 2016-11-29 2017-05-10 郑州云海信息技术有限公司 一种基于MIC集群的深度学习框架Caffe系统及算法
CN107168683A (zh) * 2017-05-05 2017-09-15 中国科学院软件研究所 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法
CN107590106A (zh) * 2017-08-08 2018-01-16 北京中科睿芯科技有限公司 一种应用于对称矩阵与向量乘法的计算方法
CN110968345A (zh) * 2018-09-29 2020-04-07 英特尔公司 用于数据并行单程序多数据(spmd)执行的架构和方法
CN112380003A (zh) * 2020-09-18 2021-02-19 北京大学 一种gpu处理器上的k-nn的高性能并行实现装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210248115A1 (en) * 2020-02-10 2021-08-12 Nvidia Corporation Compute graph optimization
US20210294673A1 (en) * 2020-03-19 2021-09-23 Nvidia Corporation Techniques for orchestrating stages of thread synchronization

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959233A (zh) * 2011-09-15 2014-07-30 埃克森美孚上游研究公司 在执行eos计算的指令受限算法中最优化矩阵和向量运算
CN102508704A (zh) * 2011-11-10 2012-06-20 上海市共进通信技术有限公司 计算机软件系统中实现任务分解和并行处理控制的方法
CN103514629A (zh) * 2012-06-22 2014-01-15 密执安大学评议会 用于迭代重建的方法和设备
CN103440121A (zh) * 2013-08-20 2013-12-11 中国人民解放军国防科学技术大学 一种面向向量处理器的三角矩阵乘法向量化方法
CN104484234A (zh) * 2014-11-21 2015-04-01 中国电力科学研究院 一种基于gpu的多波前潮流计算方法和系统
CN105808309A (zh) * 2016-03-08 2016-07-27 中国科学院软件研究所 一种基于申威平台的基础线性代数库blas三级函数gemm的高性能实现方法
CN106650925A (zh) * 2016-11-29 2017-05-10 郑州云海信息技术有限公司 一种基于MIC集群的深度学习框架Caffe系统及算法
CN107168683A (zh) * 2017-05-05 2017-09-15 中国科学院软件研究所 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法
CN107590106A (zh) * 2017-08-08 2018-01-16 北京中科睿芯科技有限公司 一种应用于对称矩阵与向量乘法的计算方法
CN110968345A (zh) * 2018-09-29 2020-04-07 英特尔公司 用于数据并行单程序多数据(spmd)执行的架构和方法
CN112380003A (zh) * 2020-09-18 2021-02-19 北京大学 一种gpu处理器上的k-nn的高性能并行实现装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Towards highly efficient DGEMM on the emerging SW26010 many-core processor;Lijuan Jiang 等;《ICPP2017》;422-431 *
基于申威众核处理器的1、2级BLAS函数优化研究;孙家栋等;《计算机系统应用》;101-108 *
矩阵乘协处理器上BLAS Level-3运算的设计;贾讯等;《计算机工程与科学》;1913-1921 *
面向国产申威26010众核处理器的SpMV实现与优化;刘芳芳等;《软件学报》;3921-3932 *

Also Published As

Publication number Publication date
CN113641956A (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
KR102596365B1 (ko) 다차원 텐서들에서의 데이터 액세스
US9990766B2 (en) Method and system for predicting collision probability of space objects via graphics processing unit
Gorobets et al. Multilevel parallelization for simulating compressible turbulent flows on most kinds of hybrid supercomputers
US10867008B2 (en) Hierarchical Jacobi methods and systems implementing a dense symmetric eigenvalue solver
D’Ambra et al. A parallel generalized relaxation method for high-performance image segmentation on GPUs
Yamaguchi et al. GPU implementation of a sophisticated implicit low-order finite element solver with FP21-32-64 computation using OpenACC
Hatcher et al. A feasibility study for the solution of transient stability problems by multiprocessor structures
CN109753682B (zh) 一种基于gpu端的有限元刚度矩阵模拟方法
Firoz et al. On the feasibility of using reduced-precision tensor core operations for graph analytics
Dong et al. Accelerating the SVD bi-diagonalization of a batch of small matrices using GPUs
CN113641956B (zh) 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法
Iványi CUDA accelerated implementation of parallel dynamic relaxation
US20180349321A1 (en) Parallel processing apparatus, parallel operation method, and parallel operation program
Küchlin PARSAC-2: Parallel computer algebra on the desk-top
Zhang et al. Accelerating lattice QCD on sunway many-core processor
Doroshenko et al. Large-Scale Loops Parallelization for GPU Accelerators.
Hadri et al. Enhancing parallelism of tile QR factorization for multicore architectures
Myllykoski et al. On solving separable block tridiagonal linear systems using a GPU implementation of radix-4 PSCR method
Han et al. Towards efficient tile low-rank GEMM computation on sunway many-core processors
Fialko Parallel algorithms for forward and back substitution in linear algebraic equations of finite element method
Siklósi et al. Bitwise Reproducible task execution on unstructured mesh applications
US20150042672A1 (en) Parallel multicolor incomplete lu factorization preconditioning processor and method of use thereof
Luo et al. Gpu port of a parallel incompressible navier-stokes solver based on openacc and mvapich2
Wang et al. Fine-grained heterogeneous parallel direct solver for finite element problems
Dubey et al. GPU computing for compute-intensive scientific calculation

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