CN112765552B - 基于数组打包的矩阵乘法的分块参数空间优化方法 - Google Patents

基于数组打包的矩阵乘法的分块参数空间优化方法 Download PDF

Info

Publication number
CN112765552B
CN112765552B CN202110116531.7A CN202110116531A CN112765552B CN 112765552 B CN112765552 B CN 112765552B CN 202110116531 A CN202110116531 A CN 202110116531A CN 112765552 B CN112765552 B CN 112765552B
Authority
CN
China
Prior art keywords
matrix
parameter space
matrix multiplication
partitioning
rpmm
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
CN202110116531.7A
Other languages
English (en)
Other versions
CN112765552A (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.)
Chongqing Institute of Green and Intelligent Technology of CAS
Original Assignee
Chongqing Institute of Green and Intelligent Technology 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 Chongqing Institute of Green and Intelligent Technology of CAS filed Critical Chongqing Institute of Green and Intelligent Technology of CAS
Priority to CN202110116531.7A priority Critical patent/CN112765552B/zh
Publication of CN112765552A publication Critical patent/CN112765552A/zh
Application granted granted Critical
Publication of CN112765552B publication Critical patent/CN112765552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及基于数组打包的矩阵乘法的分块参数空间优化方法,属于计算机数值计算领域,该方法包括以下步骤:S1:输入矩阵乘法算子;S2:获取相关的信息,选取RPMM变换;S3:定义优化Schedule;S4:计算参数空间;S5:计算缓存复杂度约束和向量化约束;S6:对参数空间进行过滤;S7:从候选参数空间中选取优化参数,结合RPMM变换和Schedule,计算矩阵乘法。本发明能够过滤掉那些由缓存和并行理论指导下的无法提供最佳性能的候选参数组合,用以解决将矩阵乘法的分块和并行计算扩展到多维度问题,能够提高矩阵乘法的计算效率。

Description

基于数组打包的矩阵乘法的分块参数空间优化方法
技术领域
本发明涉及基于数组打包的矩阵乘法的分块参数空间优化方法,属于计算机数值计算领域,尤其适用于基于数组打包的矩阵乘法的分块参数空间优化。
背景技术
深度学习的发展对各个科学领域产生了深远的影响,在自然语言处理(NLP)和计算机视觉(CV)等人工智能领域有显著的价值。随着卷积神经网络(CNN)、递归神经网络(RNN)、长短时记忆(LSTM)和生成性对抗性网络(GAN)等多功能深度学习模型的出现,为了实现其广泛部署和应用于各种硬件终端设备上,尤其是边缘设备和移动终端等,必须将神经网络模型优化到极致。
在工业界和学术界,为了加速各种深度学习(Deep Learning,DL)芯片上的DL模型,将计算映射到DL高效的芯片是非常重要的。在通用芯片上,高度优化的线性代数库——如基本线性代数子程序(BLAS)库(如MKL和cuBLAS)——是有效计算DL模型的基础。以卷积操作为例,DL框架将卷积转换为矩阵乘法,然后调用BLAS库中的通用矩阵乘法(GeneralMatrix Multiplication,GEMM)函数。然而,依赖于上述库和工具在不同的DL芯片上映射DL模型的缺点是它们通常落后于DL模型的快速发展,因而不能有效地利用DL芯片。
为了解决DL库和工具的缺陷,以及减轻手动优化每个DL芯片上的DL模型的负担,DL社区求助于领域特定的编译器技术来拯救。以陈天奇的TVM为例,DL编译器将DL框架中描述的模型定义作为输入,并在各种DL芯片上生成有效的代码实现作为输出。其中由算子操作和优化参数空间定义共同构成的调优空间决定了性能的上限,且往往这个空间是巨大的,其中造成优化参数组合***的主要是多维度多层次的候选分块的参数空间过大,这又和矩阵的大小以及选择的分块策略密切相关。一种分块策略是选择2的幂次,在许多关于GEMM优化的建议中,常常假设矩阵的大小是2的幂次,这是不现实的。例如,在深层神经网络中,卷积是通过将其转化为GEMM问题来实现的,其中矩阵的大小不是2的幂次方;另一种策略则是使用因子,例如陈天奇在2018年的研究“Learning to Optimize Tensor Programs”中使用矩阵大小因子作为分块大小,这样做的一个好处是避免在代码中生成条件测试带来的开销。然而,当矩阵大小的因素较少时,在外部情况下,矩阵大小是一个素数,如此狭窄的候选分片大小范围不能保证覆盖最佳的分块大小。
Sato,Yukinori在2019年的研究“An Autotuning Framework for ScalableExecution of Tiled Code via Iterative Polyhedral Compilation”中提出应该在分块程度和并行负载之间找到最佳的平衡点,以适应缓存内存的复杂性能行为。但其方法仅考虑了单一并行维度且未能利用缓存复杂度等静态分析手段分析所使用算子用例的缓存行为特征。
发明内容
有鉴于此,本发明提供基于数组打包的矩阵乘法的分块参数空间优化方法,通过对矩阵乘法循环程序进行分块参数的优化,过滤掉那些由缓存和并行理论指导下的无法提供最佳性能的候选参数组合,用以解决将矩阵乘法的分块和并行计算扩展到多维度问题,提高矩阵乘法的计算效率。
为达到上述目的,本发明提供如下技术方案:
基于数组打包的矩阵乘法的分块参数空间优化方法,包括以下步骤:
S1:根据工程***问题,建立数学模型,提取其中矩阵乘法算子作为输入;
S2:获取矩阵乘法算子中相乘矩阵的维度信息、运算浮点数精度要求、计算机硬件***的信息,选取数组打包矩阵乘法(Right Pack Matrix Multiplication,RPMM)变换;
S3:根据RPMM变换定义优化进程(Schedule),对循环程序的分块进行优化;
S4:根据相乘矩阵的维度信息,计算出矩阵乘法算子操作的参数空间;
S5:计算针对RPMM变换的缓存复杂度约束和向量化约束;
S6:根据缓存复杂度和向量化约束,对参数空间进行过滤,得出合理的候选参数空间;
S7:采用迭代方法从候选参数空间中选取优化参数,结合RPMM变换和Schedule,计算矩阵乘法。
进一步,步骤S1和步骤S2所述的矩阵乘法的算子形如:CM×N=AM×K·(BN×K)T,将其中的矩阵AM×K、BN×K作为输入。特别地,保证输入的两个矩阵列相同,以便计算机在读取数据和判断数据的正确性等的程序结构简单,减少计算复杂度。
进一步,步骤S2中所述的维度信息为M、K、N的数值,其中,所述的运算浮点数精度要求为满足精度要求所需的字节数Dl;所述的计算机硬件***的信息包含:CPU的核心数P,计算机缓存***第二级缓存的大小L2(单位:字节),计算机缓存***缓存行的大小Cl(单位:字节),向量化大小V(单位:字节)。其中,常用的运算浮点数精度float32对应的字节数Dl=4,运算浮点数精度float64对应的字节数Dl=5;在Linux***中可利用lscpu或getconf-a等命令获取缓存信息(缓存大小L2,缓存行大小Cl);通过获取硬件支持的高级向量扩展指令集AVX(Advanced Vector Extensions)架构获取向量化大小,用于将N维度上矩阵向量化提高计算效率。特别地,本发明不仅仅针对CPU上的矩阵计算,还可以针对GPU等处理器。
为了更好的描述本发明,本发明中,表示向上取整,/为浮点数除法,Mt,Mo,Kt,Nt,No为待优化的参数。
进一步,所述的RPMM算法具体实现为:
S201:将矩阵BN×K在N维度上将矩阵按Nt大小进行预分块,每个分块的计算公式为:D[o,k,i]:=B[o·Nt+i,k],同时还要满足o·Nt+i<N,其中,整数i∈[0,Nt-1],整数k∈[0,K-1],整数表示向上取整,Nt为待优化的参数之一;
S202:按照进行计算,其中,y∈[0,M-1],x∈[0,N-1]。
需要说明的是,本发明所涉及的RPMM算法来源于“Learning to Optimize TensorPrograms”(TVM)基于CPU的矩阵乘法实现,本发明在其基础上做了关于分块和向量化的通用抽象。
进一步,步骤S3所述的优化Schedule为对RPMM算法的循环程序进行优化,通过对分块上限的定义,选取合适的分块因子进行循环程序的分块实现,具体循环程序的分块过程为:
(1)在N维度上进行循环程序的分块,初始对应的循环次数为N次,先将循环程序的循环次数按预分块从外至内分为和Nt两块,再将预分块的最外层循环的循环次数分为No和/>两块,此时循环程序从外至内的循环次数分别为/>No、Nt,并对最内层循环使用向量化技术处理;
(2)在K维度上进行循环程序的分块,初始对应的循环次数为K次,将循环程序从外至内分为和Kt两块,其中,分块后最内层的循环次数Kt为待优化的参数之一;
(3)在M维度上进行循环程序的分块,初始对应的循环次数为M次,现将循环程序从外至内分为Mo、Mt三块,其中,分块后最内层的循环次数Mt为待优化的参数之一。
进一步,步骤S4所述的参数空间G的计算过程为:
S401:计算CPU的核心数P的所有整数因子序列<Px>和对应的因子序列<Py>;其中Px=P/Py
S402:获取矩阵的维度M和N,遍历序列<Px>和<Py>,求得序列Gx=<(No,Nt)>和对应的序列Gy=<(Mo,Mt)>,其中,No·Nt的因子,Mo·Mt为/>的因子;
S403:获取矩阵的维度K的值,计算K的所有整数因子构成的集合Gk
S404:按顺序遍历对应的序列Gx、Gy,构造集合Gxy={(Mo,Mt,No,Nt)|(Mo,Mt)∈Gy,(No,Nt)∈Gx};
S405:构造参数空间G={(Mo,Mt,No,Nt,Kt)|(Mo,Mt,No,Nt)∈Gxy,Kt∈Gk}。
特别地,参数是以数组的形式(Mo,Mt,No,Nt,Kt)捆绑在一起作为一个元素构造成集合的,选取的时候一次必须选取一组,并非单独选取。
进一步,步骤S5所述的RPMM的缓存复杂度约束为:T<Zw/Cw
其中,Zw=L2/Dl,Cw=Cl/Dl,α=Nt/Cw
RPMM的向量化约束为:Nt≥min(N,Vw),其中,Vw=V/Dl
进一步,步骤S6具体为:参数空间G中随机选择一组参数数组,计算出缓存复杂度和向量化约束,对参数空间中不符合约束条件的(Mo,Mt,No,Nt,Kt)进行排除,得出合理的候选参数空间。
值得一提的是,本发明将解决的问题,不仅限于深度学习编译优化框架下的分块参数空间优化,还有应用于诸如MATLAB,ATLAS,PLUTO等用于矩阵运算分块优化工具中。
本发明的有益效果在于:本发明提供了基于数组打包的矩阵乘法的分块参数空间优化方法,结合缓存复杂度分析,重新定义初始化的参数空间,通过对矩阵乘法循环程序进行分块参数的优化,过滤掉那些由缓存和并行理论指导下的无法提供最佳性能的候选参数组合,用以解决将矩阵乘法的分块和并行计算扩展到多维度问题,能够提高矩阵乘法的计算效率。
附图说明
为了使本发明的目的、技术方案,本发明提供如下附图进行说明:
图1为本发明提供的基于数组打包的矩阵乘法的分块参数空间优化方法流程构架图。
具体实施方式
为使本发明的技术方案、实施例的目的以及***架构的优点等更为明晰,下面将结合附图1,对本发明的优选实施例进行详细的描述。
实施例1:计算机实验平台配置如下:操作***为64位Linux4.4.0,编译器为GCC5.4.0,处理器为Intel(R)Core(TM)i7 G9700F,CPU主频为3.00GHz,核心数为8,内存为8GB。针对工程***问题仿真实验中的数学模型在数值求解过程中的矩阵乘法问题,本发明提供了“基于数组打包的矩阵乘法的分块参数空间优化方法”,结合图1,具体步骤为:
步骤一:数学模型进行数值求解可转化为线性方程,形如:“a·x=b”,进一步求解需要计算x=a-1·b,提取其中矩阵乘法算子作为输入;所述的矩阵乘法的算子形如:CM×N=AM×K·(BN×K)T,将其中的矩阵AM×K=a-1、BN×K=bT作为输入。
步骤二:获取矩阵乘法算子中相乘矩阵的维度信息、运算浮点数精度要求、计算机硬件***的信息,选取RPMM变换;所述的维度信息为M、K、N的数值,其中,所述的运算浮点数精度要求float32为满足精度要求所需的字节数Dl=4B;所述的计算机硬件***的信息包含:CPU的核心数P=8,计算机缓存***第二级缓存的大小L2=32KB,计算机缓存***缓存行的大小Cl=64B,向量化大小V=16B。进一步,Zw=L2/Dl=8·1024,Cw=Cl/Dl=16,Vw=V/Dl=4。
进一步,所述的RPMM算法具体实现为:
(1)将矩阵BN×K在N维度上将矩阵按Nt大小进行预分块,计算公式为:D[o,k,i]=B[o·Nt+i,k],同时还要满足o·Nt+i<N,其中,整数i∈[0,Nt-1],整数k∈[0,K-1],整数表示向上取整,Nt为待优化的参数之一;
(2)按照进行计算,其中,y∈[0,M-1],x∈[0,N-1]。
步骤三:根据RPMM变换定义优化Schedule,对循环程序的分块进行优化;所述的优化Schedule为对RPMM算法的循环程序进行优化,通过对分块上限的定义,选取合适的分块因子进行循环程序的分块实现,具体循环程序的分块过程为:
(1)在N维度上进行循环程序的分块,初始对应的循环次数为N次,先将循环程序的循环次数按预分块从外至内分为和Nt两块,再将预分块的最外层循环的循环次数分为No和/>两块,此时循环程序从外至内的循环次数分别为/>No、Nt,并对最内层循环使用向量化技术处理;
(2)在K维度上进行循环程序的分块,初始对应的循环次数为K次,将循环程序从外至内分为和Kt两块,其中,分块后最内层的循环次数Kt为待优化的参数之一;
(3)在M维度上进行循环程序的分块,初始对应的循环次数为M次,现将循环程序从外至内分为Mo、Mt三块,其中,分块后最内层的循环次数Mt为待优化的参数之一。
步骤四:根据相乘矩阵的维度信息,计算出矩阵乘法算子操作的参数空间
(1):计算CPU的核心数8的所有整数因子序列<Px>=<1,2,4,8>和对应的因子序列<Py>==<8,4,2,1>;
(2):获取矩阵的维度M和N,遍历序列<Px>和<Py>,求得序列Gx=<(No,Nt)>和对应的序列Gy=<(Mo,Mt)>,其中,No·Nt的因子,Mo·Mt为/>的因子;例如:当M=4时,Gy=<(1,1),(1,1),((1,2),(2,1)),((1,4),(4,1),(2,2))>;
(3):获取矩阵的维度K的值,计算K的所有整数因子构成的集合Gk
(4):按顺序遍历对应的序列Gx、Gy,构造集合Gxy={(Mo,Mt,No,Nt)|(Mo,Mt)∈Gy,(No,Nt)∈Gx};
(5):构造参数空间G={(Mo,Mt,No,Nt,Kt)|(Mo,Mt,No,Nt)∈Gxy,Kt∈Gk}。
步骤五:计算针对RPMM变换的缓存复杂度约束和向量化约束;所述的RPMM的缓存复杂度约束为:T<512,
其中,α=Nt/16;
RPMM的向量化约束为:Nt≥min(N,4)。
步骤六:根据缓存复杂度和向量化约束,对参数空间进行过滤,得出合理的候选参数空间。
步骤七:采用迭代方法从候选参数空间中选取优化参数,结合RPMM变换和Schedule优化的循环程序,计算矩阵乘法。
经过当下最为流行的深度学习编译框架之一的TVM中加以验证,本发明方法能够实现优化参数空间的矩阵乘法计算,满足32位浮点数计算精度的要求,矩阵计算的正确性得到了保证。
实施例2:计算机实验平台配置如下:操作***为64位Linux4.4.0,编译器为GCC5.4.0,处理器为Intel(R)Core(TM)i7 G9700F,CPU主频为3.00GHz,核心数为8,内存为8GB。针对小(Small)、中(Medium)、大(Large)规模不同维度的矩阵乘法问题进行性能对比,Small={1,8,16},Medium={64,256},Large={1024,4096},本发明提供了“基于数组打包的矩阵乘法的分块参数空间优化方法”,结合图1,包含以下步骤:
步骤一:为保证实验数据样本够大,对每个维度进行343次随机生成矩阵实验,将生成的矩阵作为矩阵乘法算子的输入。
例如,小规模矩阵乘法问题,M∈Small、K∈Small、N∈Small。需要说明的是:M×N×K维度为1×1×1由于不能分块,故不在实施例实验结果考虑范围。
步骤二:获取矩阵乘法算子中相乘矩阵的维度信息、运算浮点数精度要求、计算机硬件***的信息,选取RPMM变换;具体数据的相关设定与实施例1相同。
步骤三:根据RPMM变换定义优化Schedule,对循环程序的分块进行优化。
步骤四:根据相乘矩阵的维度信息,计算出矩阵乘法算子操作的参数空间G。
步骤五:计算针对RPMM变换的缓存复杂度约束和向量化约束。
步骤六:根据缓存复杂度和向量化约束,对参数空间进行过滤,得出合理的候选参数空间G′。
步骤七:采用迭代方法从候选参数空间中选取优化参数,结合RPMM变换和Schedule优化的循环程序,计算矩阵乘法。
本实施例在矩阵乘法计算的性能加速比和参数空间压缩比上进行了对比,其中,性能加速比是通过TVM默认的矩阵乘法程序和本发明方法程序矩阵计算时间进行对比,参数空间压缩比是通过本发明方法的参数空间和TVM默认的矩阵乘法程序的参数空间的对比,实验结果表1所示。虽然性能加速比上本发明方法略逊,但经验告诉我们,性能加速比在[0.95,1.05]的区间是在合理范围内的,即本发明方法能不会丢失最佳分块,使用过滤后的空间覆盖了最佳的参数配置,并且将原有的参数空间缩减为原来的约70.661%。
表1实施例2对比实验结果
性能加速比 参数空间压缩比
0.97531 0.70661
实施例3:由于实施例2考虑的维度都是2的幂次,有利于矩阵乘法的分块计算,在实施例2的计算机配置的基础上,现针对特殊的维度上无明显分块的素数,采用本发明方法进行性能对比实验。采用本发明的方法具体实施步骤与实施例2相同。
本实施例中,M∈{7,11,13}、K∈{23,67,191,383}、N∈{23,67,191,383},同样对每个维度进行343次随机生成矩阵实验。所不同的是,本实施例中,由于素数无法分解,从而无法简单的进行程序的分块,故而需要对TVM提供的矩阵算法进行改进,选取TVM提供的计算策略,以便提升计算效率。
TVM提供了“factors”、“power2”和“verbose”,其中,factors为默认的矩阵乘法的分块策略,为维度因子分块策略;power2为维度向下兼容的最大幂数的因子分块策略;verbose为前两者策略所有因子的总和进行分块的策略。例如:对M维度采用power2的策略,在TVM中的程序语句为:cfg.define_split(″tile_x″,M,num_outputs=3,policy=″power2″)。需要说明的是,本实施例对所有维度都采取相同的分块策略。
本实施例在矩阵乘法计算的性能加速比和参数空间压缩比上进行了对比,实验结果如表2和表3所示。其中,性能加速比是通过TVM默认(factors)的矩阵乘法程序和本发明方法程序矩阵计算时间进行对比,参数空间压缩比是通过本发明方法的参数空间和TVM默认(factors)的矩阵乘法程序的参数空间的对比。
表2实施例3性能加速比对比实验结果
方法 TVM(factors) TVM(power2) TVM(verbose) 本发明方法
性能加速比 1 0.763 1.294 1.249
表3实施例3参数空间压缩比对比实验结果
方法 TVM(factors) TVM(power2) TVM(verbose) 本发明方法
参数空间压缩比 1 23.160 41.625 6.469
本实施例可以看出,本发明在参数空间膨胀不大的情况下,还能够提高24.9%的计算效率。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其做出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

Claims (1)

1.基于数组打包的矩阵乘法的分块参数空间优化方法,其特征在于,包括以下步骤:
S1:根据工程***问题,建立数学模型,提取其中矩阵乘法算子作为输入;
S2:获取矩阵乘法算子中相乘矩阵的维度信息、运算浮点数精度要求、计算机硬件***的信息,选取数组打包的RPMM变换;
S3:根据RPMM变换定义优化Schedule,对循环程序的分块进行优化;
S4:根据相乘矩阵的维度信息,计算出矩阵乘法算子操作的参数空间;
S5:计算针对RPMM变换的缓存复杂度约束和向量化约束;
S6:根据缓存复杂度和向量化约束,对参数空间进行过滤,得出合理的候选参数空间;
S7:采用迭代方法从候选参数空间中选取优化参数,结合RPMM变换和Schedule优化的循环程序,计算矩阵乘法;
步骤S1和步骤S2所述的矩阵乘法的算子形如:CM×N=AM×K·(BN×K)T,将其中的矩阵AM×K、BN×K作为输入;
步骤S2中所述的维度信息为M、K、N的数值,其中,所述的运算浮点数精度要求为满足精度要求所需的字节数Dl;所述的计算机硬件***的信息包含:CPU的核心数P,计算机缓存***第二级缓存的大小L2,计算机缓存***缓存行的大小Cl,向量化大小V;
所述的RPMM算法具体实现为:
S201:将矩阵BN×K在N维度上将矩阵按Nt大小进行预分块,计算公式为:D[o,k,i]:=B[o·Nt+i,k],同时还要满足o·Nt+i<N,其中,整数i∈[0,Nt-1],整数k∈[0,K-1],整数表示向上取整,Nt为待优化的参数之一;
S202:按照进行计算,其中,y∈[0,M-1],x∈[0,N-1];
步骤S3所述的优化Schedule为对RPMM算法的循环程序进行优化,通过对分块上限的定义,选取合适的分块因子进行循环程序的分块实现,具体循环程序的分块过程为:
(1)在N维度上进行循环程序的分块,初始对应的循环次数为N次,先将循环程序的循环次数按预分块从外至内分为和Nt两块,再将预分块的最外层循环的循环次数/>分为No和/>两块,此时循环程序从外至内的循环次数分别为/>No、Nt,并对最内层循环使用向量化技术处理;
(2)在K维度上进行循环程序的分块,初始对应的循环次数为K次,将循环程序从外至内分为和Kt两块,其中,分块后最内层的循环次数Kt为待优化的参数之一;
(3)在M维度上进行循环程序的分块,初始对应的循环次数为M次,现将循环程序从外至内分为Mo、Mt三块,其中,分块后最内层的循环次数Mt为待优化的参数之一;
步骤S4所述的参数空间G的计算过程为:
S401:计算CPU的核心数P的所有整数因子序列<Px>和对应的因子序列<Py>;其中Px=P/Py
S402:获取矩阵的维度M和N,遍历序列<Px>和<Py>,求得序列Gx=<(No,Nt)>和对应的序列Gy=<(Mo,Mt)>,其中,No·Nt的因子,Mo·Mt为/>的因子;
S403:获取矩阵的维度K的值,计算K的所有整数因子构成的集合Gk
S404:按顺序遍历对应的序列Gx、Gy,构造集合Gxy={(Mo,Mt,No,Nt)|(Mo,Mt)∈Gy,(No,Nt)∈Gx};
S405:构造参数空间G={(Mo,Mt,No,Nt,Kt)|(Mo,Mt,No,Nt)∈Gxy,Kt∈Gk};
步骤S5所述的RPMM的缓存复杂度约束为:T<Zw/Cw
其中,Zw=L2/Dl,Cw=Cl/Dl,α=Nt/Cw
所述的RPMM的向量化约束为:Nt≥min(N,Vw),其中,Vw=V/Dl
CN202110116531.7A 2021-01-21 2021-01-21 基于数组打包的矩阵乘法的分块参数空间优化方法 Active CN112765552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110116531.7A CN112765552B (zh) 2021-01-21 2021-01-21 基于数组打包的矩阵乘法的分块参数空间优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110116531.7A CN112765552B (zh) 2021-01-21 2021-01-21 基于数组打包的矩阵乘法的分块参数空间优化方法

Publications (2)

Publication Number Publication Date
CN112765552A CN112765552A (zh) 2021-05-07
CN112765552B true CN112765552B (zh) 2024-05-07

Family

ID=75706382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110116531.7A Active CN112765552B (zh) 2021-01-21 2021-01-21 基于数组打包的矩阵乘法的分块参数空间优化方法

Country Status (1)

Country Link
CN (1) CN112765552B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755771B (zh) * 2023-07-24 2024-04-26 太初(无锡)电子科技有限公司 一种基于软硬件交互反馈的矩阵乘模块合法性验证方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108229654A (zh) * 2016-12-14 2018-06-29 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
WO2020050886A1 (en) * 2018-09-05 2020-03-12 Futurewei Technologies, Inc. Compiler-level general matrix multiplication configuration optimization
CN112199636A (zh) * 2020-10-15 2021-01-08 清华大学 适用于微处理器的快速卷积方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10073815B2 (en) * 2016-05-31 2018-09-11 Palo Alto Research Cener Incorporated System and method for speeding up general matrix-matrix multiplication on the GPU
US10067910B2 (en) * 2016-07-01 2018-09-04 Palo Alto Research Center Incorporated System and method for GPU maximum register count optimization applied to general matrix-matrix multiplication
US10372787B2 (en) * 2017-12-12 2019-08-06 Facebook, Inc. Hardware accelerator pre-configured with coefficients for matrix-transform operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108229654A (zh) * 2016-12-14 2018-06-29 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
WO2020050886A1 (en) * 2018-09-05 2020-03-12 Futurewei Technologies, Inc. Compiler-level general matrix multiplication configuration optimization
CN112199636A (zh) * 2020-10-15 2021-01-08 清华大学 适用于微处理器的快速卷积方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于DCT预测编码的Epiphany-OpenCL大矩阵乘并行计算;龙卓群;王晓瑜;王昌明;;自动化与仪表(07);第22-27页 *

Also Published As

Publication number Publication date
CN112765552A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
Franchetti et al. SPIRAL: Extreme performance portability
Lu et al. SpWA: An efficient sparse winograd convolutional neural networks accelerator on FPGAs
Wittek Algorithm 950: Ncpol2sdpa—sparse semidefinite programming relaxations for polynomial optimization problems of noncommuting variables
Ahmad et al. Preconditioned multishift BiCG for H_2-optimal model reduction
CN112200300A (zh) 卷积神经网络运算方法及装置
CN113761221B (zh) 基于图神经网络的知识图谱实体对齐方法
CN104182209A (zh) 一种基于PETSc的GCRO-DR算法并行处理方法
CN112765552B (zh) 基于数组打包的矩阵乘法的分块参数空间优化方法
Lee et al. Flexible group-level pruning of deep neural networks for on-device machine learning
CN112463159A (zh) 编译方法、装置、电子设备和存储介质
US8583719B2 (en) Method and apparatus for arithmetic operation by simultaneous linear equations of sparse symmetric positive definite matrix
Turner et al. Neural architecture search as program transformation exploration
Asgari et al. Copernicus: Characterizing the performance implications of compression formats used in sparse workloads
CN112765551B (zh) 一种双重约化的矩阵乘法的分块参数空间优化方法
Uddin et al. Rational krylov subspace method (rksm) for solving the lyapunov equations of index-1 descriptor systems and application to balancing based model reduction
Abidi et al. Adaptive rational block Arnoldi methods for model reductions in large-scale MIMO dynamical systems
Oberhuber et al. TNL: Numerical library for modern parallel architectures
CN111339688B (zh) 基于大数据并行算法求解火箭仿真模型时域方程的方法
Holzmüller Efficient neighbor-finding on space-filling curves
Kaveh et al. Decomposition of symmetric mass–spring vibrating systems using groups, graphs and linear algebra
Boukaram et al. H2opus-tlr: High performance tile low rank symmetric factorizations using adaptive randomized approximation
Klinkovský et al. Configurable Open-source Data Structure for Distributed Conforming Unstructured Homogeneous Meshes with GPU Support
Nodine et al. I/O overhead and parallel VLSI architectures for lattice computations
Franco et al. Towards the continuous limit of cluster integrable systems
CN113296954A (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
GR01 Patent grant
GR01 Patent grant