科学环境的安装
1. 检查自己的NVIDA驱动版本
NVIDA驱动版本也决定了目前可以安装的CUDA的版本的上限,这个也是根据自己想要安装的PyTorch版本来 决定的,下面列出目前最新的一些NVIDA驱动版本、CUDA版本、以及PyTorch-GPU版本的对应情况,自行进行选择。
(1) 首先检查自己的NVIDA驱动版本
通过组件
也可查询目前可预装的最高的版本的CUDA。
-
通过确定PyTorch的预装版本来确定--->预装的CUDA版本确定---->预装的NVIDA版本
PyTorch的版本还可以根据官网previous-version进行自行筛选,这里只提供部分筛选情况。
CUDAToolkit版本 | 可用PyTorch版本 |
---|---|
7.5 | 0.4.1 ,0.3.0, 0.2.0,0.1.12-0.1.6 |
8.0 | 1.1.0,1.0.0 ,0.4.1 |
9.0 | 1.1.0,1.0.1, 1.0.0,0.4.1 |
9.2 | 1.7.1,1.7.0,1.6.0,1.5.1,1.5.0,1.4.0,1.2.0,0.4.1 |
10.0 | 1.2.0,1.1.0,1.0.1 ,1.0.0 |
10.1 | 1.7.1,1.7.0,1.6.0,1.5.1,1.5.0, 1.4.0,1.3.0 |
10.2 | 1.9.0,1.8.0 ,1.7.1,1.7.0,1.6.0,1.5.1,1.5.0 |
11.0 | 1.7.1,1.7.0 |
11.1 | 1.9.0,1.8.0 |
(2)下载NVIDA驱动
NVIDA驱动下载,根据自己的笔记本配置需求进行下载(Tips: 不需要下载最新的驱动),傻瓜式安装就可以。
2. 安装CUDA以及CUDNN(这里预装CUDA10.2与CUDNN7.6.5,截止2021.8.10, 10.2版本应该是较稳定的)
(1) 卸载原有版本的CUDA(10.0)以及CUDNN
除了蓝框中的不需要卸载,其他全部卸载。
(2)下载新版本的CUDA10.2以及CUDNN7.6.5
-
CUDNN Download 需要注册
-
或者网盘下载链接 提取码:de7y
(3)安装、配置环境变量
-
双击CUDA程序,首先会选择一个安装的临时目录,用来存放首先解压的安装文件,这个默认或者新建一个空的文件夹即可。
-
使用自定义安装
如果要安装VIisual Studio Integration,则需要安装 Visual Studio,可以选择安装或者可以取消勾选Visual Studio Integration(这里解释一下,这个模块是对VS编译的支持,没有安装VS无法征常工作,而需要VS辅助则是需要编译cuda程序,这种编译不建议在Windows下进行,一般Windows下能跑深度学习原生框架的代码就行)
在这里如果需要Visual Studio的支持,在这里,以VS2017为例,因为VS的安装势必会带来C盘的大幅度占用,所以这里使用创建软连接的方法。
-
运行一下vs_community.exe,等弹出安装选择界面后关闭。关闭后,会在C:\ProgramData\Microsoft\VisualStudio 下创建一个Packages,然后,把这个Packages文件夹删掉。
-
以管理员身份打开命令提示符,运行 mklink /D C:\ProgramData\Microsoft\VisualStudio\Packages D:\vs2017offline命令。D:\vs2017offline 是你下载以及更新后续packages的文件夹的位置。
-
打开之前安装了一个 Visual Studio Installer(会在你打开vs_community.exe之后安装) ,打开这个软件,就可以安装自己想要的功能了。安装时所有需要的组件都会下载到指定目录,并且不会占用C盘的空间
-
将这个三个文件夹放到一起,方便日后查找。
-
将CUDNN解压后复制到D:\CUDA_V102\Dvelopment中
-
添加以下环境变量
-
检验是否安装完成
3. 安装PyTorch CPU+GPU(在已经安装Anaconda的基础上)
(1)卸载之前的Torch版本
-
pip uninstall torch pip uninstall torchvision
(2)安装Torch==1.8.0
-
可以通过官网命令查找
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch
(3) 检查PyTorch-Gpu版本是否可用
>> python >> import torch >> torch.__version__ >> torch.cuda.is_available()