Any NVIDIA GPU is only as good as the installed driver. Yet, finding the correct driver is not as simple as it seems, judging both from my own experience and from comments in the NVIDIA Developer Forums. This post answers a few of the questions you might ask when trying to find the right NVIDIA driver for your system using NVIDIA Driver Downloads.
Question: I am installing a fresh Linux distribution and I have an NVIDIA GPU, what should I prepare for?
Answer: If you try to install a current Linux distribution on any system with an NVIDIA GPU, you will very likely receive a message asking if Third-Party proprietary GPU drivers from NVIDIA should be installed. The version number of these drivers will be very close to the newest available from NVIDIA and in most cases this is the preferred way of driver installation.
A: If the package manager of your chosen distribution does not provide a valid driver package for your GPU or if you are not sure the provided ones are the correct ones, it is recommended for non-enterprise developers to start with the NVIDIA Driver Downloads page (Figure 1).
Figure 1: NVIDIA driver download page
Figure 2: Select the correct GPU Product Type on the NVIDIA Driver Downloads page
A: You can select from several different product groups (Figure 2). This post covers only GeForce, NVIDIA RTX/Quadro, and Data Center/Tesla:
GeForce cards use NVIDIA consumer GPUs for normal desktop and gaming use cases.
NVIDIA TITAN cards are specialized workstation cards for use cases that reside between GeForce and Quadro. They can be used for either enthusiast gamers or for first steps into things like machine learning (ML) and deep learning.
NVIDIA RTX (formerly known as Quadro) cards are for professional workstation use cases.
Data Center/Tesla cards are for data centers, HPC, and cloud applications.
Most NVIDIA drivers in these four categories have some cross-compatibility. When you check the supported products, you will often find GPUs from a different product type in the list for your desired product. That is expected: NVIDIA has a Unified Driver Architecture (UDA) aimed at supporting several generations of GPU architectures (regardless of the specific board designs) for all main capabilities of NVIDIA GPUs.
For the Product Series and Product items, select the exact match for your GPU. If an exact match is not available, use a close match - most importantly with respect to architecture generation.
For example, the Workstation (former Quadro) GPUs are called ‘NVIDIA RTX 6000 Ada Generation’ in the form. These GPUs should not be confused with the ‘NVIDIA RTX 6000’ or ‘NVIDIA RTX A6000’ in the Tesla category, which are Turing and Ampere generation GPUs, respectively.
Figure 3: Selection menu for the chosen OS
Depending on which product you select, the supported OS can differ greatly. The latest GeForce cards usually have only the latest Windows and Linux 64-bit variants as options. The older the GPU, the more legacy OSs will be presented. For example, very old Tesla GPUs will present the option, ‘Show all Operating Systems’ (Figure 3).
The resulting list will be long and comprehensive, and will differ between different GPU products. The older the GPU, the more likely it is that more OSs are supported.
A: The Download Type is another context-dependent selection. For GeForce Drivers, you can choose between the Game Ready Driver and NVIDIA Studio Driver. For data center GPUs, it will be either Production Branch or New Feature Branch. If you are unsure which one to choose, click on the question mark icon for more details.
This is a list of all the different types of drivers NVIDIA provides:
“WHQL Certified” Windows Hardware Quality Labs testing or WHQL Testing is a testing process which involves running a series of tests on third-party (i.e. non-Microsoft) hardware or software, and then submitting the log files from these tests to Microsoft for review. The procedure may also include Microsoft running their own tests on a wide range of equipment, like different hardware and different Microsoft Windows editions.
“GRD” Game Ready Drivers provide the best possible gaming experience for all major games. From early access through the lifecycle of the game, NVIDIA’s driver team continues to exhaustively test all major milestones so they can optimize performance, maximize stability, and perfect overall gameplay functionality.
“SD” Studio Drivers provide the best possible experience for key major creative applications. NVIDIA does extensive testing which focuses on the top creative applications and ensures the highest levels of performance, stability, and functionality are provided.
“NFB / QNF” New Feature Branch (NFB) [formerly known as Quadro New Feature (QNF)] driver is from the most recent driver release branch, and provides users with the opportunity to access the latest new features and functionality in between Production Branch releases. It has been tested for workstation environments with reduced product support, and is recommended only for those users who need specific features that are mentioned in the respective release highlights or release notes.
“PB / ODE” Production Branch (PB) [formerly known as Optimal Driver for Enterprise (ODE)] / Studio driver is what most users select for optimal stability and performance. Production Branch drivers offer ISV certification, long life-cycle support, and access to the same functionality as corresponding Studio Drivers of the same version.
“PB / LLB” Production Branch (PB) [formerly known as Linux Long Lived Branch (LLB)] Production Branch Linux drivers provide ISV certification and optimal stability and performance for Unix customers. This driver is most commonly deployed at enterprises, providing support for the sustained bug fix and security updates commonly required.
“NFB / SLB” New Feature Branch (NFB) [formerly known as Linux Short Lived Branch (SLB)] New Feature Branch Linux drivers provide early adopters and bleeding edge developers access to the latest driver features before they are integrated into the Production Branches.
“Beta Release” Beta drivers are provided by NVIDIA as preview releases for quick bug fixes and access to new features. Beta drivers are under qualification testing, and may include significant issues. It is the end user’s responsibility to protect system and data when using Beta drivers with NVIDIA products. It is strongly recommended that end users back up all the data prior to using Beta drivers from this site. Please ensure that newer Recommended/Certified drivers are not already posted on NVIDIA.com prior to installation and usage of Beta drivers. Beta drivers posted do not carry any warranties nor support services.
Note: The New Feature Branch should not be confused with Beta drivers!
A: If you are looking for any drivers for a workstation or data center, you will have the option to choose specific CUDA versions that you would like to use with your GPU. Depending on the version, you will receive a specific driver recommendation. This also shows you what the minimum CUDA version is that your respective GPU requires to make use of all its compute capabilities. If you do not actually care about the CUDA version, choose “Any”.
Note that CUDA itself is backwards compatible. Unless the CUDA release notes mention specific GPU hardware generations, or driver versions to be deprecated, any new CUDA version will also run on older GPUs.
For example, CUDA 11 still runs on Tesla Kepler architecture. Starting with CUDA 12, the driver requirement is not satisfied by the last available driver version for Kepler generation GPUs. The other way around, new GPU generations have certain minimum driver requirements, which then dictate the minimum CUDA version that must be used. For more details, see the CUDA Toolkit.
Figure 4: CUDA version selection
A: NVIDIA drivers follow the unified driver approach. That means even our most current drivers will support older generation GPUs. But of course at some point there might be architectural changes to our GPUs that cause some generations to be deprecated in newer driver versions. An example for that is the NVIDIA Kepler GPU architecture which is already 10 years old. But not too long ago I actually had a support request regarding this particular architecture by a developer on the forums. One of the Kepler GPUs is the NVIDIA Tesla K40m, which this developer had in their server setup. The example setup was on a Linux 64-bit system for production work.
Figure 5: Completed web form for the example case of a Tesla K40m installed in a Linux 64-bit system
We have now completely filled out the web form and can click the Search button. For the Tesla K40m example, Linux 64-bit and CUDA 11.2 are selected (Figure 5).
Click the Search button, and you will see the driver recommendation, which is driver version 460.106.00 for the Tesla K40m (Figure 6).
Figure 6:. The resulting driver recommendation
Q: I accidentally installed a driver that was too new and received an error message, what should I do?
A: The error message reported by the developer asked about looks like this:
The NVIDIA Tesla K40m GPU installed in this system is supported through the NVIDIA 470.xx Legacy drivers. Please visit Unix Drivers | NVIDIA for more information. The 525.60.13 NVIDIA driver will ignore this GPU.
It told them to install a v470 driver for this GPU. There is now a mismatch with our search results. This is because the search page will prioritize officially supported and certified drivers. The warning messages in newer drivers as printed for this GPU might instead list the latest available legacy driver for this GPU. In this case, the referenced driver will also work, as r470 drivers have full NVIDIA Kepler support. However, it is best to verify the support through the Unix Driver pages.
Note: If you experiment with the various search page options, you will notice that, for example, Tesla drivers do not include a direct link to installation instructions for Linux, while GeForce does. This is simply because the provided documentation link for Server GPUs is a portal page covering more than just installation. If you need a direct link, see Tesla Installation Notes.
Note: Linux drivers that you download from the default driver download page will be .run files. That means they are self-contained binaries that handle the installation (almost) like a Windows installer would. Read the installation instructions, as there are some pitfalls and dependencies that can easily break the installation.
Figure 7: Download page of the NVIDIA Unix Driver Archive
A: Figure 7 shows the Unix Driver Archive that often includes more current driver versions of older driver releases than the default download page. You will find a list of different architecture and Linux flavors, each with a list of different driver versions. For more information, see What’s a legacy driver?
The Default Search page displays the latest officially supported driver based on the Unified driver architecture. In comparison, the Unix Driver Archive includes drivers that received updates after their official end of life.
That is why, in the case of the Tesla K40m example, the UDA driver is from r460, but there is in fact support for this GPU in the r470 train, namely 470.182.03.
Figure 8: Locate the link to the Beta driver page
Beta drivers are the newest of the new and might still contain bugs and issues.
Legacy or Older drivers are drivers for older Hardware that has reached its end of life.
There is no general recommendation or guideline for when to use the production compared to a newer Beta driver. If you include Beta drivers, the search will provide direct access to the release highlights of a given driver. This provides an opportunity for you to check the release notes and the list of potential issues of a beta driver. After that, it is up to you to choose the preferred driver.
Disclaimer: Beta Release drivers are provided by NVIDIA as preview releases for quick bug fixes and access to new features. Beta drivers are under qualification testing, and may include significant issues. It is the end user’s responsibility to protect your system and data when using Beta drivers with NVIDIA products. It is strongly recommended that end users back up all the data prior to using Beta drivers. Ensure that newer recommended/certified drivers are not already posted on NVIDIA.com prior to installation and usage of Beta drivers. Beta drivers posted do not carry any warranties nor support services.
To access the Beta drivers, use the Advanced Driver Search. There is also a link on the Driver Downloads page (highlighted in Figure 8). The search fields on this page include the same choices as the normal search, but with a more complete OS selection and the option to specifically look for Beta drivers.
After completing the NVIDIA Driver Downloads form in full and submitting it, you should receive a link to a driver that will most likely work on your system. If you are unsure about any information requested by the form, select the option that most closely matches your requirements.
Most issues with the GPU on Linux are caused by either the wrong driver version or a mismatch with the kernel version, or a failed driver installation. If you are sure you have the wrong driver version, first check the distribution of your choice on details about the required or supported drivers and GPUs. If the distribution does not provide a recommended driver, visit NVIDIA Driver Downloads.