215111 Stack

2026-05-17 14:53:15

Updated GPU and Driver Requirements for Rust's NVIDIA Target

Rust 1.97 raises minimum PTX ISA to 7.0 and GPU architecture to SM 7.0 for NVIDIA target. Older GPUs/drivers no longer supported; users should update target-cpu or use earlier Rust version.

Starting with Rust 1.97, the nvptx64-nvidia-cuda compilation target for NVIDIA GPUs is getting a significant update. The minimum supported PTX ISA version and GPU architecture are being raised to PTX ISA 7.0 and SM 7.0 (Volta), respectively. This change affects the Rust compiler and host tooling, and it means that artifacts generated with Rust 1.97 and later will no longer be compatible with older GPUs and CUDA drivers. Below, we answer common questions about this update.

What is the nvptx64-nvidia-cuda compilation target?

The nvptx64-nvidia-cuda target allows Rust to generate PTX (Parallel Thread Execution) code for NVIDIA GPUs. When you compile for this target, you choose a GPU architecture (like sm_70) and a PTX ISA version. The GPU architecture determines which physical GPUs can run the compiled code, while the PTX ISA version sets the minimum CUDA driver version required to load and JIT-compile the PTX. Together, these two parameters define the compatibility of your Rust-generated GPU programs.

Updated GPU and Driver Requirements for Rust's NVIDIA Target
Source: blog.rust-lang.org

What specific changes are coming in Rust 1.97?

In Rust 1.97 (scheduled for July 9, 2026), the baseline PTX ISA version will increase to PTX ISA 7.0, which requires a CUDA 11 driver or newer. Additionally, the default GPU architecture becomes SM 7.0 (Volta). This means that any PTX generated by Rust 1.97 or later will only be loadable on systems with CUDA 11+ drivers and will only run on GPUs with compute capability 7.0 or higher (e.g., Volta, Turing, Ampere, Hopper). Older architectures like Maxwell and Pascal (compute capability below 7.0) and pre-CUDA 11 driver versions are no longer supported.

Why is Rust raising these baseline requirements?

Historically, Rust aimed to support a broad range of GPU architectures and PTX ISA versions. In practice, this wide support led to several hidden defects: valid Rust code could trigger compiler crashes or produce incorrect PTX. By raising the baseline, the Rust team can focus on providing complete and correct support for the current hardware ecosystem. The removed architectures—those with compute capability below 7.0—date back to 2017 or earlier and are no longer actively supported by NVIDIA. Maintaining compatibility with them would have required substantial effort that detracts from improving performance and correctness on modern GPUs.

Who will be affected by these changes?

Users who need to run their Rust-compiled PTX on CUDA 10-era drivers or older will be affected, because PTX ISA 7.0 is not supported on those driver versions. Likewise, anyone targeting GPUs with compute capability below 7.0 (for example, Maxwell or Pascal) will no longer be able to generate compatible PTX after upgrading to Rust 1.97. If you are using a CUDA driver that is CUDA 11 or newer and your GPUs are Volta or later (SM 7.0+), your workflow will continue to work, though you may need to adjust your -C target-cpu setting if you were previously targeting an older architecture.

What do I need to do if I specify an older target-cpu?

If you currently pass -C target-cpu=sm_60 (or any SM version below 7.0), you have two options in Rust 1.97. First, you can simply remove that compiler flag and let the target default to sm_70. Second, you can update the flag to -C target-cpu=sm_70 or a newer architecture like sm_80 (Ampere) if your hardware supports it. If you do nothing and keep an older target-cpu, the build will fail with an error indicating that the architecture is no longer supported. The default sm_70 provides a safe baseline for all Volta and later GPUs.

What if I already use sm_70 or newer?

If you already specify -C target-cpu=sm_70 (or a higher architecture like sm_80), there should be no behavioral changes from this update apart from possibly a smoother compilation process due to the improved correctness fixes. Your existing builds will continue to work without any modifications. The baseline increase mainly ensures that the PTX ISA version matches the architecture requirements—since SM 7.0 already implies PTX ISA 7.0, you are already within the new supported range. The change will only affect you if you were intentionally targeting older architectures for compatibility with outdated drivers or hardware.

Are there any alternatives for users with older hardware?

Users who must support pre-Volta GPUs or CUDA 10-era drivers can continue using an older version of Rust (1.96 or earlier) to generate compatible PTX. However, they will miss out on future bug fixes, performance improvements, and new features in the Rust compiler. Another possibility is to use NVIDIA's ptxas tool with older PTX versions, but Rust 1.97 no longer emits those older ISA versions. For long-term projects, upgrading the hardware and CUDA driver to at least CUDA 11 and Volta (or newer) is recommended to take advantage of ongoing Rust support and NVIDIA's latest capabilities.