首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种图神经网络的变维批处理小矩阵乘法加速方法 

申请/专利权人:中国科学院重庆绿色智能技术研究院

申请日:2024-03-02

公开(公告)日:2024-07-02

公开(公告)号:CN118277715A

主分类号:G06F17/16

分类号:G06F17/16;G06N3/042

优先权:

专利状态码:在审-实质审查的生效

法律状态:2024.07.19#实质审查的生效;2024.07.02#公开

摘要:本发明提供了本发明提供了一种图神经网络的变维批处理小矩阵乘法加速方法,属于高性能计算领域。首先设计了三种不同的变维小矩阵乘法加速策略,包含:针对维度固定或矩阵分布不均的BVSM‑B策略、针对维度跨度较小且分布均匀的BVSM‑M策略、和针对维度跨度较大且分布均匀的BVSM‑G策略;然后提出了优化选取三种策略进行变维批处理小矩阵乘法的具体分支流程。本发明方法可以实现对不同矩阵维度范围和不同矩阵分布情况的数据集自动选择最合理的策略,在CPU平台上与现有方法效率相当,在GPU平台上能够大幅的提高计算效率。

主权项:1.一种图神经网络的变维批处理小矩阵乘法加速方法,其特征在于,针对输入为:含有p个m×m邻接矩阵的数据集DSA={Ai|i=1,2,...,p}以及含有p个m×n的矩阵的数据集DSB={Bi|i=1,2,...,p};得到输出为:由p个m×n的矩阵C构成的数据集DSC={Ci|i=1,2,...,p};其中p,m,n均为正整数,单个矩阵乘法可表示为Ci=Ai×Bi,包括以下步骤:S1:设定当前数据集的容忍度k和区间跨度阈值t;S2:遍历DSA,得到Dmax和Dmin,判断Dmax和Dmin是否相等,若是,则应用BVSM-B策略并执行S8,若否,则执行S3;S3:判断Dmax和Dmin是否属于同一个的区间,若是,则执行S4,若否,则执行S5;S4:遍历该区间获取Bmax和Bmin,判断Bmax和Bmin的比值是否小于k,若是,则应用BVSM-M策略并执行S8,若否,则应用BVSM-B策略并执行S8;S5:判断Dmax和Dmin的差值是否小于t倍的Span,若是,则执行S6,若否,则执行S7;S6:判断BmaxBmin的值是否小于k,若是,则应用BVSM-M策略并执行S8,若否,则应用BVSM-B策略并执行S8;S7:判断BmaxBmin的值是否小于k,若是,则应用BVSM-G策略并执行S8,若否,则应用BVSM-B策略并执行S8;S8:按照选定的变维小矩阵乘法加速策略,完成矩阵乘法,并输出结果;其中,Dmax为数据集DSA中矩阵维度m的最大值;Dmin为数据集DSA中矩阵维度m的最小值;Span表示m维度上的划分区间的跨度大小;t为一个正整数,表示与跨度Span相关的阈值,用于选择不同策略;k为一个正整数,用于判断矩阵在m维度上分布是否均匀;Bmax表示在m维度上连续t个跨度Span的区间中,蕴含矩阵个数的最大值;Bmin为m维度上连续t个区间中,蕴含矩阵个数的最小值;所述的变维小矩阵乘法加速策略BVSM-B,主要针对维度m固定或矩阵分布不均的情形,具体为:B-1初始化LA和LB分别用于存储DSA的所有邻接矩阵和DSB的所有矩阵,初始化TLA和TLB用于存储张量;B-2声明批处理矩阵乘法算子batch_matmul并注册到AnsorTVM模块内;B-3遍历数据集DSA获取矩阵的维度信息,并创建哈希表H,根据哈希表H分割LA和LB,将结果转化为三维张量保存于TLA和TLB;B-4将TLA和TLB中的张量依次传入AnsorTVM,AnsorTVM通过搜索自动生成一个最优的调度模板schedule,AnsorTVM利用schedule计算出矩阵乘法结果保存于DSC中;所述的变维小矩阵乘法加速策略BVSM-M,主要针对维度m跨度较小且分布均匀的情形,具体为:M-1初始化LA和LB分别用于存储DSA的所有邻接矩阵和DSB的所有矩阵,初始化TLA和TLB用于存储张量;M-2声明批处理矩阵乘法算子batch_matmul并注册到AnsorTVM模块内;M-3将LA中的A矩阵的M和K维度依次向Dmax填充,将结果转化为三维张量保存于TLA;同理将LB中的B矩阵的K维度依次向Dmax填充,将结果转化为三维张量保存于TLB;M-4将TLA和TLB中的张量依次传入AnsorTVM,调优后得到最优的调度模板schedule并对输入应用schedule输出结果矩阵保存于DSC中;所述的变维小矩阵乘法加速策略BVSM-G,主要针对维度m跨度较大且分布均匀的情形,具体为:G-1初始化LA和LB分别用于存储DSA的所有邻接矩阵和DSB的所有矩阵,初始化grpA和grpB用于存储分组后的一组矩阵,初始化grpLA和grpLB用于存储分组并填充后的多组矩阵,初始化LDmax存储各个区间的维度最大值;G-2声明批处理矩阵乘法算子batch_matmul并注册到AnsorTVM模块内;G-3将Dmax和Dmin的范围按照跨度Span划分多个区间。遍历数据集DSA获取矩阵的维度信息,并创建哈希表H,根据哈希表H分割LA和LB,在每个区间范围内,将LA中对应维度范围矩阵存于grpA。将LB中对应维度范围矩阵存于grpB;G-4如果Dmax不能够被Span整除,则Dmax=Dmax+Span-Dmax%Span;G-5若Dmin被Span整除,则Dmin=Dmin-Span+1,否则Dmin=Dmin-Dmin%Span+1;G-6遍历全部区间,将各个区间的Dmax存于LDmax;G-7对grpA内的矩阵的M维度和K维度向LDmax中对应Dmax最大化填充并合并,然后转化为张量并存于grpLA;同理对grpB内的矩阵的K维度向LDmax中对应Dmax最大化填充并合并,然后转化为张量并存于grpLB;G-8将grpLA和grpLB中的张量依次传入AnsorTVM,调优后得到最优的调度模板schedule并对输入应用schedule输出结果矩阵保存于DSC中;其中,LA、LB分别为一维指针数组;TLA、TLB分别为存储张量的一维数组;grpA、grpB分别为一维指针数组;grpLA、grpLB分别为一维指针数组;LDmax为一维整型数组。

全文数据:

权利要求:

百度查询: 中国科学院重庆绿色智能技术研究院 一种图神经网络的变维批处理小矩阵乘法加速方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。