[发明专利]一种复数矩阵的优化方法有效

专利信息
申请号: 201210167484.X 申请日: 2012-05-28
公开(公告)号: CN102722472A 公开(公告)日: 2012-10-10
发明(设计)人: 顾乃杰;杨阳朝;陈强;吴淅 申请(专利权)人: 中国科学技术大学
主分类号: G06F17/16 分类号: G06F17/16
代理公司: 安徽省合肥新安专利代理有限责任公司 34101 代理人: 汪祥虬
地址: 230026 安*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 复数 矩阵 优化 方法
【说明书】:

技术领域

发明属于计算机程序优化方法技术领域,具体涉及中函数优化设计复数矩阵函数的优化方法。

背景技术

随着大规模数学计算在科学、工程、金融等领域的广泛应用,常用数学库基础线性代数程序集(BLAS)已成为各种系统软件必需的矩阵运算工具。另外,对高性能计算进行评价的重要测试线性系统软件包(LINPACK)正是基于基础线性代数程序(BLAS)库进行测试,因此,在不同平台上对基础线性代数程序(BLAS)库的优化是非常重要的。龙芯3A是中国科学院计算技术研究所研制的首款国产四核高性能处理器,采用65nm工艺制造,最高工作主频为1GHz,该芯片内集成了四个64位的四发射超标量GS464高性能处理器核,每个处理器核包含64KB的一级数据缓存(cache)和64KB指令缓存,芯片内集成四核共享的4MB二级Cache,采用128位接口的交叉开关网络(AXI)。其浮点性能的好坏与BLAS库的性能密切相关。而BLAS库中约一半的函数是复数浮点运算函数,因此,对复数矩阵运算进行优化十分必要。以往的类似优化都是针对通用矩阵或特定的其他处理器平台进行优化。基础线性代数程序(BLAS)库本身并没有为复数设计单独的数据结构来完成库函数的运算,导致针对复数的运算规模较大,整体效率较低,从而运行开销较大。

发明内容

本发明的目的是提出一种复数矩阵的优化方法,以克服已有通用的整块进行计算和固定分块大小的计算方法在龙芯上运行时整体效率较低而导致运行开销大的问题。

本发明在龙芯上的复数矩阵的优化方法,其特征在于操作步骤如下:

第一步:利用展开粒度公式KAKB/(KA+KB)=m/n计算最优取数比,其中KA和KB分别为矩阵A和矩阵B的展开粒度,m/n为最优运算取数比,令两个矩阵展开粒度的乘积除以两个矩阵的展开粒度之和所得的值与最优取数比相同,在龙芯上调整两个矩阵的展开粒度KA和KB,使得在循环结构中保证矩阵A和矩阵B的运算取数比m∶n为2∶1,则所得的展开粒度即为在运算中一次循环需要展开的运算次数;

第二步:在矩阵运算时,对于矩阵内数据大于500的大规模矩阵计算,对每一分块进行运算时在循环中采用4×4的展开,每个展开的运算对应龙芯的一个发射槽,通过发射槽发射运算指令给龙芯运算器进行乘加运算;根据矩阵分块公式24×(nb)2≤NK,其中NK为龙芯的一级数据缓存(cache)的大小,将矩阵分块大小nb选取为一个小于52并使得24乘以矩阵分块大小nb的平方(nb)2小于龙芯处理器一级数据缓存64千字节(kb)的最大的值,得到在龙芯上最优的理想矩阵分块大小;

第三步:对于在复数矩阵运算中出现的普通复数乘加运算,利用复数经典算法中两个复数之间的乘法算法,设第一复数为A=x+yi,第二复数为B=m+ni,第三复数为C=p+qi,计算第一复数A乘以第二复数B后再加第三复数C的值,将此值赋给第三复数作为第三复数的新值,算法流程如下:计算第一复数A的实部x乘以第二复数B的实部m的值为第一实数e(e←x×m),计算第一复数A的虚部y乘以第二复数B的虚部n的值为第二实数f(f←y×n),计算第三复数C的实部p加第一实数e后减去第二实数f的值,并将此值付给第三复数C的实部p(p←p+e-f),计算第一复数A的实部x加第一复数A的虚部y的值为第三实数k(k←x+y),计算第二复数B的实部m加第二复数B的虚部n的值为第四实数t(t←m+n),计算第三复数C的虚部q加第三实数k乘以第四实数t的积再减去第一实数e和第二实数f的值,并将此值付给第三实数k的虚部q(q←q+k×t-e-f),则得到第三复数C的新值,通过龙芯发射槽传给运算器参与分块矩阵的运算。

由于现有技术采取的是直接将矩阵全部带入进行计算,或利用通用的固定分块方法进行计算,若在龙芯上用现有技术进行优化运算,就会产生问题规模较大、整体效率较低而导致运行开销大的问题。而本发明的复数矩阵的优化方法,是针对龙芯3A的四发射体系结构和特定的一级数据缓存大小进行的优化,通过计算特定的展开粒度,对复数矩阵进行四乘四循环展开,特定大小分块,并对复数矩阵运算中的普通复数乘加运算利用复数经典算法减小了运行规模,进而使得复数矩阵乘法运算在龙芯3A上的计算性能提高了大约50%,而由于在BLAS库中约一半的函数是复数矩阵浮点运算函数,因此采用本发明复数矩阵的优化方法可使BLAS库在龙芯3A上的运算速度达到原来的2.5倍以上。提高了整体运算效率。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210167484.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top