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?

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?

  1. instructions issued to a warp always run for all threads in the same warp, in lockstep, as close as the machine can achieve to this
  2. many instructions are pipelined. It’s generally not correct to assume that a previously issued instruction has completed when a particular instruction is issued.

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.