Конфликт банка общей памяти GPU

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

приводит ли приведенный выше код к конфликту банков?

10
задан M. Tibbits 28 July 2011 в 07:44
поделиться