Я разрабатываю ядро CUDA, которое будет запускаться с 16 потоками на блок потоков. У меня есть массив N int в общей памяти (т.е. на блок потока), который я хочу обработать.
Если шаблон доступа потоков является последовательным в массиве, означает ли это, что конфликтов банков не будет? Я понимаю, что если бы массив был массивом char, были бы конфликты банков, но я не совсем уверен, что произойдет, если это массив int. Я предполагаю, что будут конфликты банков, потому что каждый набор из 4 последовательных целых чисел использует один и тот же банк памяти?
Если это так, то какое правильное решение для предотвращения банковских конфликтов? Скремблирование адресов, как в образце гистограммы?