【地表最强】深度学习环境配置攻略 | 【nvidia-driver】, 【cuda toolkit】, 【cudnn】, 【pytorch】
更新截止到 2023.10.20
本贴为理论,如果想看实战,请移步Pytorch深度学习环境配置 | NVIDIA-driver + Pytorch + miniconda
1.要素:
- linux(ubuntu 22.04)
- nvidia-driver(也叫做 cuda driver):英伟达GPU驱动,命令:
nvidia-smi
- cuda (也叫做 cuda toolkit): 这个必须有。CUDA是NVIDIA创建的一个并行计算平台和编程模型(用这个来跑深度学习),命令:
nvcc -V
- cudnn: nvidia开发的深度学习算子库,用于加速训练(新手阶段不装也行,程序照样能跑)
- pytorch: (或者叫torch,是一个东西)深度学习框架
- python
- Anaconda:(或者用阉割版的miniconda)用于创建虚拟环境
2.依赖关系:
显卡 --> driver --> cuda(nvcc -V
) --> cudnn & pytorch
1.显卡型号 --决定--> driver版本
nvidia显卡驱动下载网址 (不太全,但能找到常用的显卡驱动)
在这里搜索显卡的型号,可以看到能用的显卡驱动版本并可以下载驱动
nvidia显卡驱动下载网址Ⅱ(更全)
2.driver版本 --决定--> cuda(nvcc -V
)版本
cuda和driver版本对应表 (不提供下载)
历代版本cuda下载地址
3.cuda版本决定 --> cudnn版本
cuda和cudnn版本对应表
(点击即可下载对应版本的cudnn)
4.linux版本 & cuda(nvcc -V
)版本 --决定--> pytorch型号和版本
5.pytorch型号和版本 --决定--> python的版本
手动分割线-------------------------------------
3.安装线路
- 线路1:2->7->6->5(就用这个)
解释一下,pytorch现在已经集成了cuda toolkit 和 cudnn, 所以我们只需要再安装一个nvidia-driver即可。
总体来说,分为两步,安driver和安pytorch,谁先谁后无所谓。
只装pytorch不装driver的下场:
手动分割线-----------------------------------------------
接下来两种方法已经out了,不是不推荐用,是不能用,用了之后能是能运行,但是一用到cudnn必报错
Could not load library libcudnn_cnn_train.so.8. But I'm sure that I have set the right LD_LIBRARY_PATH
- 线路2:1->3->4->7->6->5 (已被淘汰)
解释一下为什么没有2:因为装cuda的时候会自带一个是否安装对应的最新版本的driver的选项,选yes,就相当于完成了nvidia-driver的安装。
为什么这样更好?
1. 省了一步
2. 不会出现nvcc -V
和nvidia-smi
里的cuda版本不一致的问题
解释一下为什么要 7->6->5:
因为conda安装pytorch大概率会失败,所以我选择用pip安装。而先安装pip会自带最新版本的python,可能与pytorch要求的python版本不一致,所以我先安装python,再用python自带的pip安装pytorch。再者,先安装anaconda | miniconda,然后一行代码既可以完成虚拟环境的创建又能在虚拟环境种安装python。
- 线路3: 1->2->3->4->7->6->5(已被淘汰)
这样的安装线路,nvidia-smi和nvcc -V的cuda版本可能不一致,但只要牢记pytorch要用的是nvcc -V
里面的pytorch版本即可
附一个
常见问题
nvcc -V
与 `nvidia-smi的 cuda 版本的关系
nvcc -V
--> runtime cuda
nvidia-smi
--> driver cuda
make sure
runtime vuda <= driver cuda