I read that “AN instruction is run for all threads in the same warp”.
If thread A has completed first instruction in a warp, will second instruction not be issued to thread A in that warp if and only if first instruction has run for all threads in the same warp?
If answer is yes then can we say it is sort of synchronization?
You read correctly but may misinterpreted. An instruction is run for all threads in a warp which means that for a given warp, it’s running the same instruction contained by multiple threads.
As txbob mentions, threads are executed in lockstep which also requires each thread to be executing the same instruction.
I’m also not 100% sure what you’re asking but the instructions in a thread are still executed sequentially. So if thread A has an instruction, it’ll run that and then it’ll run the next and then the next.