[发明专利]一种适用于GPU的自适应多行折叠存储方法在审
| 申请号: | 202110835802.4 | 申请日: | 2021-07-23 |
| 公开(公告)号: | CN113469870A | 公开(公告)日: | 2021-10-01 |
| 发明(设计)人: | 计卫星;高建花;王一拙;石峰 | 申请(专利权)人: | 北京理工大学 |
| 主分类号: | G06T1/20 | 分类号: | G06T1/20;G06T1/60;G06F9/50 |
| 代理公司: | 北京东方盛凡知识产权代理事务所(普通合伙) 11562 | 代理人: | 李娜 |
| 地址: | 100081 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 适用于 gpu 自适应 折叠 存储 方法 | ||
1.一种适用于GPU的自适应多行折叠存储方法,其特征在于,包括以下步骤,
采集用于稀疏矩阵的CSR编码,通过设置折叠粒度和阈值,获得所述稀疏矩阵的非零元阈值;
遍历所述稀疏矩阵的行指针数组,基于所述非零元阈值进行多行折叠,获得每个折叠行的行索引和行指针位置;
根据所述行索引、所述行指针位置,对所述稀疏矩阵进行分块并采集每块折叠块对应的所述折叠行的所述行索引和所述行指针位置;
遍历所述稀疏矩阵的列索引和值数组,基于所述列索引,在分块后的所述折叠行内添加非零元,构建自适应多行折叠存储结构,用于实现所述稀疏矩阵的多行折叠存储。
2.根据权利要求1所述的一种适用于GPU的自适应多行折叠存储方法,其特征在于,
在获得所述稀疏矩阵的所述非零元阈值的过程中,基于所述CSR编码的规模以及每行CSR编码的非零元数,获得所述非零元阈值。
3.根据权利要求2所述的一种适用于GPU的自适应多行折叠存储方法,其特征在于,
在进行多行折叠的过程中,采集小于等于所述非零元阈值的所述非零元数对应的行数,根据所述行数进行折叠获得所述折叠行,其中,所述行数为连续行数。
4.根据权利要求3所述的一种适用于GPU的自适应多行折叠存储方法,其特征在于,
在对所述稀疏矩阵进行分块的过程中,采集所述折叠行中大于等于所述阈值的所述非零元数对应的折叠行数,获得所述折叠块,其中,所述折叠行数为连续折叠行数。
5.根据权利要求4所述的一种适用于GPU的自适应多行折叠存储方法,其特征在于,
在构建所述自适应多行折叠存储结构的过程中,所述非零元按照所述列索引从小到大进行存储。
6.根据权利要求5所述的一种适用于GPU的自适应多行折叠存储方法,其特征在于,
采集所述非零元的局部偏移量,通过压缩编码的方式,将所述局部偏移量添加到所述列索引中。
7.一种适用于GPU的自适应多行折叠存储系统,其特征在于,包括,
数据采集与预处理模块,用于采集用于稀疏矩阵的CSR编码,通过设置折叠粒度和阈值,获得所述稀疏矩阵的非零元阈值;
折叠模块,用于遍历所述稀疏矩阵的行指针数组,基于所述非零元阈值进行多行折叠,获得每个折叠行的行索引和行指针位置;
分块模块,用于根据所述行索引、所述行指针位置,对所述稀疏矩阵进行分块并采集每块折叠块对应的所述折叠行的所述行索引和所述行指针位置;
折叠存储模块,用于遍历所述稀疏矩阵的列索引和值数组,基于所述列索引,在分块后的所述折叠行内添加非零元,构建自适应多行折叠存储结构,用于实现所述稀疏矩阵的多行折叠存储。
8.根据权利要求7所述的一种适用于GPU的自适应多行折叠存储系统,其特征在于,
所述数据采集与预处理模块包括,
折叠粒度和阈值设置单元,用于获得折叠粒度和阈值;
非零元阈值计算单元,用于根据所述CSR编码的规模以及每行CSR编码的非零元数,获得所述非零元阈值。
9.根据权利要求8所述的一种适用于GPU的自适应多行折叠存储系统,其特征在于,
所述折叠存储模块包括,
非零元存储单元,用于将所述非零元按照所述列索引从小到大进行存储到所述折叠行;
局部偏移量存储单元,用于通过采集所述非零元的局部偏移量,通过压缩编码的方式,将所述局部偏移量添加到所述列索引中。
10.根据权利要求7-9任一权利要求所述的一种适用于GPU的自适应多行折叠存储系统,其特征在于,
所述自适应多行折叠存储系统用于实现GPU的SpMV和SpGEMM算法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110835802.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种特征比对方法、装置及系统
- 下一篇:一种农业种植用农药喷洒装置





