Development & Optimization

Navigating GPU Architecture Support: A Guide for NVIDIA CUDA Developers

An illustration representing CUDA.

If you’ve used the NVIDIA CUDA Compiler (NVCC) for your NVIDIA GPU application recently, you may have encountered a warning message like the following:

nvcc warning : Support for offline compilation for architectures prior to '<compute/sm/lto>_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).

What does this mean exactly, and what actions should you take? In this post, we’ll explain how the NVIDIA CUDA Toolkit and NVIDIA Driver work together to support GPUs

NVIDIA software stack

The software stack for programming GPUs is divided into two separate yet equally important pieces: The CUDA Toolkit for building applications, and the NVIDIA Driver for running them.

NVIDIA driver

The driver is the software that interfaces directly with the GPU hardware and is the interface between the application software and hardware. Think of the driver as sitting directly on top of the GPU hardware. In principle, the driver is the same as any other device driver that interfaces with the peripherals in your system, including things like your mouse, keyboard, speakers, microphone, and network card. 

NVIDIA drivers are usually installed independently from the CUDA Toolkit, but NVIDIA also provides bundled installers and packages for convenience on some platforms. When installing from the driver download page, you can see which GPUs are supported by each driver.

The NVIDIA driver is released in three different branches with distinct lifecycles:

  • New Feature Branch (NFB) drivers are released the most frequently and incorporate the newest CUDA features for developers. They are designed for developers looking to try out the newest hardware and software features.  New Feature Branch drivers are not updated after they are released.
  • Production Branch drivers are released roughly twice per year and are designed and qualified for enterprise and data center production use. Each major production branch is updated periodically for security fixes and performance improvements and is supported for 1 year.
  • Long-Term Support Branch (LTS) drivers are released about every 18 months. They are also designed and qualified for enterprise and data center production use. Each LTS branch is updated periodically for security fixes and performance improvements, and supported for 3 years. These are an ideal solution for users who require a longer support period.

CUDA Toolkit

The CUDA Toolkit is the software development kit (SDK) that developers use to program GPUs.  It includes a wide array of components, including compilers, libraries, developer tools, and binary utilities. Each release of the toolkit lists the major components. It can be downloaded and installed on its own, or it comes packaged with a driver for convenient installation of both. Think of the toolkit as sitting on top of the NVIDIA driver.

GPU support

Now, getting back to the warning message at the beginning of this post:

the support for offline compilation for architectures prior to compute capability (CC) 7.5 will be removed in the next major CUDA Toolkit release, CUDA 13.0. 

This support change is occurring as part of the normal NVIDIA support process. Over time, NVIDIA releases newer architectures. At some point, some older architectures are feature-complete and support for them is deprecated and ultimately removed.

First, let’s examine the GPU architectures the CUDA Toolkit supports. A quick and easy way to see which architectures are supported by a particular version of the CUDA Toolkit is to have NVCC print out a list of all supported architectures. On CUDA 12.9, if you execute the nvcc --list-gpu-arch command, you see all the architectures that are supported.

$ nvcc --list-gpu-arch
compute_50
compute_52
compute_53
compute_60
compute_61
compute_62
compute_70
compute_72
compute_75
compute_80
compute_86
compute_87
compute_89
compute_90
compute_100
compute_101
compute_103
compute_120
compute_121

The numbers in the architecture listing are the compute capabilities. You can see the correspondence between GPUs and their CC’s by looking at our current and legacy GPU pages. The warning message above indicates that support for architectures prior to CC 7.5 will be removed. This means 5.x, 6.x, and 7.0 and 7.2 architectures, which are the NVIDIA Maxwell, NVIDIA Pascal, and NVIDIA Volta architectures.

The other important piece of the warning statement is the removal of support for “offline compilation.”  What does it mean?

Offline compilation is when you write GPU code, say CUDA C++, and then compile it with NVCC (from the CUDA Toolkit) to build a binary. Offline compilation is likely what most people think of when they develop with a compiled language. The warning message is saying that starting in CUDA 13.0, you won’t be able to use NVCC as the compiler to build an application that targets any GPU architecture before CC 7.5.

What does it all mean

This does not mean that GPUs before CC 7.5 will suddenly stop working or stop being supported. It does mean that you cannot build new applications targeting older GPUs using NVCC in version 13.0 or newer of the CUDA toolkit.  Applications built with older versions of the CUDA toolkit will continue to run as before on all hardware supported by the driver.

The NVIDIA driver from branch 580 will be released in conjunction with the CUDA 13.0 Toolkit. This will be the final branch that supports GPUs before CC 7.5.  Importantly, this is an LTS driver that will be supported for three years from release and supported until mid-year 2028. Applications built for GPUs before CC 7.5 will run with full support through the full lifetime of the 580 driver, sometime in 2028.

Developer guidance

Given the removal of support for offline compilation, what are the implications for application developers?  

If you’re writing applications that support GPUs of CC earlier than 7.5, then you’ll want to install and remain on the following:

  • NVIDIA Driver: Remain on branch 580. This provides support for 3 years, through sometime in 2028.  
  • CUDA Toolkit: Remain on 12.9. This provides support for offline compilation for the pre CC 7.5 GPU architectures.

In summary, the upcoming CUDA 13.0 release will remove support for offline compilation for GPU architectures before compute capability 7.5. Developers who want to continue building applications for these GPUs should continue using the NVIDIA driver branch 580 and CUDA Toolkit 12.9 to maintain support for these older architectures.

Discuss (0)

Tags