前两天看矩阵乘法的cuda的例子,写程序的时候遇到一个问题
比如一个A=MM的矩阵。。
设定
dim3 grid(M);
dim3 block(1,M/4);
然后我想用每个block的thread读取MM矩阵的每一列的数据,
比如对于blockIDx.x=0,
0thread读取A[0]数据,1thread读取A[M+1]数据,以此类推。。
A存在global内存里面,那这样读取的话,效率是不是很低??
有没有什么好的方法解决这个问题。。
比如说在cpu端将A的数据做转置??
特别希望了解在cuda程序下怎么处理??
本来是写错的程序,偶然遇到这个问题,衷心求解
谢谢。。
效率比较低!尤其是1.0和1.1的显卡上。
转置是一个办法,另外也可以考虑一个块读一行