[发明专利]优化稀疏矩阵向量乘提升不可压缩管流模拟效率的方法有效
申请号: | 201410129845.0 | 申请日: | 2014-04-01 |
公开(公告)号: | CN103984527B | 公开(公告)日: | 2017-12-15 |
发明(设计)人: | 张纪林;万健;刘恩益;毛洁;任永坚;任祖杰;殷昱煜;俞俊;蒋从锋;周丽 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙)33240 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种优化稀疏矩阵向量乘提升不可压缩管流模拟效率的方法。本发明方法采用的QCSR存储结构结合四叉树结构和CSR存储结构的优势对稀疏矩阵进行递归式分解和重排列实现稀疏矩阵的存储,使得稀疏矩阵向量乘运行过程对矩阵形式更具有普适性,尤其适用于总体稀疏但局部存在较多稠密子矩阵的矩阵。本发明方法在CPU/GPU异构并行系统上通过线程映射优化、数据存取优化、数据传输优化和数据复用优化四个策略实现了基于QCSR存储结构的稀疏矩阵向量乘。本发明所公开的方法可在稀疏矩阵向量乘数值计算过程提高数据局部性和缓存命中率,取得了更好的计算加速和整体加速效果,进而提升了不可压缩管流模拟效率。 | ||
搜索关键词: | 优化 稀疏 矩阵 向量 提升 不可 压缩 模拟 效率 方法 | ||
【主权项】:
优化稀疏矩阵向量乘提升不可压缩管流模拟效率的方法,其特征在于该方法具体是:步骤1、读取方程组,利用QCSR存储结构存储稀疏矩阵:首先按照行主序依次读入稀疏矩阵的非零元素,然后按照分块方式对矩阵进行行平均划分,并根据列主序对每个划分块内的元素重新排序存储,在当前划分块区间内,以第一个未在块区间内的非零元素所在列为起始列,按分块方式对矩阵进行列平均划分依次递归划分;最后,当子矩阵块大小小于设定的分块大小时,矩阵递归划分结束,获取叶子结点分块矩阵并保存各叶子结点边界内的元素信息即可完成存储,此时叶子结点分块矩阵的大小与Cache容量相适应;所述的QCSR存储结构是结合了四叉树结构和CRS存储结构的一种存储结构;步骤2、将转换后的稀疏矩阵数据传输到GPU:采用分页锁定的传输方式申请一块写结合类型的内存,再将稀疏矩阵的非零元素拷贝到全局存储器;步骤3、数据存取优化:全局存储器访问方式采用硬件优化的合并访问模式,采用线程块中连续的线程访问连续元素,计算出非零元素的部分乘积,为了满足合并访问模式的要求,对稀疏矩阵进行数组尾部补零对齐,使每行元素个数为16的倍数,起始全局存储器地址对齐到访问数据长度的16倍;步骤4、线程映射优化:一个线程块对应一个行分块,线程块中的线程对应一个叶子节点分块的一行,为每个矩阵行分配一个线程串完成矩阵中相对应的一行非零元素的计算,为了降低稀疏矩阵非零元素分布的影响,在已经进行补零对齐的基础上,各线程块先计算含有叶子节点分块数目较多的行分块;最后将各个线程计算的结果并行求和规约得到最终的计算结果;步骤5、数据复用优化:利用共享存储器存储中间结果元素和行索引,利用纹理存储器存储输入向量;步骤6、执行稀疏矩阵向量乘数值计算:利用GPU的编程模型CUDA实现稀疏矩阵向量乘的并行运算;步骤7、将计算结果传输到CPU:通过并行运算得到稀疏矩阵向量乘的结果,并将结果向量传输到CPU。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410129845.0/,转载请声明来源钻瓜专利网。
- 上一篇:气流粉碎机用喷管结构
- 下一篇:一种可以换向出线的端子座