GPU Design · All levels

Branch Divergence & Predication: Inputs & Outputs

Inputs & Outputs for Branch Divergence & Predication.

Inputs and outputs contract

Inputs & Outputs for Branch Divergence & Predication centers on divergence rate, reconvergence delay, and branch efficiency. The objective is to connect profiler evidence to root-cause mechanism and release-safe action.

Use this as the handoff contract across architecture, kernel, compiler, and silicon teams. Ambiguity here creates expensive late-stage rework.

diagram
INPUTS
  - workload definition and expected KPI target
  - kernel launch geometry, compiler flags, and toolchain versions
  - hardware assumptions: SM count, memory type, clocks, thermal envelope
  - acceptance criteria for throughput, latency tail, and stability

OUTPUTS
  - counter and timeline report with reproducible tags
  - bottleneck classification (compute, memory, fabric, thermal)
  - owner-signed mitigation proposal
  - benchmark rerun summary and release recommendation

Hierarchy map

diagram
GPU MEMORY HIERARCHY — Branch Divergence & Predication

                [ Registers ]
              latency:   1-2 cycles
                     |
                [ Shared/L1 ]
              latency:  20-40 cycles
                     |
                    [ L2 ]
              latency: 150-250 cycles
                     |
             [ HBM/GDDR VRAM ]
              latency: 300ns+ effective

Optimization lens: capacity vs latency

Scheduler map

diagram
WARP SCHEDULER VIEW — Branch Divergence & Predication

cycle ->      0    1    2    3    4
eligible   [W1,W2,W5] [W2] [W2,W7] [W7] [W3,W7]
issued         W1      W2    W7      W7    W3
stall reason    -    dep wait  -   mem wait  -

Scheduler objective: keep issue slots non-empty.
Focus: eligible warp quality

GPU deep dive

Warp scheduling quality determines whether latency hiding survives real control-flow and memory variance.

Concept diagram

diagram
WARP SCHEDULING LOOP

ready warp? -> issue -> dependency wait -> reconverge -> issue

Metric graph

diagram
STALL REASON SHARE

long scoreboard    ███████
divergence replay  █████
barrier wait       ███

Reports and artifacts

  • eligible warp ratio

  • stall reason histogram

  • barrier wait cycles

  • scheduler fairness report

Mini case study

A barrier-heavy kernel looked occupancy-safe, but warp arrival imbalance turned sync points into dominant stalls.

Debug branches

  • Compare scheduler policy traces under bursty workloads

  • Measure reconvergence delay and predication side effects

  • Quantify barrier idle time before tuning launch size

Senior review question

Ask: which metric and benchmark pairing proves this topic is truly closed in production context?

Key takeaways

  • Always pair micro-kernel metrics with end-to-end workload impact.

  • Lock toolchain, driver, and launch metadata before comparing performance results.

Common pitfalls

  • Optimizing occupancy without checking memory-system saturation.

  • Comparing profiler captures from different driver or compiler builds.

  • Declaring wins without reproducible accuracy and performance gates.

Handoff explanation

Inputs are not only API parameters or RTL configuration bits. For GPU design, inputs include workload distribution, launch geometry, shader/compiler form, memory layout, clocks, thermal state, SKU target, and runtime policy. Missing any of these makes the same counter mean different things.

Outputs must be decision-ready: divergence rate, reconvergence delay, and branch efficiency, the artifact set (branch mask timeline, reconvergence stack trace, and predication tradeoff report), a bottleneck class, owner, expected effect, and regression scope. A handoff that says only "performance improved" is not enough for architecture or silicon signoff.

The safest handoff format is a before/after packet: workload, revisions, counters, traces, root-cause hypothesis, chosen change, rejected alternatives, and rollback criteria.