arXiv · 2608.20532
Learning Exact NVIDIA SASS Encoders with $\mathbb{F}_2$ Linear Algebra
Abstract
NVIDIA provides a SASS disassembler but no public SASS assembler for recent data-center GPUs, limiting controlled machine-code rewriting. We present F2Asm, which learns exact 128-bit SASS encoders from paired disassembly and original CUBIN instruction words. To our knowledge, F2Asm is the first system to learn SASS instruction encoders as vector-valued affine maps over \(\mathbb{F}_2\) and the first open-source NVIDIA SASS assembler to support Rubin SM107. F2Asm uses Gaussian elimination over \(\mathbb{F}_2\) to incrementally build a compact basis, detect inconsistencies, and reject inputs outside the learned span. F2Asm separates target-specific control bits, relocation rules, and CUBIN metadata from its learning algorithm. We train encoders for Hopper SM90/SM90a, Blackwell SM100, and Rubin SM107 using 3,225 CUBINs from pinned NVIDIA and third-party production libraries, CUDA 13.3 packages, and CUDA 13.4 Developer Preview archives. In round-trip tests, F2Asm reassembles the disassembled SASS for each CUBIN, and all compared executable text sections match the originals exactly. Joint training with F2Asm provides strong evidence that NVIDIA uses a common SASS encoding scheme for instructions shared among five Blackwell SM targets (SM100, SM100f, SM100a, SM103, and SM103a): one encoder fits all 77,926 observed encoding contexts without contradiction, including 49,566 represented in both the SM100 and SM103 variant groups, and passes byte-exact round-trip tests on 5,335 Blackwell CUBINs.
Explore related subjects
Keep this discovery
Jiading Gai. 2026-08-20. Learning Exact NVIDIA SASS Encoders with $\mathbb{F}_2$ Linear Algebra. https://arxiv.org/abs/2608.20532
Cite the original work for its findings. Save a collection to share your selection of sources.
Discover connections
Connections use source metadata and explicit phrase matches, not verified experimental comparisons.