[发明专利]一种适用于GPU硬件的矩阵存储与计算方法在审
申请号: | 201910859641.5 | 申请日: | 2019-09-11 |
公开(公告)号: | CN110580675A | 公开(公告)日: | 2019-12-17 |
发明(设计)人: | 邵雪;王晓光;周振亚 | 申请(专利权)人: | 北京华大九天软件有限公司 |
主分类号: | G06T1/60 | 分类号: | G06T1/60;G06T1/20 |
代理公司: | 11467 北京德崇智捷知识产权代理有限公司 | 代理人: | 王金双 |
地址: | 100102 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 非零元素 矩阵 矩阵存储 矩阵元素 非零 存储矩阵 高速访问 矩阵计算 矩阵运算 多线程 列数 行数 访问 | ||
一种适用于GPU硬件的矩阵存储与计算方法,包括以下步骤:1)存储矩阵的行数、列数、非零元素、每个元素是否非零的标志,以及起始非零元素所在位置;2)通过GPU访问矩阵元素,取得矩阵元素是否非零以及非零元素的值,设置矩阵非零元素的值;3)使用GPU进行矩阵运算。本发明的适用于GPU硬件的矩阵存储与计算方法,能实现GPU硬件下多线程高速访问矩阵中的任意元素,从而大幅提升了GPU中矩阵计算的速度。
技术领域
本发明涉及GPU硬件高性能计算领域,具体涉及GPU硬件对矩阵乘法计算及LU分解的高性能计算技术领域,特别涉及一种适用于GPU硬件的矩阵存储与计算方法。
背景技术
近年来高性能计算中矩阵运算的规模越来越大,所需要的计算能力也越来越强,传统CPU构架受限于功耗瓶颈难以进一步提高性能,无法胜任计算的需求。相比之下GPU具有计算资源充足、数据访问带宽高的优势,理想情况下相比CPU可以加速十数倍。但矩阵分解存在高相关性导致算法优化难度很大,GPU应用进展较为缓慢。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种适用于GPU硬件的矩阵存储与计算方法,充分利用GPU硬件的特性,实现矩阵的高性能计算。
为实现上述目的,本发明提供的适用于GPU硬件的矩阵存储与计算方法,包括以下步骤:
1)存储矩阵的行数、列数、非零元素、每个元素是否非零的标志,以及起始非零元素所在位置;
2)通过GPU访问矩阵元素,取得矩阵元素是否非零以及非零元素的值,设置矩阵非零元素的值;
3)使用GPU进行矩阵运算。
进一步地,所述步骤1)进一步包括:
存储矩阵的行数与列数;
按照矩阵行或列的顺序依次存储矩阵的非零元素至第一数组;
存储每行或列中每个元素是否非零的标志至第二数组;
存储每行或列的起始非零元素在所述第一数组中的位置至第三数组。
进一步地,在所述按照矩阵行或列的顺序依次存储矩阵的非零元素至第一数组的步骤还包括,根据矩阵的非零元总数目确定第一数组的大小。
进一步地,在所述存储每行或列中每个元素是否非零的标志至第二数组的步骤还包括,根据矩阵的行或列数确定第二数组的大小,将行或列的矩阵元素的非零标志按照从低到高的顺序分别连续存储至第二数组中,其中每一个bit对应一个矩阵元素,bit值为1代表对应的矩阵元素非零。
进一步地,所述步骤2)进一步包括以下步骤:
根据待读取数据的位置信息,取得其非零标志位;
读取待读取数据所在行或列的首个非零元素的位置,记作第一位置;
计算待读取数据与其所在行或列的首个非零元素之间的位置差,记作第二位置;
计算待读取数据在所述第一数组中的位置,记作第三位置,第三位置=第一位置+第二位置;
根据第三位置在第一数组中读取待读取数据的值。
进一步地,所述步骤3)包括矩阵加法、矩阵减法、矩阵乘法和矩阵LU分解算法。
进一步地,所述矩阵加法包括以下步骤:
判断参与加法运算的两个矩阵中的两个对应数据是否非零;
如果所述两个对应数据均为零元素,则两个对应数据的加运算或减运算结果为零;
如果所述两个对应数据中只有一个数据不为零,则两个对应数据的加运算或减运算的结果为非零数据的正值或负值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华大九天软件有限公司,未经北京华大九天软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910859641.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息处理方法、装置及系统
- 下一篇:人脸漫画形象制作方法、电子装置和存储介质