Я пытаюсь понять, как происходят банковские конфликты.
если у меня есть массив размером 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];
имеет ли вышеуказанный код конфликт банков?