【发布时间】:2011-05-22 17:23:02
【问题描述】:
我正在尝试了解银行冲突是如何发生的。
如果我在全局内存中有一个大小为 256 的数组,并且我在一个块中有 256 个线程,并且我想将该数组复制到共享内存。因此每个线程都复制一个元素。
shared_a[threadIdx.x]=global_a[threadIdx.x]
这个简单的操作会导致银行冲突吗?
现在假设数组的大小大于线程数,所以我现在用这个把全局内存复制到共享内存中:
tid = threadIdx.x;
for(int i=0;tid+i<N;i+=blockDim.x)
shared_a[tid+i]=global_a[tid+i];
上面的代码会导致银行冲突吗?
【问题讨论】:
标签: c++ cuda gpgpu bank-conflict