Warp writes to the shared memory

Hi all,

Assume we have 16 arrays, each of which resides in separate bank of the shared memory. Each thread of the half-warp (16 threads) corresponds to one of these 16 array, i.e. each thread of the half-wrap can write into its array without conflicts with the other threads within the half-wrap. Assume also that we have several half-warps in the block, thus threads from different half-warps may write the same shared memory location. I wonder if there is a guarantee that all these writes would succeed. Or I still need to use atomic functions for that…
Tried to search in the programming guide, but found the answer only for global memory.