cuda多版本管理和分类、运行时cuda、驱动cuda

简单的信息查看和调试命令

[En]

Simple information viewing and debugging commands

运行时只会采用虚拟环境里面的cuda运行时版本,所以不用显示切换cuda版本,只要支持即可。

查看cuda版本

ls -l /usr/local | grep cuda

这里是安装的cuda存放的地方和软链接的位置./usr/local/cuda是一个软链接,链接到了/usr/local/cuda-9.0(或者其他版本的目录)

nvidia-smi

它的输出是驱动的版本,并不能就是说torch实际运行时的cuda版本。

GPU的cuda版本分类

  1. sudo ubuntu-drivers autoinstall 安装驱动,会自带一个cuda,这个cuda是一个版本( 通过 nvidia-smi 查看
  2. 从官网上下载,并安装cuda在/usr/local下,此时又是一个cuda版本( 通过 cat /usr/local/cuda/version.txt 查看
    1和2两种安装cuda方法,https://blog.csdn.net/qq_40947610/article/details/114706170
    1和2两个cuda版本并存,为何不冲突?https://www.cnblogs.com/marsggbo/p/11838823.html
  3. miniconda安装pytorch或者tensorflow也会安装另一个cuda版本( 在 /miniconda3/pkgs/cudatoolkit*)
    2和3的区别,https://blog.csdn.net/qq_40947610/article/details/114707085

其他疑问

如果nvidia-smi命令列出的CUDA版本与nvcc -V列出的版本号不一致,可能是由以下原因之一引起的:

1)安装多版本cuda后,还没有刷新环境变量,刷新即可;

2)CUDA有两种API,分别是运行时API和驱动API,即所谓的Runtime API与Driver API,nvidia-smi的结果除了有GPU驱动版本型号,还有CUDA Driver API的版本号,这里是10.0,而nvcc的结果是对应CUDA Runtime API

补充说明:在安装CUDA 时候会安装3大组件,分别是 NVIDIA 驱动、toolkit和samples。NVIDIA驱动是用来控制GPU硬件,toolkit里面包括nvcc编译器等,samples或者说SDK 里面包括很多样例程序包括查询设备、带宽测试等等。上面说的CUDADriver API是依赖于NVIDIA驱动安装的,而CUDA Runtime API 是通过CUDA toolkit安装的。

多版本问题

其实nvidia-smi的cuda版本并不能唯一限制了pytorch官网能显示的版本。举个例子,pytorch官网显示

cuda多版本管理和分类、运行时cuda、驱动cuda
我的显卡3090的nvidia-smi输出的cuda版本是11.2。但是官网并没有给出11.2对应的编译的pytorch版本,我仍然可以用上图中的cuda11.3方式去安装。这是因为这种cuda是pytorch的运行时cuda,并不是nividia驱动全部的cuda组件版本。
下图可以看清楚对应的位置,运行时cuda只是其中的一小部分。
cuda多版本管理和分类、运行时cuda、驱动cuda

; cuda的查找顺序

  1. ~/.bashrc下指定的CUDA_HOME
  2. 默认 cuda 安装目录 /usr/local/cuda
  3. 如默认目录不存在(例如安装原生 cuda 到其他自定义位置),那么搜索 nvcc 所在的目录
  4. 如果 nvcc 不存在,那么直接寻找 cudart 库文件目录(此时可能是通过 conda 安装的 cudatoolkit,一般直接用 conda install cudatoolkit,就是在这里搜索到 cuda 库的),库文件目录的上级目录就作为 CUDA_HOME。
  5. 如果最终未能得到 CUDA_HOME,那么生成的 pytorch 将不使用 CUDA。

多版本cuda的管理

步骤一:/usr/local/cuda软链接设置
cuda版本分类的第2类是通常下载安装的多个不同版本的cuda路径,可以通过修改软链接的方式修改版本。

ln -s /usr/local/cuda-9.1 /usr/local/cuda

步骤二:编辑~/.bashrc文件


export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

猜测(以下是我的猜测,可能不正确)

[En]

Conjecture (here is my guess, which may not be correct)

当在虚拟环境里面安装了指定cuda版本的pytorch之后,是不用再进行cuda版本管理的。因为它依靠的是运行时cuda。

Pytorch查看相关信息

参考

参考链接

linux上的,多种安装方式产生的,多个cuda版本,以及执行顺序问题
conda安装的cudatoolkit, cudnn与在主机上安装的cuda, cudnn有何关系?
参考链接
参考链接2

Original: https://blog.csdn.net/qq_44108731/article/details/122747030
Author: ImangoCloud
Title: cuda多版本管理和分类、运行时cuda、驱动cuda

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/497512/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球