False sharing is defined on CPU as when atleast two cores write to the same cache line. If the two cores have their own private caches, one will invalidate the other's cache line when they write to the same cache line, resulting in slow down.
Memory coalescing is defined on GPU as when contiguous threads in a warp accesses contiguous memory addresses. This results in speed up for GPU.
First off, is my understanding of the two terms correct?
and second, false sharing and memory coalescing seem to contradict each other but WHY does memory coalescing give performance improvements while not introducing false sharing? I don't think I understand the GPU architecture...