6502
Hardware

Updated Minimum Requirements for NVIDIA GPU Compilation in Rust 1.97

Posted by u/Oppise Stack · 2026-05-03 13:53:25

Starting with Rust 1.97, the compilation target for NVIDIA GPUs (nvptx64-nvidia-cuda) will adopt higher baseline standards for PTX ISA version and GPU architecture. This change affects both the Rust compiler and associated host tools, ensuring better correctness and performance for supported hardware. Below are the key questions and answers about this update.

What is changing for the nvptx64-nvidia-cuda target in Rust 1.97?

In Rust 1.97, the minimum PTX ISA version rises from earlier options to PTX ISA 7.0, and the minimum GPU architecture becomes SM 7.0 (Volta or later). This means any PTX generated by the compiler will require a CUDA driver version that supports PTX ISA 7.0 (CUDA 11 or newer) and will only run on GPUs with compute capability at least 7.0. Older GPUs like Maxwell (SM 5.x) and Pascal (SM 6.x) are no longer supported. The default -C target-cpu value becomes sm_70 if not explicitly specified.

Updated Minimum Requirements for NVIDIA GPU Compilation in Rust 1.97
Source: blog.rust-lang.org

Why is Rust raising the baseline PTX ISA and GPU architecture requirements?

Previously, Rust supported a broad range of GPU architectures and PTX ISA versions, but this wide support introduced several defects. These defects could cause valid Rust code to trigger compiler crashes or miscompilations. By raising the baseline, the Rust team can eliminate these issues and provide more robust support for the remaining hardware. The affected GPUs (pre-Volta) date back to 2017 and are no longer actively maintained by NVIDIA, so the impact is expected to be minimal. Maintaining compatibility with these older architectures would have required substantial development effort that is better spent on improving correctness and performance for current GPUs.

What are the new minimum supported PTX ISA and GPU architecture versions?

After Rust 1.97, the minimum PTX ISA version is 7.0, which requires a CUDA driver from CUDA 11 or later. The minimum GPU architecture is SM 7.0, corresponding to NVIDIA's Volta microarchitecture and later (e.g., Turing, Ampere, Ada Lovelace). Compute capabilities below 7.0 (such as Maxwell's 5.x and Pascal's 6.x) are no longer supported. This means any PTX artifact produced by rustc will only be compatible with GPUs that have compute capability 7.0 or higher and with CUDA drivers that can load PTX ISA 7.0.

Who will be affected by these changes?

Users who rely on older CUDA drivers (pre-CUDA 11) or target GPUs with compute capability below 7.0 (e.g., Maxwell or Pascal) will be unable to generate compatible PTX with Rust 1.97. This includes developers deploying on systems with CUDA 10 or older drivers, or running code on legacy GPUs from 2017 or earlier. The Rust team expects the number of affected users to be small because these hardware and driver versions are largely obsolete. Users with modern GPUs and CUDA 11+ drivers will see minimal disruption, unless they explicitly set a target-cpu flag to an older architecture.

What do I need to do if I currently use an older GPU architecture or CUDA driver?

If you are targeting a pre-Volta GPU (e.g., SM 6.0 or SM 6.1) or a CUDA driver older than CUDA 11, you will need to update your environment. For GPU targets, you can either remove the -C target-cpu flag to default to sm_70 or change it to sm_70 or a newer architecture. If you must continue using older hardware, you should stay on a Rust version prior to 1.97. For CUDA driver updates, install CUDA 11 or newer. Note that the generated PTX will no longer be loadable on older drivers, so upgrading your driver is essential for compatibility.

Will my existing builds break if I don't specify any target-cpu?

If you do not set a -C target-cpu flag, the Rust compiler will default to sm_70 starting with Rust 1.97. This means your builds will continue to work as long as you are using a CUDA driver that supports PTX ISA 7.0 (CUDA 11 or newer) and your target GPU is at least Volta. The binary output will simply be compiled for SM 7.0 instead of potentially older defaults. However, if you have been relying on the previous default (which could be lower than SM 7.0 in some scenarios), your artifact will no longer run on pre-Volta GPUs. No code changes are required, only hardware/driver compatibility.

What if I already target sm_70 or newer?

If you are already using -C target-cpu=sm_70 or a newer architecture (e.g., sm_75, sm_86, etc.), there will be no behavioral changes from this update. Your builds will continue to produce PTX that is compatible with Volta and later GPUs, and the CUDA driver requirements remain the same (CUDA 11+). You can safely upgrade to Rust 1.97 without any modifications to your build configuration. The baseline increase primarily affects those who were explicitly targeting older architectures or relying on default settings that previously supported them.

For further details about configuring the nvptx64-nvidia-cuda target, refer to the official Rust platform support documentation.