文章目录
前言:“升级至cuda 不需要将老的cuda版本手动卸载”,在安装新版本后,在默认安装地址下会同时存在多个版本,可进行多版本的切换;如确需卸载,可参考 cuda 和 cudnn 库的卸载与安装或其他博客。
- cuda默认安装地址:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\
- 本机原版本:CUDA Version 10.0.130;cudnn Version 7.6.4;新版本:CUDA Version 10.2.89,cudnn Version 8.2.1
- 重装新版本后,在
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\
目录下存在v10.0
、v10.2
两个文件夹。
查看自己电脑支持的cuda信息
cuda toolkits与cuda driver
- 每个版本的CUDA toolkits都对应一个最低版本的CUDA Driver;
- CUDA Driver是向后兼容的,这意味着根据CUDA的特定版本编译的应用程序将继续在后续发布的Driver上也能继续工作。
CUDA Toolkit和CUDA Driver版本的对应情况部分如下,源自:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html?spm=a2c6h.12873639.0.0.6ae46238jQLxD6#major-components
nvidia-smi与nvcc -V
nvidia-smi
:全程是NVIDIA System Management Interface ,在命令行中使用该语句可监控NVIDIA GPU设备;nvvv -V
:如本机安装有CUDA,执行该命令查看CUDA安装版本。
下图中,nvidia-smi
显示Driver Version 462.42,查上表可知该版本最高支持CUDA 11.2。
至于nvidia-smi
显示CUDA Version 11.2,nvcc -V
显示CUDA Version 10.0,这是由于driver API与runtime API的区别。
driver API与runtime API
CUDA有两个主要的API:runtime API和driver API,这两个API都有对应的CUDA版本(如10.0和11.2等)。
- 用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的,nvidia-smi就属于这一类API。
- 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的(CUDA Toolkit Installer有时可能会集成了GPU driver Installer)。nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道自身构建时的CUDA runtime版本,不知道GPU driver版本,甚至不知道是否安装了GPU driver。
综上,如果driver API和runtime API的CUDA版本不一致可能是因为使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。因为一般情况下,我们的笔记本电脑安装个CUDA Driver就可正常看视频、办公和玩游戏了,几乎用不到CUDA Toolkit,就没有安装CUDA Toolkit。
下载CUDA和cuDNN
- CUDA:是一个并行计算平台和编程模型,能够使得使用GPU进行通用计算变得简单和优雅;
- cudnn:是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算,它强调性能、易用性和低内存开销,还可以集成到高级别的机器学习框架中。
在确定自己电脑支持的CUDA最高版本后,还需要结合pytorch版本选择合适的CUDA版本。
pytorch与cuda版本对应
PyTorch官网:https://pytorch.org/
PyTorch历史版本:https://pytorch.org/get-started/previous-versions/
cuda最新版本:https://developer.nvidia.com/cuda-downloads
cuda历史版本:https://developer.nvidia.com/cuda-toolkit-archive
cuda与cudnn版本对应
cuDNN下载:https://developer.nvidia.com/rdp/cudnn-archive
安装CUDA和cudnn
CUDA
-
双击cuda安装包启动安装程序,默认位置安装即可;
-
选择自定义安装,去掉VS Intergration;
-
其余可全部勾选,网上很多教程都是只选cuda,但是其他选项会自动更新显卡其它的相关驱动,为避免后续可能出现的不兼容问题,可以都选上;
-
但是需要注意:如果电脑目前安装的驱动版本号高于Cuda本身自带的驱动版本号(如下图版本号对比),那一定不可勾选图示三个选项,否则安装失败。
-
-
安装位置选择用系统默认,也可自行更改,但要记住自己的安装位置,以便后续导入cudnn和系统变量设置;
-
等待安装完成。
cudnn
cudnn解压后内部总共3个文件夹,将三个文件夹的内容分别复制添加到cuda10.2文件夹中对应的文件夹内,注意不是替换/覆盖掉三个文件夹。
环境变量配置
CUDA
CUDA安装完成后,系统变量中会自动添加CUDA_PATH
和CUDA_PATH_V10_2
,CUDA_PATH
由原来的10.0自动变更为10.2,如下图。
cudnn
见下图(以未安装10.2之前的10.0版本示例),在环境变量path
中添加路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include
和C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
;
图中路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
和C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp
是与之前的CUDA_PATH
同步自动添加的,如果没有就手动添加。
安装完成后的验证
CUDA
-
在命令行中运行
nvcc -V
,会显示CUDA安装版本; -
或是进入到cuda的安装路径
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite
,执行deviceQuery.exe
,出现如下界面。
cudnn
-
同样在
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite
目录下执行bandwidthTest.exe
,出现如下界面。
注意,两个exe文件需要命令行cd到安装目录,命令行运行文件,如上图所示;否则,直接在文件夹中运行会一闪而过。
CUDA多版本切换
切换CUDA版本时,只需要切换环境变量中CUDA的顺序即可,比如让CUDA10.2生效,只需将CUDA10.2环境变量上移至CUDA10.0之前。
详情可参考Windows下CUDA多版本共存
下载并安装Pytorch
pytorch1.8.2 GPU版安装
conda create -n py18 python=3.8
conda activate py18
conda install pytorch torchvision torchaudio cudatoolkit=10.2
在第三步因为网络安装失败的问题,更换国内源,如清华镜像https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/;若换源后仍无法安装心仪版本,比如本次试图安装的1.8.2版本国内源未更新(见下图),到官网https://download.pytorch.org/whl/lts/1.8/torch_lts.html下载合适版本的whl文件,然后本地安装:
pip install cudatoolkit=10.2
pip install torch-1.8.2+cu102-cp38-cp38-win_amd64.whl
pip install torchvision-0.9.2+cu102-cp38-cp38-win_amd64.whl
pip install torchaudio-0.8.2-cp38-none-win_amd64.whl
检查PyTorch GPU版本是否安装成功
import torch
print(torch.__version__)
print(torch.cuda.is_available())
device = torch.device("cuda:0" if (torch.cuda.is_available()) else "cpu")
print(device)
print(torch.cuda.get_device_name(0))