[发明专利]一种自适应稀疏矩阵向量乘策略选择及优化方法在审
申请号: | 202210066813.5 | 申请日: | 2022-01-20 |
公开(公告)号: | CN114491401A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 胡长军;卢旭;储根深;何远杰;董玲玉;邢龙岳 | 申请(专利权)人: | 北京科技大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 北京市广友专利事务所有限责任公司 11237 | 代理人: | 张仲波;付忠林 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自适应 稀疏 矩阵 向量 策略 选择 优化 方法 | ||
1.一种自适应稀疏矩阵向量乘策略选择及优化方法,适用于GPU架构,其特征在于,所述自适应稀疏矩阵向量乘策略选择及优化方法包括:
对待处理矩阵按行进行分块,得到多个矩阵子块;
统计各矩阵子块的非零元素数,若各矩阵子块的非零元素数差别倍数高于第一预设阈值,则采用自适应的CSR-Vector算法对各矩阵子块进行处理;
统计待处理矩阵的行平均非零元素个数,若待处理矩阵的行平均非零元素个数低于第二预设阈值,则采用改进的CSR-Stream算法进行求解;
统计待处理矩阵的非零元素个数,若待处理矩阵的非零元素个数大于第三预设阈值,则采用hola算法进行求解;
若以上条件均不满足,则采用CSR-Vector算法进行求解。
2.如权利要求1所述的自适应稀疏矩阵向量乘策略选择及优化方法,其特征在于,所述采用自适应的CSR-Vector算法对各矩阵子块进行处理,包括:
以wavefront作为资源分配的单位,对于各矩阵子块,根据非零元素数量分别对应地分配不同数量的wavefront进行计算;
在wavefront内部,针对不同的矩阵子块,设置不同的VECTOR_SIZE。
3.如权利要求2所述的自适应稀疏矩阵向量乘策略选择及优化方法,其特征在于,所述VECTOR_SIZE的计算方式为:
其中,nnz_blocki为第i个矩阵子块的非零元素数,rowi为第i个矩阵子块的行数量,表示向下取整,Pow(x)表示大于或等于x的且最小的2的整数次幂。
4.如权利要求1所述的自适应稀疏矩阵向量乘策略选择及优化方法,其特征在于,所述采用改进的CSR-Stream算法进行求解,包括:
初始化,包括:给定正整数rows_per_block和block_lds_size,分别表示一个block处理的行数量和block拥有的共享内存大小;设置block数量和block内的线程数量,其中,block数量为m为待处理矩阵行数;block内线程数量为固定值;依据行平均非零元素数设置参数VECTOR_SIZE:
在核函数内部:计算当前block处理的行的范围,确定起始行和结束行;
依据block的起始行和结束行,获取当前block所需要访问的非零元素数组和列索引数组的起始索引和结束索引;
依据block所需要访问的非零元素数组和列索引数组的起始索引和结束索引,计算当前block所需要处理的非零元素数量;
若block所需要处理的非零元素数量不大于block_lds_size,则调用CSR_Stream算法进行当前block中矩阵行的计算;
若block所需要处理的非零元素数量大于block_lds_size,则采用CSR-Vector思想进行计算,具体为:先根据当前block实际所需要计算的行数量n_block_rows、block中vector的数量及VECTOR_SIZE参数,将n_block_rows行划分给各vector,各vector内执行标准的CSR-Vector算法的计算流程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京科技大学,未经北京科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210066813.5/1.html,转载请声明来源钻瓜专利网。