You are here: Developer Tools > Desktop Developer Tools > NVIDIA Nsight Visual Studio Edition > Divergent Branch

Overview

The Divergent Branch source-level experiment examines every instruction which may branch, and count how many times each branch was taken by any threads in the warp, not taken by any threads in the warp, or diverged (some threads branched and some did not). Divergent branches cause inefficient use of computational resources, and should be avoided by making all threads in a warp branch together.

Background

See the Branch Statistics experiment for background on why divergent branches should be avoided.

Data Table

Columns

Branch Instructions Executed

Total executed branch instructions (any semantics per warp) regardless predicate or condition code.

Branches Taken

Number of branches taken by at least one thread in the warp.

Branches Not Taken

Number of branches not taken by at least one thread in the warp.

Branches Divergent

Number of branches that multiple threads in the warp took a different branch target.

Branches Efficiency

Percentage of non-divergent branches to all branches. The goal is 100%.

Analysis


of

NVIDIA GameWorks Documentation Rev. 1.0.150630 ©2015. NVIDIA Corporation. All Rights Reserved.