转自:https://docs.nvidia.com/deploy/cuda-compatibility/index.html

CUDA Compatibility

CUDA Compatibility document describes the use of new CUDA toolkit components on systems with older base installations.

1. Overview

The CUDA toolkit is transitioning to a faster release cadence to deliver new features, performance improvements, and critical bug fixes. However, the tight coupling of the CUDA runtime with the display driver (specifically libcuda.so—the CUDA driver on Linux systems), means that the customer is required to update the entire driver stack to use the latest CUDA software (including the compiler, libraries, and tools).

The new CUDA Compatibility Platform enables the use of new CUDA toolkit components on systems with older base installations.

2. Compatibility

The current upgrade path for CUDA is shown in Figure 1.

Figure 1. Backward Compatibility

The CUDA toolkit consists of two main components:

  • the development libraries (including the CUDA runtime), and
  • the driver components. The driver components are further separated into two categories:
    • the kernel mode components (the ‘display’ driver), and
    • the user mode components (the CUDA driver, the OpenGL driver, etc.).

Starting with CUDA 10.0, NVIDIA introduced a new forward-compatible upgrade path that allows the kernel mode components on the system to remain untouched, while the CUDA driver is upgraded. See Figure 2. This allows the use of newer toolkits on existing system installations, providing improvements and features of the latest CUDA while minimizing the risks associated with new driver deployments.

Figure 2. Forward Compatibility

2.1. Source Compatibility

We define source compatibility as a set of guarantees provided by the library, where a well-formed application built against a specific version of the library (using the SDK) will continue to build and run without errors when a newer version of the SDK is installed.

Both the CUDA driver and the CUDA runtime are not source compatible across the different SDK releases. APIs can be deprecated and removed, requiring changes to the application. Developers are notified through deprecation and documentation mechanisms of any current or upcoming changes. Although the driver APIs can change, they are versioned, and their symbols persist across releases to maintain binary compatibility.

2.2. Binary Compatibility

We define binary compatibility as a set of guarantees provided by the library, where an application targeting the said library will continue to work when dynamically linked against a different version of the library.

The CUDA driver (libcuda.so) provides binary backward compatibility. For example, an application built against the CUDA 3.2 SDK will continue to function even on today’s driver stack. On the other hand, the CUDA runtime does not provide these guarantees. If your application dynamically links against the CUDA 9.2 runtime, it will only work in the presence of the dynamic 9.2 CUDA runtime on the target system. If the runtime was statically linked into the application, it will function on a minimum supported driver, and any driver beyond.

The Table 1 below summarizes the minimum driver required for a specific version of the CUDA runtime/toolkit. For convenience, today the NVIDIA driver can be installed as part of the CUDA Toolkit installation.

Table 1. CUDA Toolkit and Compatible Driver Versions
CUDA Toolkit Linux x86_64 Driver Version
CUDA 10.1 (10.1.105) >= 418.39
CUDA 10.0 (10.0.130) >= 410.48
CUDA 9.2 (9.2.88) >= 396.26
CUDA 9.1 (9.1.85) >= 390.46
CUDA 9.0 (9.0.76) >= 384.81
CUDA 8.0 (8.0.61 GA2) >= 375.26
CUDA 8.0 (8.0.44) >= 367.48
CUDA 7.5 (7.5.16) >= 352.31
CUDA 7.0 (7.0.28) >= 346.46

3. Support

3.1. Hardware Support

The current hardware support is shown in Table 2.

Table 2. CUDA Toolkit and Compatible Driver Versions
Hardware Generation Compute Capability Driver 384.111+ Driver 410.48+ Driver 418.39+
Turing 7.5 No Yes Yes
Volta 7.x Yes Yes Yes
Pascal 6.x Yes Yes Yes
Maxwell 5.x Yes Yes Yes
Kepler 3.x Yes Yes Yes
Fermi 2.x No No No

3.2. Forward-Compatible Upgrade Path

The new upgrade path for the CUDA driver is meant to ease the management of large production systems for enterprise customers. As such, the supported HW (hardware) for this new upgrade path is limited to Tesla GPU products. It’s important to note that HW support is defined by the kernel mode driver and as such, newer CUDA drivers on their own will not enable new HW support. Refer to Hardware Support for which hardware is supported by your system.

3.3. CUDA Application Compatibility

With the CUDA compatibility platform, applications built with newer CUDA toolkits can be supported on specific enterprise Tesla driver branches. The Table 3 below shows the support matrix when using the CUDA compatibility platform.

Table 3. CUDA Application Compatibility Support Matrix
Linux x86_64 Tesla driver CUDA 10.0 Compatibility CUDA 10.1 Compatibility

410.72+

Compatible Compatible

396.26+

Not Compatible Not Compatible

390.46+

Not Compatible Not Compatible
384.111+ Compatible Compatible

3.4. Feature Support

There are specific features in the CUDA driver that require kernel-mode support and will only work with a newer kernel mode driver. A few features depend on other user-mode components and are therefore also unsupported. See Table 4.

Table 4. Forward-Compatible Feature-Driver Support Matrix
System Base Installation: 384.111+ Driver
CUDA Driver CUDA – OpenGL Interop CUDA – Vulkan Interop POWER9 ATS
384.111+ Yes N/A N/A
410 (>=.48) No No No

In addition to the CUDA driver and certain compiler components, there are other drivers in the system installation stack (e.g. OpenCL) that remain on the old version. The forward-compatible upgrade path is for CUDA only.

4. CUDA Compatibility Platform

The CUDA Compatibility Platform files are meant as additions to the existing system installation and not replacements for those files. The platform consists of:

  • libcuda.so.* - the CUDA Driver
  • libnvidia-fatbinaryloader.so.* - the loader for fatbinaries generated by the offline compiler
  • libnvidia-ptxjitcompiler.so.* - the JIT (just-in-time) compiler for PTX files

For ease of deployment, a new package is available in the local installers or the CUDA network repositories provided by NVIDIA:

  • cuda-compat-10.0

This package provides the CUDA Compatibility Platform files necessary to run 10.0 CUDA APIs. The package can be installed using Linux package managers such as apt or yum. For example, on an Ubuntu 16.04 system, run the following command when using the apt package manager:

$ sudo apt-get install cuda-compat-10.0

The package is installed to the versioned toolkit location typically found in the /usr/local/cuda-10.0/ directory (replace 10.0 with the appropriate version).

Note:

This package only provides the files, and does not configure the system. These files should be kept together as the CUDA driver depends on the fatbinary loader that is of the same version.

It is also possible to extract these files from the appropriate Tesla driver installer (.run) available from NVIDIA driver downloads.

5. Deployment Considerations

Consider a cluster of 500+ multi-gpu servers running bare-metal in support of 50-1500 users, running a variety of DL and HPC workloads. This system is scheduled in a classical manner (for example, using SLURM or LSF) with resources being allocated within a cgroup, sometimes in exclusive mode. The cluster can be homogeneous with respect to node configurations, or heterogeneous, including some nodes of each of a few generations of Tesla GPUs - V100 16GB or 32GB, P100, P40, K80, and/or K40.

With the introduction of the CUDA 10 Compatibility Platform (regardless of how the files are packaged - run/deb/rpm/etc.), the site operator must pay close attention to where these libraries are placed. It could potentially be part of the disk image (i.e., more closely tied to the kernel and driver installations), or part of one of the modules (i.e., more closely tied to the toolkit and the libraries).

5.1. Disk Image

In this case the compatibility files are located somewhere on the boot image alongside the existing system files. The exact path is not important, but the files should remain together, and be resolvable by the dynamic loader. This could be accomplished by having the system’s loader automatically pick them up (e.g. ld.so.conf), or through a more manual process of documentation (users of the new toolkit must manually set LD_LIBRARY_PATH).

5.2. Modules System

It is commmon for the users to request any of the several CUDA Toolkit versions in the same way they might request any of several versions of numerous other system libraries or compiler toolchains. A common mechanism to enable this is the Modules System, wherein someone (the admin or the users themselves) sets up ‘module’ scripts for each version of each package, and then the user can do something like ‘module load cuda/10.0’.

Often the loading of various module versions will be scripted with the application such that each application picks up exactly the versions of its dependencies that it needs, even if other versions would have been available for other applications to choose from.

If the components from the CUDA Compatibility Platform are placed such that they are chosen by the module load system, it is important to note the limitations of this new path – namely, only certain major versions of the system driver stack, only NVIDIA Tesla GPUs are supported, and only in a forward compatible manner (i.e. an older libcuda.so will not work on newer base systems). It is therefore recommended that the module load script be aware of these limitations, and proactively query the system for whether the compatibility platform can be used. In the cases where it cannot use the compatibility platform, a fallback path to the default system’s installed CUDA driver can provide a more consistent experience.

5.3. Miscellaneous

After the system is fully upgraded (the display driver and the CUDA driver) to a newer base installation, the compatibility platform files should be removed as they are no longer necessary and will not function.

Notices

Notice

ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.

Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication of otherwise under any patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all other information previously supplied. NVIDIA Corporation products are not authorized as critical components in life support devices or systems without express written approval of NVIDIA Corporation.

cuda 版本和 nvida driver 版本的关系相关推荐

  1. pytorch,cuda,cudatoolkit,driver版本详解

    pytorch,cuda,cudatoolkit,driver四者关系如下: 系统的Nvidia Driver决定着系统最高可以支持什么版本的cuda和cudatoolkit,Nvidia Drive ...

  2. paddle,cuda,cudnn,driver版本匹配问题,W0305 16:35:06.338007 10608 gpu_resources.cc:61] Please NOTE: device:

    1.确定自己显卡型号 我分到的是一台3060ti 2.查看当前显卡驱动版本 nvidia-smi 我的driver版本525.85.05 https://blog.csdn.net/liferecor ...

  3. CUDA对应的NVIDIA驱动版本对照表

    一般而言,不同版本的CUDA要求不同的NVIDIA驱动版本,同时显卡驱动版本要不低于CUDA的安装版本,具体的对照关系如下: 如下链接对应了官方的版本要求说明: https://docs.nvidia ...

  4. GPU驱动、CUDA和cuDNN之间的版本匹配与下载

    文章目录 GPU驱动.CUDA和cuDNN之间的版本匹配与下载 1. GPU驱动 2. CUDA 2.1. 查看自己GPU驱动的版本 2.2. 确定与GPU驱动匹配的CUDA版本 2.3. 下载CUD ...

  5. tensorflow 版本列表_tensorflow各个版本的CUDA以及Cudnn版本对应关系

    概述,需要注意以下几个问题: (1)NVIDIA的显卡驱动程序和CUDA完全是两个不同的概念哦!CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运 ...

  6. CUDA版本与显卡驱动版本对照表(更新至2022.10.26 - CUDA11.8)

    更新2022-10-26-CUDA11.8 注:当前所有版本要求均为CUDA官方提供 如需转载,请注明出处. 更多优质内容,可点击原文链接进行阅读学习. CUDA 11.8 组件版本 Table 1. ...

  7. 超详细教程——Ubuntu20.04 安装英伟达NVIDIA显卡驱动、CUDA、Cmake以及不同版本的CUDA切换

    在windows和linux双系统下,为ubuntu安装nvidia.cuda.cmake等程序是一个可能会难到各个计算机小白的问题,本文将一步步地带您学会安装以上内容. 一.安装英伟达NVIDIA显 ...

  8. 记录-安装cuda与cudnn 及对应版本的tensorflow|pytorch

    仅用以记录个人环境配置流程. 一.安装CUDA Driver 1.1 查看CUDA Driver版本 1.2 驱动更新下载地址:NVIDIA Studio 驱动程序 | 512.59 | Window ...

  9. Ubuntu 16.04 安装 CUDA、CUDNN 和 GPU 版本的 TensorFlow 一般步骤总结

    1. 安装显卡驱动 安装显卡驱动网上有各种各样的方法,甚至有的还需要更改一些配置文件切换到命令行终端模式进行操作,然而就我多次安装驱动的经验来看,我从来没有这么费劲过.在 Ubuntu 系统中的 Sy ...

最新文章

  1. 使用common-fileUpload制作文件上传【转】
  2. Python CheckiO 题解系列 丨 博客目录索引
  3. JS实现的一个验证码,可以在前端验证后在提交action
  4. java模拟病人就诊过程_new 患者在医院看病过程:先排队等候 联合开发网 - pudn.com...
  5. 经典剖析电源PCB布板与EMC的关系(上)
  6. Hamcrest包含匹配器
  7. 微信PC版通信协议研究
  8. C# BitConverterExt 对BitConverter的GetBytes 方法扩展
  9. centos安装stress安装失败_Linux压力测试软件Stress使用指南
  10. web开发实例教程,CSS盒子模型居中方法
  11. FeatherNets:卷积神经网络轻如羽毛,用于面部反欺骗
  12. php直播源码平台开发过程中使用第三方sdk
  13. Allegro-PCB导入DXF文件
  14. 团队作业——Alpha冲刺 1/12
  15. 算法与数据结构+LeetCode题解-Js版
  16. 自定义函数实现英文字母大小写的转化
  17. 手机android进程管理,手机进程管理app_华为手机进程管理_手机自动进程管理软件-多特软件站安卓网...
  18. 【沙发管家】华为悦盒刷机破解详细攻略,附多个第三方精简固件
  19. nrf52在未配对的情况下使用白名单广播,指定安卓手机允许连接
  20. L3-001. 凑零钱

热门文章

  1. 关于非IE浏览器下Flash上传控件HTTP ERROR 302
  2. kubernetes集群内调度与负载均衡
  3. 4.1界面显示信息的插件设置
  4. you-get下载视频方法
  5. lsi sas2208阵列卡刷直通模式
  6. 专家认定河北临漳为六朝古都
  7. 2020省市区最新数据(国家统计局最新数据-自取)
  8. Procast从入门到精通
  9. tkinter style样式使用
  10. eq值 推荐算法_干货!用EQ调出标准&好听的声音