dgetrf
December 27, 2009, 11:13pm
1
quote a great explanatory drawing from an old post:
bank 0 bank 1 bank 2 bank 3 .... bank 15
A[0][0] A[0][1] A[0][2] A[0][3] .... A[0][15]
A[1][0] A[1][1] A[1][2] A[1][3] .... A[1][15]
A[2][0] A[2][1] A[2][2] A[2][3] .... A[2][15]
...
A[15][0] A[15][1] A[15][2] A[15][3] .... A[15][15]
if 16 threads in half a warp each reads one element of the first column of A, say thread 0 reads A[0][0], threads 1 reads A[1][0], and so on.
Since A[0][0]…A[15][0] are in the same bank, is there any bank conflict in this reading? Looks like not, but just want to confirm this.
Thanks.
LSChien
December 28, 2009, 1:29am
2
quote a great explanatory drawing from an old post:
bank 0 bank 1 bank 2 bank 3 .... bank 15
A[0][0] A[0][1] A[0][2] A[0][3] .... A[0][15]
A[1][0] A[1][1] A[1][2] A[1][3] .... A[1][15]
A[2][0] A[2][1] A[2][2] A[2][3] .... A[2][15]
...
A[15][0] A[15][1] A[15][2] A[15][3] .... A[15][15]
if 16 threads in half a warp each reads one element of the first column of A, say thread 0 reads A[0][0], threads 1 reads A[1][0], and so on.
Since A[0][0]…A[15][0] are in the same bank, is there any bank conflict in this reading? Looks like not, but just want to confirm this.
Thanks.
this is the worst case, 16-way bank-conflict.
dgetrf
December 28, 2009, 2:03am
3
thanks. so looks like a ‘bank’ is really a one way lane no matter how many data is in it, except the broadcast case.
OH yaa… sorry my bad :unsure: … I was confused on how you were accessing the memory… as correctly pointed its worst 16 way bank conflicts. I thought you had threads reading row wise… not column wise…