Starexe
📖 Tutorial

NVIDIA CUDA Target Baseline Update: What Rust 1.97 Means for GPU Compilation

Last updated: 2026-05-18 00:07:06 Intermediate
Complete guide
Follow along with this comprehensive guide

Overview of the nvptx64-nvidia-cuda Target Changes

With the upcoming release of Rust 1.97 (expected on July 9, 2026), the nvptx64-nvidia-cuda compilation target is receiving a significant baseline adjustment. This target, which enables Rust code to run on NVIDIA GPUs by generating PTX (Parallel Thread Execution) intermediate code, currently supports a broad range of GPU architectures and PTX ISA versions. The forthcoming update raises the minimum supported PTX ISA version to 7.0 and the minimum GPU architecture to SM 7.0 (compute capability 7.0, i.e., Volta and later).

NVIDIA CUDA Target Baseline Update: What Rust 1.97 Means for GPU Compilation
Source: blog.rust-lang.org

Concretely, the new baselines are:

  • PTX ISA 7.0 — requires a CUDA 11 driver or newer.
  • SM 7.0 — GPUs with compute capability below 7.0 (e.g., Maxwell, Pascal) are no longer supported.

This change will be reflected in both the Rust compiler (rustc) and related host tooling. As a result, after upgrading to Rust 1.97, it will be impossible to generate PTX artifacts that are compatible with older GPUs or older CUDA drivers.

Reasons Behind the Baseline Bump

For years, Rust has aimed to support a wide array of GPU architectures and PTX ISA versions. However, this broad compatibility came with a cost: several defects existed that could cause compiler crashes or miscompilations even for valid Rust code. By raising the baseline, the Rust team can eliminate these bugs and provide more robust support for the remaining, actively maintained GPUs.

Additionally, the architectures being dropped are no longer under active support from NVIDIA. The most recent affected GPUs (e.g., Maxwell, Pascal) date back to 2017 and earlier. Maintaining compatibility with such legacy hardware would require substantial development effort, diverting resources from improving correctness and performance for current and future hardware.

Impact on Users Upgrading to Rust 1.97

If your project depends on running Rust-generated PTX on systems with CUDA 10-era drivers or older or on GPUs with compute capability below 7.0, you will need to take action. After the update, Rust 1.97 will no longer be able to produce PTX compatible with those environments.

What If You Already Use sm_70 or Newer?

If you are targeting a CUDA driver compatible with CUDA 11 or newer and using GPUs with compute capability 7.0 or newer, the transition should be smooth.

  • If you do not specify -C target-cpu, the new default will be sm_70. Your build will continue to work, but it will no longer produce PTX usable on pre-Volta GPUs.
  • If you currently specify an older architecture (e.g., sm_60), you have two options:
    • Remove the -C target-cpu flag entirely and let it default to sm_70.
    • Update the flag to sm_70 or a newer architecture.

When No Changes Are Needed

If you already set -C target-cpu=sm_70 or higher, the baseline bump will not introduce any behavioral changes for your builds.

Practical Guidance for Migrating

To prepare for Rust 1.97, review your rustc flags and any CI or build scripts that specify target-cpu for the nvptx64-nvidia-cuda target. Ensure that:

  • Your CUDA driver version is 11.0 or later.
  • Your target GPU architecture is SM 7.0 (Volta) or higher.
  • Any -C target-cpu overrides do not reference architectures below sm_70.

For more details on building and configuring the nvptx64-nvidia-cuda target, refer to the official platform support documentation.

Official Documentation and Further Reading

Comprehensive information about the nvptx64-nvidia-cuda target, including how to set up your environment and use the appropriate target-cpu flags, can be found in the Rust Platform Support documentation. This is the best resource for staying up to date with any additional changes.