一句话:提出 SIMT-Step 操作语义,以动态基本块精确刻画 GPU 子组同步执行,并在 TLA+ 与多厂商 GPU 上验证。
GPU 硬件采用 SIMT 执行模型,子组(warp)内线程同步执行,语言通过高性能子组 API 暴露该行为。但编译器可能变换程序,破坏源级同步语义,且现有 GPU 语言缺乏严格子组语义。本文提出 SIMT-Step:一种灵活的操作语义,核心是动态基本块,可精确描述收敛的子组执行,并将指令执行建模为 collective、synchronous 或 independent。作者设计多种候选实例化及惯用测试来区分它们,在 TLA+ 中实现,测试均可在 1 秒内验证。随后跨 9 种 GPU、7 家厂商进行模糊测试,发现尽管官方规范不作保证,多数 GPU 仍表现出强同步行为。该工作为 GPU 子组语义提供理论基础与实践工具。
GPU hardware implements a SIMT execution model, where small groups of threads, called subgroups (or warps in CUDA), execute synchronously. Languages expose this through high-performance subgroup-level APIs. However, providing precise subgroup semantics in languages is challenging, as compilers may transform the program, potentially disrupting source-level synchronous behavior even if the hardware is synchronous. As a result, no GPU programming language provides rigorous semantics for subgroup execution. In this work, we present SIMT-Step, a formal and flexible operational semantics for subgroup execution. At its core is a new semantic object, dynamic basic blocks, which enables precise specification of converged subgroup execution. SIMT-Step then provides flexibility for the execution of instructions, which can be collective, synchronous, or independent. We propose several candidate instantiations of SIMT-Step and design a suite of idiomatic tests to distinguish them, highlighting counter-intuitive behavior that arises under relaxed variants. We implement SIMT-Step in TLA+ and validate the behavior of the idiomatic tests, all of which can be verified in under one second. Finally, to investigate how closely SIMT-Step models real-world GPU behavior, we conduct a large fuzzing campaign, spanning nine GPUs and seven vendors. Our results show that, despite hesitancy to provide guarantees in official specifications, most GPUs exhibit strongly synchronous behavior. Combined, these contributions provide both a theoretical foundation and practical tools for reasoning about subgroup semantics in GPU programming languages.
@article{paperbot3763,
title = {SIMT-Step Execution: A Flexible Operational Semantics for GPU Subgroup Behavior},
author = {Zheyuan Chen and Naomi Rehman and Guido Martínez and Tyler Sorensen},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {PLDI},
year = {2026},
doi = {10.1145/3808297}
}