1 简述
最近需要在 CentOS7 linux 服务器上配置深度学习的训练环境。
那么,该怎么做呢?
对于一台服务器,首先得实现连网,然后进行远程登陆。
其次,搞清楚安装什么软件,如何安装,有哪些依赖项需要提前安装。
最后,需要进行简单的测试验证是否成功安装。
难点,一般公司的服务器可能不通外网,不能使用那些一键安装指令。
基于服务器的配置(2cpu,8gpu),我选择 tensorflow-gpu1.9、cuda9、cudnn7、anaconda3-4.3、python3.6 构建整个深度学习的训练环境。
接下去,我将逐步介绍主要的操作。
2 软件安装
2.1 实现服务器的远程连接
具体参照我之前的博文win10 用 Cecure CRT 远程连接 CentOS7 linux报错:The remote system refused the connection.,主要配置 /etc/sysconfig/network-script 目录下的网卡配置文件。
2.2 安装 anaconda
anaconda 用于方便地管理 python 三方库。
下载镜像文件(sh文件),放到 /usr/local/src 文件夹下(你也可以选择其他文件夹)。
- 询问是否接受协议(输入q,迅速跳过文字),输入yes
- 询问安装路径,输入/opt/anaconda3
- 询问路径.bashrc(yes表示当前用户有效),输入no
设置环境变量:
- 输入 vim/etc/profile
- 编辑文件,输入:
export ANACONDA_HOME=‘/opt/anaconda3’(安装路径)
export PATH=$ANACONDA_HOME/bin:$PATH
验证是否成功安装:终端输入 python,出现以下显示即为成功安装:
2.3 安装显卡驱动
lspci | grep -i NVIDIA
- vi /usr/lib/modprobe.d/dist-blacklist.conf
- 将nvidiafb注释掉,#blacklist nvidiafb
- 然后添加以下语句:
- blacklist nouveau
- options nouveau modeset=0
接下去重建 initramfs image:
- mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
- dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
最后检查是否屏蔽成功 :
输入:lsmod | grep nouveau,无输出表示屏蔽成功。
2.4 安装 CUDA
sh 指令安装
安装位置:推荐 /usr/local/cuda
- 接受协议
- opengl:no
- x configuration:no
- tookit:yes
- symbolic:yes
- samples:yes
安装完显示:
修改环境变量:
- 输入:vim ~/.bash_profile
-
在export下方输入:
-
export PATH="/usr/local/cuda-9.0/bin:$PATH"
- export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
-
运行文件,输入:source ~/.bash_profile
检查是否成功安装,输入:nvidia-smi,显示:
输入:nvcc --version,显示:
2.5 安装 cudnn
cudnn 是个加速包,没这个 gpu 版的 tf 还是不能跑。
下载链接:https://developer.nvidia.com/rdp/cudnn-archive#a-collapse742-92
需要注册,才能下载。推荐放置目录:/usr/local/src
安装:
- 解压文件,输入:
tar xvf cudnn-9.2-linux-x64-v7.6.4.38.tgz
- 解压的文件在cuda目录(解压时候自己创建的/usr/local/src/cuda
)下面
- 复制到/usr/local/cuda目录:
- cp /usr/local/src/cuda/include/* /usr/local/cuda/include
- cp /usr/local/src/cuda/lib64/* /usr/local/cuda/lib64
2.6 安装 tensorflow-gpu
安装 tf-gpu 版需要一些依赖包。安装过程提醒缺啥手动补齐。
一些依赖包有编译好的轮子,那就直接用,把轮子里面 lib 路径下的东西放到你安装的 anaconda 目录下,anaconda3/lib/python3.6/site-packages。装完 conda list 显示的还是旧版本,pip show xxx,才是新的版本。
野生未编译的轮子可以统一下载到: /usr/local/src 下面。
-
./configure --prefix=/usr/local/src/xxx
- make
- make install
安装 tf 的过程还是采了不少坑,主要体现在野生轮子编译 gg,总是莫名其妙的错误,后来发现公司镜像有编译好的轮子,真香。安装完 tf 后,import 的过程中也踩了不少坑,经常爆出缺乏 xxxx.so 文件,似乎是路径设置之类的问题,把 cuda lib64 下面所有的包放到 /lib64 下面了事。总之,黎明前的黑暗还要坚持坚持。
最后看到 import 成功后,不要激动,万一成功的是 cpu 版呢..........这是我最后采的那个坑。
为啥会踩坑,因为第一次安装 cuda 的时候选择显卡驱动,但是不知咋搞的,后来驱动失效了.......
输入下面的代码,出现了 cpu 版,,,,这,,,,跑车愣是开到马路上了,,,,1公里10个红灯教你做人。
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
最后总结,无论配置什么环境,要耐心仔细。只要功夫深,铁杵磨成针。