I would like to be sure that I understand correctly bank conflicts in shared memory. I have 32 portions of data. These portions consists of 128 integers.
|0, 1, 2, ..., 125, 126, 127| ... |3968, 3969, 3970, ..., 4093, 4094, 4095|
Each thread in a warp access only it's own portion.
Thread 0 access position 0(0) in portion 0
Thread 1 access position 0(128) in portion 1
Thread 31 access position 0(3968) in portion 31
Does it mean that I have here 32 conflicts? If yes, then if I will stretch portions to 129 elements, then each thread will access unique bank. Am I right?