Control Flow Management in Modern GPUs
Mojtaba Abaie Shoushtary, Jordi Tubella Murgadas, Antonio Gonzalez
TL;DR
This work tackles the opacity of control-flow management in NVIDIA GPUs by deriving plausible semantics for the Turing native ISA and introducing Hanoi, a lightweight control-flow mechanism. Hanoi uses a dual-stack microarchitecture with WS and REC stacks, plus Bx/Rx registers and simple predicates, to reproduce realistic reconvergence and interleaving behavior while remaining hardware-efficient. Through extensive binary/trace analysis and a validation checker, the authors show Hanoi closely matches real hardware traces and incurs negligible IPC difference on most benchmarks, with small hardware overhead. The study enables accurate performance modeling and research beyond PTX-based abstractions, offering practical guidance for reconvergence strategies and deadlock avoidance in modern GPUs.
Abstract
In GPUs, the control flow management mechanism determines which threads in a warp are active at any point in time. This mechanism monitors the control flow of scalar threads within a warp to optimize thread scheduling and plays a critical role in the utilization of execution resources. The control flow management mechanism can be controlled or assisted by software through instructions. However, GPU vendors do not disclose details about their compiler, ISA, or hardware implementations. This lack of transparency makes it challenging for researchers to understand how the control flow management mechanism functions, is implemented, or is assisted by software, which is crucial when it significantly affects their research. It is also problematic for performance modeling of GPUs, as one can only rely on traces from real hardware for control flow and cannot model or modify the functionality of the mechanism altering it. This paper addresses this issue by defining a plausible semantic for control flow instructions in the Turing native ISA based on insights gleaned from experimental data using various benchmarks. Based on these definitions, we propose a low-cost mechanism for efficient control flow management named Hanoi. Hanoi ensures correctness and generates a control flow that is very close to real hardware. Our evaluation shows that the discrepancy between the control flow trace of real hardware and our mechanism is only 1.03% on average. Furthermore, when comparing the Instructions Per Cycle (IPC) of GPUs employing Hanoi with the native control flow management of actual hardware, the average difference is just 0.19%.
