Map highly parallel work onto graphics processing units using threads, warps or wavefronts, thread blocks, and memory spaces. Analyze divergence, occupancy, coalescing, synchronization, and CPU–GPU data movement.