[发明专利]一种基于龙芯3B的自适应矩阵乘法优化方法有效
申请号: | 201310442878.6 | 申请日: | 2013-09-25 |
公开(公告)号: | CN103530276A | 公开(公告)日: | 2014-01-22 |
发明(设计)人: | 顾乃杰;赵增;张孝慈;张明 | 申请(专利权)人: | 中国科学技术大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 安徽省合肥新安专利代理有限责任公司 34101 | 代理人: | 何梅生 |
地址: | 230026*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 自适应 矩阵 乘法 优化 方法 | ||
技术领域
本发明属于电数字数据处理技术领域,具体涉及基于龙芯3B的线性系统软件包优化方法。
背景技术
龙芯3B是中国第一个具有完全自主知识产权的八核中央处理器(CPU)。在高性能计算领域,龙芯3B需要基础线性代数子程序库的支持。根据官方发布的龙芯3B处理用户手册说明,现有龙芯3B处理器在龙芯3A处理器的基础上增加了高速缓冲存储器(cache)锁窗口、直接寄存器存取器(DRA)、直接高速缓冲存储器存取器(DCA)等功能。每个中央处理器(CPU)核均采用4发射超标量结构,包含两个256位的向量部件,128x256比特的浮点寄存器堆,可以存放512个双精度浮点数,CPU的工作频率为1GHz,浮点理论性能为128Gflops。由于龙芯3B系列处理是由中科院计算所自主研发的国产处理器,其体系结构与其他处理器有较大差别,目前已有的通用基础线性代数子程序库在龙芯3B系统上的运行性能普遍不高。作为基础线性代数子程序库的矩阵乘法运算需经过相应优化才能发挥龙芯3B实际的计算性能。目前已有的基于龙芯3B硬件体系的矩阵乘法运算优化方法普遍存在编程麻烦,调试困难的问题。发明内容
本发明是为避免上述现有技术所存在的不足之处,提供一种基于龙芯3B的自适应矩阵乘法优化方法,通过调整分块参数M、K、N、l、h、g的数值以达到在龙芯3B平台上矩阵乘法运算优化的高效自适应实现。
本发明为解决以上技术问题采用如下方案:
本发明一种基于龙芯3B的自适应矩阵乘法优化方法的特点是:所述优化方法按如下步骤进行:
步骤1、对乘法矩阵和被乘矩阵进行一次分块
以龙芯3B上的乘法矩阵的起始地址为基准划分为列长为M宽为K的单元乘法矩阵,以所述龙芯3B上的被乘矩阵的起始地址为基准划分为列长为K宽为N的单元被乘矩阵,所述单元乘法矩阵和单元被乘矩阵的大小不超过二级高速缓冲存储器L2-cache的大小;
步骤2、预取分块后的乘法矩阵和被乘矩阵至二级高速缓冲存储器L2-cache
2-1、通过nmap函数映射获得所述龙芯3B上的直接高速缓冲存储器存取器DCA的控制寄存器的读写虚地址;
2-2、将直接高速缓冲存储器存取器DCA的控制寄存器的源矩阵行元素个数域赋值为所述单元乘法矩阵的列长M,
2-3、将直接高速缓冲存储器存取器DCA的控制寄存器的源矩阵列元素个数域赋值为所述单元乘法矩阵的行宽K;
2-4、将直接高速缓冲存储器存取器DCA的控制寄存器的源矩阵起始地址域赋值为所述单元乘法矩阵所在内存空间的起始地址;
2-5、将所述单元被乘矩阵的数据复制到二级高速缓冲存储器L2-cache中;
步骤3、对分块后的乘法矩阵和被乘矩阵进行二次分块
将所述二级高速缓冲存储器L2-cache中的单元乘法矩阵划分为列长为l宽为h的次单元乘法矩阵,将所述二级高速缓冲存储器L2-cache中的单元被乘矩阵划分为列长为h宽为g的次单元被乘矩阵;
步骤4、预取二次分块后的乘法矩阵和被乘矩阵至寄存器堆中
通过nmap函数映射获得所述龙芯3B上的直接寄存器存取器DRA的控制寄存器的读写基地址;
步骤A、二次分块后的乘法矩阵的预取
A1、将直接寄存器存取器DRA的Cr2寄存器的行宽域赋值为所述次单元乘法矩阵的行宽h;
A2、将直接寄存器存取器DRA的Cr2寄存器的次数域赋值为所述次单元乘法矩阵的列长l;
A3、将直接寄存器存取器DRA的Cr3寄存器的寄存器堆起始域赋值为存放次单元乘法矩阵的寄存器堆的起始地址;
A4、将直接寄存器存取器DRA的R0寄存器的源矩阵起始地址域赋值为次单元乘法矩阵所在内存空间的起始地址;
步骤B、二次分块后的被乘矩阵的预取
B1、将直接寄存器存取器DRA的Cr4寄存器的行宽域赋值为所述次单元被乘矩阵的行宽g;
B2、将直接寄存器存取器DRA的Cr4寄存器的次数域赋值为所述次单元被乘矩阵的列长h;
B3、将直接寄存器存取器DRA的Cr5寄存器的寄存器堆起始域赋值为存放次单元被乘矩阵的寄存器堆的起始地址;
B4、将直接寄存器存取器DRA的R1寄存器的源矩阵起始地址域赋值为次单元被乘矩阵所在内存空间的起始地址;
步骤5、对所述寄存器堆中的次单元乘法矩阵和次单元被乘矩阵进行乘加运算
C1、CPU等待直接寄存器存取器DRA发送的取数中断命令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310442878.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有高刚度和良好光学性质的热成型制品
- 下一篇:一种离合器位置传感装置