The kernel parameters are stored in on-chip shared memory. Shared memory can have bank conflicts if threads try to access the same bank. So my question is: does that mean that using kernel parameters threads will cause bank conflicts?
Can using kernel parameters cause bank conflicts? [closed]
Asked Answered
No, because accesses will always be uniform: All threads of the (on compute capability 1.x half-) warp will read the same parameter at the same time, which is broadcast to all threads in a single transmission.
For completeness, I'll mention that only compute capability 1.x devices store parameters in shared memory. Higher compute capability devices store them in constant memory, where the same uniformity reasoning applies.
I have to correct myself slightly here: Since only compute capability 1.x stores parameters in shared memory, and access on compute capability 1.x is per half-warp, it will take two transmissions for a warp to read a parameter. It is still correct though that this is the minimum number possible. –
Musca
© 2022 - 2024 — McMap. All rights reserved.