CUDA registers are private to each thread, which means registers assigned to each thread are not visible to other thread. The compiler makes decisions about register utilization.
Related
- L1 cache and shared memory - shared between threads in a block