CentOS_7_搭建深度学习服务器(一)

CentOS 7 Minimal 搭建深度学习服务器(一)

  准备把拥有4块TITAN Xp的工作站搭建成远程服务器,首先配置系统。此处选用的是CentOS 7。不为别的,就看中它十年不出新release!稳定不折腾。

  系统安装的过程就不在此详述了。以下全程root用户。

网络配置

  万事开头得先能上网!

  1. 登录之后,输入
nmcli d

查看网卡状态。理所应当地看到了disconnected
2. 输入

nmtui

打开网络管理器,选择第一个“Edit a connection”,如下图所示。
CentOS_7_搭建深度学习服务器(一)_第1张图片
3. 键选中第一个网卡。
CentOS_7_搭建深度学习服务器(一)_第2张图片
4. 将Automatically connect选上。
CentOS_7_搭建深度学习服务器(一)_第3张图片
6. 选择OK退出之后,输入

service network restart

重启网络服务。
7. 查看ip

ip a

CentOS_7_搭建深度学习服务器(一)_第4张图片

安装驱动前的准备工作

  1. 终于能上网了,首先想做的就是更新系统。
yum update
  1. 需要gcc。
yum install gcc

这儿安装的gcc版本是是4.8。有些老,不过我喜欢[手动滑稽]。主要是因为gcc-4.8符合CUDA8.0的安装要求,虽然可能不用CUDA8.0。
2. 安装wget。没有图形界面也就意味着没有浏览器。当然,也不能鼠标操作。所以,下载神器wget就“千呼万唤始出来”了。

yum install wget
  1. 安装NVIDIA驱动需要kernel-devel。
yum install kernel-devel

当然啦,这儿可以先不装,等后面报错了再装也不迟。报错如下图。
CentOS_7_搭建深度学习服务器(一)_第5张图片
4. 更新完后重启时可以注意一下,在开机引导界面选择要启动的CentOS系统时,你可能会看到有两个CentOS,因为刚更新了一下,第一个是新的,光标停留在这一行,按下e进入编辑模式,如下如所示(图中只有一个CentOS,忽略镜面反射)。找到倒数第二行,在rhgb quiet后输入nomodeset。意思就是告诉系统“没有显卡,连集显有没有!”这样就省得再禁用nouveau。网上各种妖艳贱货般操作都不如这一招来得直截了当。
CentOS_7_搭建深度学习服务器(一)_第6张图片
CentOS_7_搭建深度学习服务器(一)_第7张图片

安装NVIDIA驱动

  1. 如果按照上面第4步重启之后显示分辨率会降低,这是正常的。CPU已经尽力了。如果你不清楚机子上的显卡应该选用什么驱动的话,那就先安装个nvidia-detect,可以用来检测适合的显卡驱动。
# 添加ELPepo源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 安装nvidia-detect
yum install nvidia-detect
# 检测适合的驱动
nvidia-detect -v
  1. 在NVIDIA官网上查到下载链接后,用wget下载驱动安装包。
# 我需要的是410.78
wget -r -np -nd https://us.download.nvidia.com/XFree86/Linux-x86_64/410.78/NVIDIA-Linux-x86_64-410.78.run
  1. 运行安装包,安装驱动。
chmod +x NVIDIA-Linux-x86_64-410.78.run
sh ./NVIDIA-Linux-x86_64-410.78.run

CentOS_7_搭建深度学习服务器(一)_第8张图片
4. 检测安装是否成功。

nvidia-smi

CentOS_7_搭建深度学习服务器(一)_第9张图片

安装CUDA

  1. 下载需要的CUDA。我选择用常用的runfile方式安装。
# 我需要CUDA9.0
wget -r -np -nd https://developer.nvidia.com/compute.cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run
  1. 运行安装包,安装CUDA。
chmod +x cuda_9.0.176_384.81_linux-run
sh ./cuda_9.0.176_384.81_linux-run

这人就不需要再选择安装驱动了,Samples不装也没影响。
3. 根据提示,配置环境变量。

vi .bashrc

写入

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
  1. 测试一下。
nvcc -v

安装CUDNN

  1. 因为下载CUDNN需要登录,虽然我不理解为什么要求登录,所以就不能用wget下载了。从别处下载好用U盘copy过来吧。
# 查看U盘
fdisk -l
# 新建一个路径
mkdir /mnt/usb
# 挂载U盘这儿只是举例,具体视情况定
mount /dev/sdb1 /mnt/usb
# 复试
cd /mnt/usb
cp cudnn-9.0-linux-x64-v7.4.2.24.tgz /root
# 卸载U盘
umount /mnt/usb
  1. 按照官网给出的安装手册,解压并移动文件。
tar -xvf cudnn-9.0-linux=x64-v7.4.4.24.tgz
cp cuda/include/cudnn.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

安装Miniconda

  考虑过既然是服务器,那要不用virtualenv吧。不过想想还是算了。CentOS 7自带的Python版本是2.7的,而鬼知道会需要Python什么版本的。还是用conda方便。不过,不推荐安装Anaconda,理由就是太大!不是说磁盘空间充足,而是很多东西根本用不着。

  1. 先做一下准备工作。需要一个叫bunzip2的东西,而平时在ubuntu等系统上根本不会注意到它。
yum install bzip2
  1. 下载Miniconda的安装包。正巧我就赶上Miniconda网页崩溃的时候。在其GitHub上issue中14个小时前就有人提出了这个问题,作者称还在解决中,并给出了备用下载路径。
wget -r -np -nd https://repo.continuum.io/miniconda/Miniconda2-4.5.12-Linux-x86_64.sh

之后的安装就如同在ubuntu等系统下安装一样。使用也没有区别。

后续

  系统环境就搭建好了。当然,作为服务器,肯定是需要有服务器的样子的。像什么后端程序、数据库是肯定需要的。这些后头在倒腾。

参考

[1] CentOS 7 minimal版本安装后网络配置
[2] CentOS7.3安装NVIDIA-1080ti驱动、cuda、cudnn、TensorFlow

你可能感兴趣的:(Linux)