Quick Facts
- Category: Hardware
- Published: 2026-05-02 06:12:37
- How to Get Pixel-Level Voice Typing on Any Android Phone: A Step-by-Step Guide
- March 2026 Patch Tuesday: Microsoft Addresses 77 Flaws, No Zero-Days but Critical Office Bugs and AI-Discovered Vulnerability
- How to Successfully Migrate from VMware to Nutanix Following Broadcom’s Acquisition
- Navigating the Artemis 3 Delay: A Comprehensive Guide to NASA's Revised Lunar Timeline and the 2028 Moon Landing Outlook
- Mother of Mila Launches New Biotech to Scale Bespoke Genetic Medicines After Previous Startup Collapsed
Overview
Beginning with Rust 1.97 (scheduled for release on July 9, 2026), the compilation target nvptx64-nvidia-cuda will have its minimum required PTX ISA version and GPU architecture raised. This change affects how Rust compiles code for NVIDIA GPUs—the output format is PTX (Parallel Thread Execution), a low-level intermediate language that is further processed by the CUDA driver. The new baseline is:

- PTX ISA 7.0 – requires a CUDA driver version 11 or newer
- SM 7.0 (compute capability 7.0) – no longer supports GPUs older than Volta (e.g., Maxwell, Pascal)
This update improves reliability and performance for modern hardware, but it means older GPUs and drivers are no longer compatible. This guide explains why the changes were made, what you need to do to update your projects, and how to avoid common pitfalls.
Prerequisites
Before proceeding, ensure you have the following:
- Rust toolchain – installed via
rustupwith thenightlyorstablechannel (Rust 1.97 or later after release). - The
nvptx64-nvidia-cudatarget – added withrustup target add nvptx64-nvidia-cuda. - CUDA Toolkit (optional but recommended) – version 11 or newer, for runtime verification.
- An NVIDIA GPU – at least compute capability 7.0 (Volta, Turing, Ampere, etc.).
If you are unsure of your GPU’s compute capability, check NVIDIA’s official list of CUDA-capable GPUs.
Step-by-Step Instructions
1. Check Your Current Rust Version
First, confirm which Rust version you are using. After the release, Rust 1.97 will be available. For now, you can simulate with the nightly channel once the changes are merged:
rustc --versionIf you are already on Rust 1.97 or later, you will see the new defaults.
2. Update Your Project Configuration
The most critical change is the default -C target-cpu value. If you do not specify it, Rust 1.97 assumes sm_70. Modify your build configuration accordingly.
Option A: Use the Default (Recommended)
Remove any explicit -C target-cpu flag from your build commands or Cargo configuration. Let Rust automatically use sm_70:
# Example Cargo.toml section for build flags
[target.'cfg(target_os = "cuda")'.nvptx64-nvidia-cuda]
rustflags = [] # no target-cpu specifiedOr compile directly:
rustc --target nvptx64-nvidia-cuda -C opt-level=3 input.rsOption B: Explicitly Specify a Compatible Architecture
If you previously set -C target-cpu=sm_60 (Pascal) or sm_35 (Kepler), you must update to at least sm_70. For example:
rustc --target nvptx64-nvidia-cuda -C target-cpu=sm_70 input.rsYou may also use newer architectures like sm_75 (Turing), sm_80 (Ampere), or sm_90 (Hopper).
3. Verify Your CUDA Driver Version
Ensure the CUDA driver on the target machine is version 11.0 or later. Check the driver version with:
nvidia-smiLook for “CUDA Version” in the output. If it shows 10.x or older, you must upgrade to use PTX generated by Rust 1.97.
4. Build and Test Your PTX Artifact
Compile your Rust code to PTX as usual:
rustc --target nvptx64-nvidia-cuda --crate-type dylib -C target-cpu=sm_70 my_kernel.rsThe output will be a .ptx file (e.g., my_kernel.ptx). To test it, you can use the CUDA runtime (cuModuleLoad) or NVIDIA’s nvdisasm to verify the ISA version:
nvdisasm my_kernel.ptx | grep "version"It should contain .version 7.0 or later.
5. Update CI/CD Pipelines (If Applicable)
If your continuous integration uses older GPU architectures or CUDA drivers, revisit your runner images. Ensure they have:
- CUDA driver >= 11.0
- GPU with compute capability >= 7.0
Update your build script to either remove the old target-cpu or set it to sm_70.
Common Mistakes
Ignoring the Default Change
Mistake: Assuming the old default sm_30 still applies. Fix: Always specify -C target-cpu=sm_70 or accept the new default.
Using an Outdated CUDA Driver
Mistake: Generating PTX with ISA 7.0 but trying to run on a CUDA 10 driver. Fix: Upgrade the driver or downgrade your Rust version (not recommended for long-term).
Forgetting to Update Target Triple
Mistake: Using the old target ptx64-nvidia-cuda (without nv prefix) – that target is obsolete. Fix: Use nvptx64-nvidia-cuda.
Mixing Architectures in Same Project
Mistake: Building some kernels with sm_70 and others with sm_60. The latter will fail. Fix: Use a consistent, compatible architecture ≥ sm_70 for all PTX in your project.
Summary
Rust 1.97 raises the baseline for the nvptx64-nvidia-cuda target to PTX ISA 7.0 and SM 7.0, dropping support for pre-Volta GPUs and CUDA drivers older than 11. This change enhances correctness and performance on modern hardware. To adapt, update your build configuration to use sm_70 or newer, ensure your driver is CUDA 11+, and test your PTX artifacts accordingly. Follow the steps in this guide to smoothly transition your GPU Rust projects.