[发明专利]基于GPU的稀疏矩阵数据存储方法有效
申请号: | 201110415911.7 | 申请日: | 2011-12-13 |
公开(公告)号: | CN102436438A | 公开(公告)日: | 2012-05-02 |
发明(设计)人: | 金海;郑然;胡侃;曾敬翔;冯晓文 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于GPU的稀疏矩阵数据存储方法,该方法包括:1)对行长度数组length[]按照升序排序;2)按每行非零元素的个数将数组length[]分为[0,8),[8,16),[16,32),[32,+∞)四段,每段分别合并32、16、8、4行;3)对各数据段中的行进行补零操作,对各数据段进行补行操作,所补行的元素全为零;4)产生SC-CSR格式的三个一维数组cval[]、ccol_ind[]、crow_ptr[],本发明的方法中,分段处理降低了每行的行长度变化幅度,从而减少了线程束、线程块间的负载不平衡,相邻行交错合并避免了行非零元素少于32时的线程束计算资源浪费,提高了CUDA显存联合访问的效率,并减少了计算内核并行归约的步骤,从而显著提高了稀疏矩阵向量乘的计算性能。 | ||
搜索关键词: | 基于 gpu 稀疏 矩阵 数据 存储 方法 | ||
【主权项】:
一种基于GPU的稀疏矩阵数据存储方法,包括以下步骤:CPU读取矩阵文件,并将其转化为稀疏行压缩格式;计算所述稀疏行压缩格式中每行非零元素的个数,并将其存储于数组length[]中;对所述数组length[]按照升序排序;根据所述数组length[]中每行非零元素的个数将所述数组length[]分为[0,8),[8,16),[16,32),[32,+∞)四段;设置计数器i=0,并初始化数组c[4]={32,16,8,4};判断第i段包含的行数除以c[i]是否大于GPU满负荷运行的阈值;若第i段包含的行数除以c[i]大于GPU满负荷运行的阈值,则将第i段作为一个数据段;对所述数据段中每c[i]行执行补零操作,使其每行的长度与c[i]行中非零元素最多的一行的长度相同;判断所述数据段中行的总数目是否是c[i]的最小整数倍;若所述数据段中行的总数目是c[i]的最小整数倍,则按照从上到下、从左到右的顺序将每c[i]行中的元素合并成一行,并将其存储于数组cval[]中;创建数组ccol_ind[]和crow_ptr[],所述数组cval[]中非零元素在所述数组ccol_ind[]中的值为其在所述稀疏行压缩格式中的列坐标,所述数组cval[]中零元素在所述数组ccol_ind[]中的值为‑1,所述数组crow_ptr[]中的值为所述数组cval[]中行的首个元素在所述数组cval[]中的指针;设置计数器i=i+1;判断i是否等于4;若i等于4,则CPU保存数组cval[]、ccol_ind[]和crow_ptr[]。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110415911.7/,转载请声明来源钻瓜专利网。
- 上一篇:点眼容器
- 下一篇:一种电子节目单解析方法及装置