深度学习服务器搭建
1 写在前面
这次搭建服务器过程中参考了许多网上的资料,看的我眼花缭乱,可惜没有找到特别适合新人入门的文章,正好写一篇比较详细的文章留作纪念,顺便练习一下我的文笔。
其实按照别的人教程去装软件的最困难的地方就是“我们不一样”,所以这篇文章可能只能给大家介绍我遇到的几个问题和我如何去寻找解决方案的一些小小的经验吧。
2 硬件和软件环境
2.1 硬件环境
CPU: Intel core i7-8700K
GPU: NVIDIA RTX 2080Ti
这两个PU的型号和后面软件的安装有一点点关系,但是影响不大。
2.2 软件环境
Linux Ubuntu 16.04
Anaconda python3.7
Nvidia driver 418
CUDA10.0
cuDNN7.5
pytorch 1.0
其实遇到的很多问题都是由于各个软件之间的版本不是相互对应的,所以装了卸......卸了装,所以,大家一定要先过一遍整篇文章再动手!
3 ubuntu系统安装
我这里装的是ubuntu16.04,过程比较简单。可以很容易就找到ubuntu的安装教程(网上的资料比较全)。这里需要注意的是:如果是双硬盘,记得把另一个硬盘也挂载到你的系统上!
4 Nvidia driver安装
这一步非常重要而且很关键,NVIDIA驱动的版本号决定了后面许多要安装东西的版本号。
我这里选择的是安装时最新Nvidia driver 418。
安装驱动网上给过很多种方法,我比较推荐下面这种,因为其他方法都不是很好用。
4.1 下载驱动
安装好linux系统打开后,如果显示器是插在显卡上的,会出现分辨率很低的现象,且无法更改。这一点很难受,因为你会发现你看不全网站的页面!
出现这个问题是因为没有安装英伟达的驱动。所以我们第一步就要安装一个驱动,如果大家有另一台电脑,建议大家下好以后拷到ubuntu系统里,因为分辨率真的很让人头疼,不过如果你把HDMI的线插到了集成显卡上就不会出现分辨率很低的问题了,但是会一卡一卡的。
打开nvidia官网,输入你的显卡型号和操作系统,找到合适的驱动,下载就好!下载完成后将驱动的安装包放在ubuntu系统的根目录下,方便后续操作。
4.2 安装驱动
1.禁用nouveau
其实我们在安装cuda的时候会自带英伟达显卡驱动,不需要自己安装。但是,此时linux系统默认启动的是主板自带的集存显卡,所以我们要禁用集存显卡。
编辑配置文件:
sudo gedit /etc/modprobe.d/blacklist.conf
在文本的最后一行加入:
blacklist nouveau
执行更新:
sudo update-initramfs -u
重启后执行:
lsmod | grep nouveau
如果没有任何输出就成功禁用了nouveau
2.进入命令行界面并禁用图像桌面
进入命令行界面按:Ctrl+Alt+F1
进入后就到了黑白的界面(看起来感觉自己非常厉害!)
先输入linux用户名,再输入密码,然后执行来禁用图像桌面:
sudo /etc/init.d/lightdm stop
3. 安装英伟达驱动
这是非常关键的一步,首先进入下载好的英伟达驱动文件夹,给驱动run文件赋予执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-418.56.run
注意:NVIDIA-Linux-x86_64-418.56.run 应当为你驱动的文件名,如果你嫌麻烦,记得一开始就改个简单的名字。
安装英伟达驱动:
sudo sh ./NVIDIA-Linux-x86_64-418.56.run
注意:这一步因为不能复制,所以大家一定要看仔细命令,很容易输错!
安装时全部选yes,路径就默认的选项即可。
执行以下指令,返回图形界面:
sudo /etc/init.d/lightdm start
如果分辨率自动修改成显示器的默认分辨率,则表示安装成功。
但是!
网上其它教程在安装过程中需要禁用opengl,否则会出现循环登陆的问题。但是我禁用后,查看本机详细信息时并不能看到显卡型号,又看到某博主说“台式机可以选择OpenGL”这句话,所以冒了重装系统的风险尝试安装了opengl,如果大家害怕出现循环登陆的问题,在安装时应当改为如下命令:
sudo sh ./NVIDIA-Linux-x86_64-418.56.run –no-opengl-files
至此,驱动就完美安装好了,我大概安了五六次驱动,最后一次才觉得按驱动是一件很简单的事情。但万事开头难,驱动真的是难到了我和另一位很厉害的学长!希望大家看到后可以少走弯路~
5 cuda10.0安装
其实安装的那一天cuda已经出到了10.1,我理所当然的就下载了10.1,后来装到最后才发现pytorch还没有出10.1的版本!!!所以只好卸载重装!(用着刚刚出的软件,我觉得自己有在做时代的弄潮儿!)你们看到这篇文章的时候,已经可以去安装cuda10.1了~
5.1 下载cuda10.0
打开nivida官方网站去下载符合大家版本的cuda吧。
注意:1. 下载runfile版本,因为runfile可以选择不安装Nvidia driver。
2. 这个网站点进去后会让大家下载最新版的cuda,如果需要旧版本,去Legacy Releases里去下载。
5.2 安装cuda
1.进入命令行界面并禁用图像桌面
进入命令行界面按:Ctrl+Alt+F1
进入后就到了黑白的界面(看起来还是感觉自己非常厉害!)
先输入linux用户名,再输入密码,然后执行来禁用图像桌面:
sudo /etc/init.d/lightdm stop
2.执行以下指令,安装cuda:
sudo sh cuda_10.0.130_410.48_linux.run
注意:
1.cuda_10.0.130_410.48_linux.run应当为你下载好的cuda的文件名,如果你嫌麻烦,记得一开始就改个简单的名字。
2.如果你安装的是cuda10.0:
看协议时需要一直按空格键或Enter键到100%。当询问是否要安装Nvidia driver时,一定要选no!其他的选择accept和yes,安装在默认目录就行。
3.如果你安装的是cuda10.1:
cuda10.1做了一个简单图形界面,记得把Nvidia driver前面的那个“X”去掉!!
3.安装好后,执行以下指令打开图形界面:
sudo /etc/init.d/lightdm start
4.执行以下指令更改环境变量,打开:
sudo gedit ~/.bashrc
在里面添加如下环境变量:
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-10.0
注意:记得把cuda-10.0换成你的版本号
5. 重启电脑(一定要重启!!!),执行以下指令查看cuda是否安装成功:
nvcc -V
如果成功会输出详细的内容!
棒!你又成功完成了cuda的安装!接下来的任务就比较简单了~
6. cuDNN的安装
cuDNN其实不太需要安装,就是需要复制几个文件到cuda下面。
6.1 下载cuDNN
同样从nvidia官网下载cuDNN,需要简单的注册。
请大家下载这个版本,因为我只会按照这本版本安装......
6.2 安装cuDNN
下载好后把文件拖到home里,邮件提取解压到当前文件夹。然后会出现一个名字叫cuda的文件夹,我们需要把里面的文件复制到cuda10.0的文件夹里。但是linux的usr文件夹不能随便粘贴复制的,所以运行下面的指令。
cd cuda
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
更新网络连接:
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.5.1.3 # 自己查看.so的版本
sudo ln -sf libcudnn.so.5.1.3 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig
注意:这里的版本号肯定差别较大,建议大家自己打看这个文件夹搜索一下,不要写错了。
很简单吧,到此,我终于可以:再见nvidia,你注册个账号密码还那么多要求!!
7 Anaconda的安装
7.1 下载Anaconda
从官网下载linux版本的Anaconda,这个速度蜜汁快,可能是ipv6的原因吧。
7.2 安装Anaconda
1.同样把下载好的文件放到根目录下,打开终端:
bash anaconda.sh
注意:anaconda.sh是你下载的文件名,可以改一个比较简单的。
安装时会问是否继续这里输入“yes”就好了。问配置问题的话直接按回车键,用默认的配置就可以了。这样再打开home,就会多出一个anaconda3的文件夹,这就是安装好的软件。
这里我们还需要输入一下指令,更改python的运行地址,因为Linux是有默认的python地址的。
2.执行以下指令更改环境变量,打开:
sudo gedit ~/.bashrc
在里面添加如下环境变量:
export PATH=/home/yourname/anaconda3/bin:$PATH
注意:这里需要把第二个地址改成自己的用户名。
这个操作后你再输入python,就会显示anaconda3,python3.7,而不是ubuntu自带的python2了。
简单的anaconda安装就结束了,以后可能需要建立一些环境什么的,还要大家自己去学习一下,这一部分我也很懵sorry!
8 pytorch的安装
如果大家运气好的时候,使用如下命令就可以很顺利的安装pytorch了,毕竟它就是python的一个库。
pip install torch torchvision
可惜的是:我下载了很多次都不成功,真的很崩溃,不知道大家为什么这么推崇这个方法。而且如果安装的pytorch版本很新的话,清华的镜像源并没有我们需要的东西,速度真的很慢......而且还不能断点续传!!
所以这里推荐大家直接去pytorch官网下载whl文件。
下载好后直接:
pip install pytorch.whl
注意:pytorch.whl是你下载文件的名字。
紧接着:
pip install torchvision
这个比较快!
如果一切顺利的话,我们的基础环境配置就结束了!
进入python测试一下:
import torch
print(torch.cuda.is_available())
输出结果是Ture就大功告成了!!
9 写在后面
环境的搭建工作稍微告一段落了,可能有人会问为什么选择pytorch而不是tensorflow,其实我并没什么偏好,只是当时tensorflow还不支持python3.7。
要特别感谢一个知乎上博主,他还回了我的私信,万分感谢,这是他的文章,非常感谢他!也要谢谢我麻烦过的那么多学长,无论是帮过我硬件还是软件方面的。如果你们看到了这篇文章,真的非常感谢!
ps:如果大家有什么问题,我会尽力帮大家解决的,但是!装软件真的是个玄学,也请大家记住,该重启时一定重启!