矩阵相乘在gpu上的并行实现

矩阵相乘在gpu上的并行实现

ID:33606645

大小:375.50 KB

页数:5页

时间:2019-02-27

矩阵相乘在gpu上的并行实现_第1页
矩阵相乘在gpu上的并行实现_第2页
矩阵相乘在gpu上的并行实现_第3页
矩阵相乘在gpu上的并行实现_第4页
矩阵相乘在gpu上的并行实现_第5页
资源描述:

《矩阵相乘在gpu上的并行实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、矩阵相乘在GPU上的并行实现1.问题描述这里讨论矩阵相乘C=A×B,其中矩阵A、B、C均为大小为n×n的方阵。由矩阵相乘定义,可得:Ci,j=∑Ai,k×Bk,j,其中,i,j

2、行并行化,采用CUDAC语言进行编程实现。2.GPU硬件构成(GT200)GT200系列GPU拥有30个SM(StreamingMulti-processor:多处理器),每个SM里拥有8个SP(Streamingprocessor:流处理器),SP是GPU内部最小的计算核心,每8个SP位于同一SM中共享同一套取指单元、译码单元。大量的SP可以同时工作,有着强大的并行计算能力。显存,属于GPU片外存储,由全局存储器(globalmemory)、固定存储器(constantmemory)、纹理存储器(texturememory)

3、三者共同构成,共有4GB大小的空间,这里我们用到了全局存储器,它是对所有的SM可见,由它们共享,全局有着严重的访存延迟;共享存储器(sharedmemory),位于GPU片内,每个SM拥有16KB的共享存储空间,由其内的8个SP共享,它拥有与寄存器差不多一样快的访问速度,是GPU实现应用时性能优化的必要条件。这里我们将SM看作基本的处理器,它们可以以合作的方式对所共享的全局存储器上的数据进行处理,又可以独立地加工自己所特有的共享存储器上的数据,使用后者时,各处理器SM的通信机制通过全局存储器来完成。1.CUDA编程模型CUDA

4、(ComputeUnifiedDeviceArchitecture:统一计算设备架构),是一种将GPU作为数据并行计算设备的软硬件体系。它被分三层并行编程结构:栅格grid、线程块block与线程thread。一个栅格由若干个线程块构成,一个线程块里又包含了若干个线程。CUDA与GPU对应的关系:一个grid对应一个内核(kernel)函数,由一个GPU执行完成;一个block对应一个SM,被分配到一个SM上去执行;一个thread对应一个SP,由一个SP计算完成。2.对应于GPU的棋盘划分矩阵相乘算法及分析所谓棋盘划分(Ch

5、eckerBoardPartitioning)就是将方阵划分为若干个子方阵,每个子方阵指派给一个处理器去执行。棋盘划分又可分为块棋盘划分(Block-CheckerBoardPartitioning)和循环棋盘划分(Cyclic-CheckerBoardPartitioning),这里我们选择块棋盘划分方式。普通多处理器实现时划分方法与处理器个数相关,在有p个处理器时,将这些处理器看作是√p×√p二维处理器阵列,每个处理器均匀地分配有(n/√p)×(n/√p)=n2/p个矩阵元素,而采用GPU并行实现时,由于GPU架构以及CU

6、DA编程模型的限制,划分方法稍有不同。我们采用线程块大小为B×B,即将每个矩阵都划分成大小为B×B的子块,那么矩阵C的计算即转化为(n/B)×(n/B)个B×B子块的计算,每个B×B子块都被分配给一个SM进行执行,所有的这些子块由30个SM进行处理。如图中所示,矩阵C中的(i,j)子块则由矩阵A中处于第i行的N个子块与矩阵B中处于第j列的N个子块中对应子块的乘积之和构成。数据一开始存入在全局存储器中,由于访问全局存储器有着很大的延迟,将数据从全局存储器中调入到共享存储器中进行计算。用GPU实现矩阵相乘时具体步骤如下:(1)初始

7、数据从hostmemory→globalmemory;(2)调用内核函数使用GPU进行计算:(i)将子块Ai,k,Bk×j拷贝至共享内存中;(ii)使用相应的SM完成累加运算;(iii)重复(i)(ii),直到完成Ci×j的计算;(3)计算结果从globalmemory→hostmemory。在CUDA编程模型中,一个子块计算由GPU线程调度器自动分配给空闲的SM执行,对于一个SM来说,它处理完成一个块后会执行后面等待中的子块计算。即,我们定义一个内核程序,而每个SM都会执行这个内核程序。只需要描述一个SM上的算法即可。算法:

8、一个SM上子块矩阵相乘算法输入:An×n,Bn×n,子块大小为B×B,子块个数N×N,其中N=n/B输出:Cn×nBeginfori=0toN-1doforj=0toN-1doCi,j=0fork=0toB-1doCi,j=Ci,j+Ai,k×Bk,jendforendfor

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。