Branch predication on GPU

Viewed 6135

I have a question about branch predication in GPUs. As far as I know, in GPUs, they do predication with branches.

For example I have a code like this:

if (C)
 A
else
 B

so if A takes 40 cycles and B takes 50 cycles to finish execution, if assuming for one warp, both A and B are executed, so does it take in total 90 cycles to finish this branch? Or do they overlap A and B, i.e., when some instructions of A are executed, then wait for memory request, then some instructions of B are executed, then wait for memory, and so on? Thanks

1 Answers
Related