How costly is branching? In other words, if I decide to put branches into my code, how much will I lose? I understand that nothing is lost if all threads in a (half?) warp evaluate to the same code branch, but how much does the actual evaluation cost?
From the pipeline aspect, an unpredictable jump costs at least 4 extra cycles.