我想了解银行冲突是如何发生的.
如果我在全局内存中有一个256大小的数组,并且我在一个Block中有256个线程,我想将该数组复制到共享内存.因此每个线程复制一个元素.
shared_a[threadIdx.x]=global_a[threadIdx.x]
Run Code Online (Sandbox Code Playgroud)
这个简单的行动会导致银行冲突吗?
现在假设数组的大小大于线程数,所以我现在用它来将全局内存复制到共享内存:
tid = threadIdx.x;
for(int i=0;tid+i<N;i+=blockDim.x)
shared_a[tid+i]=global_a[tid+i];
Run Code Online (Sandbox Code Playgroud)
以上代码会导致银行冲突吗?