by jsklearner
文章是几年前写的,搬运到掘金,现在硬件更新很快,但是流程可以参考
@TOC
在从事深度学习研究的前期,很多人因为成本以及不确定因素等问题,一般不会购买特别好的显卡,而NVIDIA GTX1060 6G却是很大一部分人所选择的一类显卡,其价格不是很高,大概在1400元左右,而且其6G的显存恰好是一些深度学习的入门显存大小,可以用来训练一些数据量不是很大的网络模型。
笔者也是在实验室阶段,老师给配备了1060显卡的台式机,之前一直在实验室的服务器进行网络模型的训练,近期因为某些原因,想在自己的机器上配置一下Pytorch框架的深度学习平台,在前人这么多的经验面前,笔者仍然踩了很多坑,所以留下这篇文章,以期望能给后来者提供一些经验或者节约一些时间,毕竟把时间都浪费在配环境这样的工作上实在是不太划算。
本篇文章会有三条线:
-
一条是NVIDIA Driver=396.37、cuda=9.2、cudnn=7.3.1、Pytorch=1.2.0安装,成功;
-
一条是NVIDIA Driver=384.13、cuda=9.0、cudnn=7.3.1、Pytorch=1.2.0安装,当然这条线失败,接下来我会说明原因;
-
最后一条就是Anaconda3、以及Pycharm的安装以及一些Anaconda和Pycharm的简单使用和命令操作。
划重点,成功的安装方法,cuda 9.2,cudnn 7.3.1、pytorch 1.2.0
安装cuda 9.2、cudnn 7.3.1、pytorch 1.2.0是成功的,下面将详细介绍成功的步骤细节。
Nvidia Driver 396.37 安装,成功
这次我准备按照网上说的,不预先安装396.37版本驱动,**直接在安装cuda的时候安装驱动,结果失败。**估计是因为pre-install script failed的问题导致的。
- 具体步骤:
禁用nouveau驱动
安装之前,需要禁用nouveau驱动:
sudo gedit /etc/modprobe.d/blacklist.conf
在文末最后添加:
blacklist nouveau
options nouveau modeset=0
然后执行:
sudo update-initramfs -u
重启后,执行:
lsmod | grep nouveau
如果没有任何屏幕输出,就说明禁用成功。
关闭 X server
期间我在安装的时候出现一个问题:
you appear to be running an X server
原因是没有关闭 X server,所以需要进入到命令行模式将X server关闭。 按下Ctrl+Alt+F1,进入命令行模式,会让你输入用户名和密码。 然后执行
sudo service lightdm stop
装好Nvidia Driver之后,可以使用:
sudo service lightdm restart
重新进入到图形界面
执行安装文件
关掉X server,接下来使用cd命令进入到xxx.run所在的文件夹下。
可以用
chmod a+x ./xxx.run
更改文件的可执行权限 然后
sudo ./xxx.run
即可
安装之后,执行
nvidia-smi
观察到类似如下界面,即表示Nvidia驱动安装成功。
pre-install script failed 问题,未解决,但不影响
在安装过程中,除了上述关于X server问题外,我还遇到一个问题:
The distribution-provided pre-install script failed......
刚开始,我以为是很大的问题,因为我已经执行完禁用nouveau驱动以及关闭X server ,又查各种博客说要主板关闭secure boot,然后华硕要关掉fast boot,我的刚好是华硕主板,不过执行完这些操作后,pre-install script failed问题依然存在,索性我就佛系不管了,继续continue安装,一路选了yes,然后执行nvidia-smi,发现有驱动详细信息输出,此刻我感觉应该已经成功安装了驱动,但是在cuda以及pytorch等都没装好的情况,我心里依然忐忑。
cuda 9.2 安装,成功
执行安装文件
cuda 9.2 下载链接
下载完成后,
执行,更改文件的可执行权限
sudo chmod a+x ./xxx.run
再执行
sudo ./xxx.run
会有一个许可说明书,可以直接一直按enter使进度到100%,也可以直接按Q键继续下面的安装过程,如下图。
- 第一个选accept;
- 第二个是问你是否安装Nvidia Driver,因为我已经安装了,所以我输入n;
- 安装cuda 9.2 toolkit,输入y;
- 建立链接,输入y;
- 安装cuda 9.2样例,输入y;
- 其他直接回车即可;
网上有些说还要关闭图形界面,就是按Ctrl+Alt+F1进入命令行模式,输入以下命令:
sudo service lightdm stop
但是我没有关闭,直接在图形界面中安装的,但结果显示也是成功安装的。但是还没完,需要添加环境变量。
添加环境变量
sudo gedit ~/.bashrc
打开后,在文档末尾添加如下命令
export CUDA_HOME=/usr/local/cuda-9.2
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}S
此时在终端输入
nvcc --version
或者
nvcc -V
屏幕会输出如下信息:
这时,表示cuda已经安装成功。
cudnn 7.3.1 安装,成功
拷贝头文件和动态库到cuda文件夹
不过其实cudnn的安装其实也叫不上什么安装,就是将cudnn下的头文件和动态库拷贝到cuda相应的文件夹下。 注意,cudnn的下载需要nvidia的帐号!
下载下来的cudnn文件有可能是solitairetheme8后缀的,没见过的同学不要疑惑,直接在ubuntu下依次执行如下命令即可:
cp cudnn-9.2-linux-x64-v7.3.1.20.solitairetheme8 cudnn-9.2-linux-x64-v7.3.1.20.tgz
tar -xvf cudnn-9.2-linux-x64-v7.3.1.20.tgz
sudo cp cuda/lib64/* /usr/local/cuda-9.0/lib64/
sudo cp cuda/include/* /usr/local/cuda-9.0/include/
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果这些问题没什么问题的话,屏幕中会看到如下信息:
检测cuda、cudnn是否最终安装成功
但是到这一步,并不意味着你已经安装成功,真正的安装cuda、cudnn成功,你还需要进行如下验证:
cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
成功的话 你会看到如下信息:
Result = PASS
如果失败,比如因为驱动和cuda不兼容问题,就会出现:
Result = FAIL
安装pytorch 1.2.0,成功
利用anaconda创建虚拟环境
我先在anaconda下创建了一个python3.5的新环境:
conda create -n python35 python=3.5
激活该环境:
conda activate python35
安装pytorch 1.2.0
pytorch官网链接
在该环境下直接执行官方命令(不知道为什么,用pip3的话就不知道把第三方库装到哪里了,所以用pip):
pip install torch==1.2.0+cu92 torchvision==0.4.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html
等就好了 成功安装成功后:
Successfully installed numpy-1.17.2 torch-1.2.0 torchvision-0.4.0
检测pytorch是否可以使用cuda:
True
表示安装成功,真是太费劲了。
失败的安装教训,cuda 9.0,cudnn 7.3.1、pytorch 1.2.0
本次安装过程中,Nvidia Driver 384.13、cuda 9.0以及cudnn 7.3.1的安装都是成功的,但是因为pytorch的原因导致我只能卸载了cuda9.0,重装了cuda9.2,但是这一部分除了pytorch安装都是ok的。
安装NVIDIA驱动应该是比较简单的工作,,但是由于NVIDIA驱动和显卡的版本具有一定的兼容关系,所以官网里通过筛选得到的NVIDIA驱动推荐可能会不太靠谱。其推荐的都是4开头版本的驱动......
而查看ubuntu系统里的软件与更新部分,会发现其推荐的是384.13版本的驱动。
所以在第一次安装418.88版本的驱动失败之后,我选择直接安装384.13版本的驱动。
Nvidia Driver 384.13 安装,成功
具体安装过程,参考第一部分——成功的部分驱动396.37版本的安装,区别不大。
不过虽然ubuntu 16.04系统推荐的是384.13版本的驱动程序,但是Nvidia的官方文档显示要安装cuda=9.0,需要驱动**>=384.81**,不过在我装完cuda 9.0和cudnn之后,发现同属于384版本的驱动之间好像并不会造成cuda安装失败。
造成本步骤真正失败的原因,是因为pytorch安装的原因,不过如果不考虑pytorch的话,单纯论Nvidia Driver、cuda以及cudnn的安装,这个过程还是成功的。
cuda 9.0 安装过程,成功
安装好了384.13版本的Nvidia Driver之后,我们就可以直接安装cuda 9.0
有些教程里说,cuda里其实是集成了Nvidia驱动程序的,确实是,但是如果你已经安装了Nvidia驱动,在安装cuda的时候,一定要在系统询问你是否安装驱动的时候选择no,否则ubuntu会陷入重复登录的情况,就是让你不断的输入密码,然后又不断的重复登录界面,如果你一旦不幸遇到这种情况,按Ctrl+Alt+F1进入命令行模式,将cuda卸载掉即可。
整个过程差别不大,就是添加环境变量时将9.2改为9.0即可
成功截图:
如果遇到解决不了的问题,可以通过卸载驱动和cuda之后重新安装即可。
- 附上卸载cuda命令
sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
sudo rm -rf /usr/local/cuda-9.0
- 附上nvidia驱动卸载命令:
sudo apt-get remove nvidia* -y
cudnn 7.3.1安装,成功
和前面基本一致,不作赘述。
成功安装cuda和cudnn后的截图一部分。
安装Pytorch 1.2.0,失败
anaconda3安装之后, 使用
conda create -n your_env_name python=3.x
创建新的python虚拟环境
如果想删除虚拟环境:
conda remove -n your_env_name --all
但是
pip install pytorch torchvision
conda install pytorch torchvision
pip3 install pytorch torchvisions
均有问题,即没有current platform的版本avaliable,然后去pytorch官网,发现现在更是没有cuda9.0的官方,即便是将9.2直接改成9.0,也是白搭,直接报错。 去ailiyun镜像下载,也是不行。
所以我只好先按照官方命令装了cuda9.2的pytorch,装的很成功,但是
print(torch.cuda.is_avaliable())
False
凉凉......
所以悲催的我只能重装cuda,下载好cuda 9.2之后,装得很成功,但是在装好cudnn之后,执行
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
输出
cudaGetDeviceProperties returned 35
CUDA driver version is insufficient for CUDA runtime version
fail
我就知道,绝对是有问题啊,思考了一下,看了下cuda和驱动适配关系的官方文档,发现原来的384.13驱动程序版本太低,所以会出现驱动和cuda不兼容问题,因此,我只好卸载cuda,卸载驱动。
宣告失败。
Anaconda3安装
我下的就是base= python 3.7那个,下载后,就直接
sudo sh ./Anaconda3-2019.07-Linux-x86_64.sh
Pycharm安装
本来下的是专业版的professional,谁知道激活码命令网址作者因为某些原因不再维护了,学生申请的话,好像有点麻烦,省事所以只好装了社区版。 安装后pycharm后每次都得去文件夹下找到sh文件,打开比较麻烦,所以可以做个在启动器那里做个快捷方式。
启动器里添加快捷方式
添加pycharm快捷方式:
sudo gedit /usr/share/applications/pycharm.desktop
打开后,添加如下
[Desktop Entry]
Type=Application
Name=Pycharm
GenericName=Pycharm3
Comment=Pycharm3:The Python IDE
Icon=/home/xxx/pycharm-community-2019.2.3/bin/pycharm.png
Exec=/home/xxx/pycharm-community-2019.2.3/bin/pycharm.sh
Terminal=pycharm
即可
希望能帮到大家,谢谢。 2019.9.30