cuda 安装受难记
- 2020/11/22 更新了解决下载过慢的问题
如何无痛安装 cuda + Anaconda + pytroch 环境
!! 重要声明,这仅仅只是我的痛苦安装过程的一个踩坑记录,如果可以帮助你无痛安装,那自然是极好的了。
Anaconda
Anaconda 是一个python 的发行版,包括了python 和很多常见的软件库,和一个包管理器 conda
但它巨大,囊括了1000+的 Python 库,如果你不需要,强烈建议你安装 mini 版本
我没有遇到很多的问题,但建议你看这个,我们的重点不在这里:
https://zhuanlan.zhihu.com/p/75717350
cuda
Anaconda 安装完毕后,不要急着安装 pytorch,先去安装 CUDA Toolkit!!!
在这些之前,你需要看看你的 GPU 驱动的版本,查看的方法很简单:
找到你的电脑的 NVIDIA 控制面板,打开,左下角点击系统信息,它看起来就像是这样:
然后去官网找到你的 driver 匹配的版本 Release note,
找好之后去下载 cuda downloads
然后安装,可以自定义安装,我们只选择 Development,Runtime,Sample,Document 这四个组件即可。可以修改路径,如果不想安在C盘的话就改改。
安装完成后还需要配置系统环境变量,在系统环境变量那里和 PATH 同级的地方添加下面的环境变量:
1 | CUDA_PATH = D:\NVIDIA GPU Computing Toolkit\CUDA\v10 |
在用户环境变量的 PATH 里添加下面的部分,如果你是文本编辑记得加上分号。
1 | %CUDA_LIB_PATH% |
重启电脑进入你的 cuda 安装路径,\extras\demo_suite
路径,执行 deviceQuery.exe 和 bandwidthTest.exe 程序,会有一堆输出,如果显示了 Result = PASS
,证明你安装成功了。这时你的任务管理器会多一栏 GPU。
Nvidia 显示设置不可用
自己平常明明可以正常打开控制面板,但今天我就突然打不开了…,看了看网上说的,大多数是让你更新一下驱动,好吧,那么我们更新一下吧。
右键右下角窗口里面的 NVIDIA 图标,点 NVIDIA GeForce experience,竟然需要登录,好吧,就注册一个账号然后登录…,然后就无法注册。我人傻了,只好去官网上重新下一个 https://www.nvidia.cn/geforce/drivers/ 下载自动更新驱动程序。
之后就正常的安装,然后注册登录,它会自动提示你更新驱动。(我从2017年的驱动更新到了最新的…),还有一个注意的是不知道为啥它死活不能用QQ登录,会卡在认证的页面上。
pytorch
在官网选择你的系统配置:
用下面的命令一下安装好,新建一个 py 文件测试一下
1 | device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") |
显示 “Using gpu: xxx” 针不戳。
是不是很简单?才怪!
下载速度太慢
如果下载速度太慢,建议添加清华的源
1 | conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ |
这时执行安装就不要再加 -c
了
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0
CUDA 版本太低
这里面并没有 CUDA10.0 这个版本,但是我自作聪明的修改 cudatoolkit=10.0 也正常安装了,不错,然后运行一下,提示 CUDA 版本太低…,我严重怀疑是版本不匹配的问题,cuda 是不想再装一遍了,只好重装一个低版本的 pytorch。
学老实点,去早期版本找匹配吧 previous versions
找到一条适合你的版本的命令,比如说我的 conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch
然后安装就好了,记得先卸掉你装过的 cudatoolkit。打开 Anaconda Prompt,输入 conda uninstall cudatoolkit
即可。
Solving environment: failed with initial frozen solve…
安装了很久还没成功,事情似乎没有那么简单,看了报错,Solving environment: failed with initial frozen solve. Retrying with flexible solve.
具体什么原因我还没搞明白,可能是依赖的问题。遇事不决先升级,不行就重装:
1 | conda update -n base conda |
还是不行,只好去百度,试了不少法子,放一个我最终成功解决问题的方法:issue#93676
具体来说就是起一个虚拟环境然后再重新安装,有人说这是 Anaconda3 的一个最新版的问题,我也不懂也别乱说了,就照着别人的方法试就完事了:
1 | conda create -n your_virtual_environment_name(I use the pytorch) |
具体点来看是用了一个旧一些的版本的 conda 的库(可能),这么说前面更新还是不应该更的了吗…,不过这发生在你装一个老版本的库时,我觉得把cuda更新到最新,装个最新的 pytorch 不香吗
写在后面
每次安环境都是最痛苦的,希望人没事。后续一些问题我会跟进增加内容