Explain the difference between shared memory and global memory in a GPU. How do you avoid bank conflicts?