(仅供参考,各方面表述可能有错,概不负责)
首先个人观点说明两个概念,(1)共享存储加速,就是一个线程块内不仅所有线程并发执行,而且各线程还通过共享的内存来实现协作,进一步提升加速效果;(2)全局存储加速,仅仅是前者的前一个加速功能,即所有线程并发执行,线程之间不存在相互协作关系。
考虑两个等大小正方矩阵A(m x m)与B(m x m)相乘,结果存储在C(m x m)中。
1.全局存储
假如m的大小刚好不超过你的计算机的GPU的线程块维度大小的最大值(本人的GPU是512),那么就可以用一个线程块中的m x m个线程并发执行,每个线程(row,col)计算矩阵C中的一个数据C(row,col)。
基于以上假设,因为每个线程是各自独立并发运行计算的,所以整个矩阵的计算效率等价于一个线程的计算效率,也就是只需考虑分析一个线程完成它自己计算任务的速度。一个线程的计算过程如下(图示):
C(row,col)=A(row , 0:m-1)x B(0:m-1 , col)'
其中线程在矩阵A的