最近在实验室疯狂的跟N卡杠上了,无限次的重装系统和无限次的搭建深度学习环境,我都快背熟了.不过还是mark起来好.
服务器配置
- 硬件:1080Ti显卡x4
- 系统ubuntu18.04
## 系统 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic ## 内核版本 $ uname -a Linux ubuntu 4.18.0-15-generic #16~18.04.1-Ubuntu SMP Thu Feb 7 14:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux $ cat /proc/cpuinfo | grep model\ name model name : Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz model name : Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz model name : Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz model name : Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz model name : Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz model name : Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz $cat /proc/meminfo | grep MemTotal MemTotal: 131897972 kB $ df -lh 文件系统 容量 已用 可用 已用% 挂载点 udev 63G 0 63G 0% /dev tmpfs 13G 4.5M 13G 1% /run /dev/sda1 938G 306G 586G 35% / tmpfs 63G 1.6M 63G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 63G 0 63G 0% /sys/fs/cgroup /dev/loop1 3.8M 3.8M 0 100% /snap/gnome-system-monitor/57 /dev/loop0 35M 35M 0 100% /snap/gtk-common-themes/1122 /dev/loop2 2.3M 2.3M 0 100% /snap/gnome-calculator/260 /dev/loop3 91M 91M 0 100% /snap/core/6350 /dev/loop4 35M 35M 0 100% /snap/gtk-common-themes/818 /dev/loop6 141M 141M 0 100% /snap/gnome-3-26-1604/82 /dev/loop7 141M 141M 0 100% /snap/gnome-3-26-1604/74 /dev/loop5 15M 15M 0 100% /snap/gnome-logs/45 /dev/loop8 91M 91M 0 100% /snap/core/6405 /dev/loop9 141M 141M 0 100% /snap/gnome-3-26-1604/78 /dev/loop10 36M 36M 0 100% /snap/gtk-common-themes/1198 /dev/loop11 13M 13M 0 100% /snap/gnome-characters/139 tmpfs 13G 28K 13G 1% /run/user/121 tmpfs 13G 68K 13G 1% /run/user/1000 /dev/sdb1 7.3T 51M 6.9T 1% /media/ubuntu/e298f941-0d0a-4caa-89ca-567533ee2ea8 /dev/sdc2 3.7T 118G 3.6T 4% /media/ubuntu/Seagate Expansion Drive ## 其实一条命令就可以查看全部的硬件设置了 ,后面接的是-t选项 ## 内容包括bios, system, baseboard, chassis, processor, memory, cache, connector, slot $ sudo dmidecode
软件包下载
-
显卡驱动
去Nvidia网站下载相应版本的显卡驱动,这里我选择的是最新的版本号为418.43,或者点击这个链接直接下载1.GeForce 2.GeForce 10 Series 3.GeForce GTX 1080 Ti 4.Linux 64-bit 5.Chinese(Simplified) -
cuda选择
由于最新版的cuda版本是10.1*的,我尝试过,但是最后发现tensorflow最高版本1.13只能支持
cuda10.0的版本,如果安装10.1版本,最后tensorflow会发现找不到cuda10.0(巴拉巴拉的).so文件
什么鬼的,所以老老实实使用cuda10.0的就好.一般是去cuda官网下载runfile文件,但是这个
cuda10.0超级难找的,
直接给链接(版本号为cuda_10.0.130_410.48)
- cudnn下载
去官网下载和cuda对于的版本,千万不要作死选其他的.
- Anaconda下载
墙裂推荐清华的源,特别佩服清华爸爸,里面好多东西,需要科学上网的才能下载的包,是他拯救了我
的网速,下载链接版本号Anaconda3-5.0.0-Linux-x86_64.sh
安装
准备工作
- 按crtl+alt+f3(ubuntu16.04是crtl+alt+f1)进入tty
-
禁用 lightdm 桌面服务
### 特别重要的一步,一定要做的啊 sudo service lightdm stop -
列入黑名单,禁用nonveau
$ sudo vim /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist rivatv blacklist nvidiafb
然后重启一波,重启后输入
$ lsmod | grep nouveau
## 查看nouveau是否启用
安装显卡驱动
-
进入tty,设置权限
$ sudo chmod a+x NVIDIA-Linux-x86_64-418.43.run -
安装
$ sudo sh NVIDIA-Linux-x86_64-418.43.run -no-opengl-files # -no-opengl-files # 只安装驱动文件,不安装 opengl 文件(核显输出,独显运算)
安装cuda
-
权限
$ sudo chmod a+x cuda_10.0.130_410.48_linux.run -
安装
$ bash cuda_10.0.130_410.48_linux.run # 询问'Install NVIDIA Accelerated Graphics Driver for 410.48.',选择N,这是因为我们之前安装的N卡驱动是418的,这里这个cuda默认的是410.48,所以为了不覆盖,我们选择N -
环境变量
$ vim ~/.bashrc export PATH=$PATH:/usr/local/cuda-10.0/bin export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64
安装cudnn
-
解压
$ tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz -
复制
$ cd cuda $ sudo cp lib64/* /usr/cuda10.0/lib64/ $ sudo cp include/* /usr/cuda10.0/include/
检测安装是否成功
解除 lightdm
$ sudo service lightdm start
进入界面 crtl+alt+f1
$ nvidia-smi
$ nvcc -V
# 如果显示成功就是安装成功的了,一般是成功的(相信我)
问题
-
卸载显卡驱动
有些同学会发现如果安装失败,会有一个很尴尬的情况,那就是无限循环登录界面.
这个时候解决办法是卸载显卡驱动##tty下 $ sudo service lightdm stop $ sudo /usr/bin/nvidia-uninstall ## 或者 $ sudo apt-get install autoremove --purge nvidia* -
卸载cuda
$ sudo /usr/local/cuda-10.0/bin/uninstall_cuda-10.0.pl -
屏幕分辨率问题和设置
就是安装显卡驱动的时候会出现分辨率不是16:9的情况,变成4:3,超级难看的这里mark一下,改成16:9分辨率.首先看下设置-设备-显示,如果没有出现所要的分辨率sudo xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync sudo xrandr --addmode VGA-1 "1920x1080_60.00"
不用重启就可以直接看到设置里面多了1920x1080的选项,接下来就可以愉快的使用了
框架安装
安装anaconda
这个超级简单的
-
权限
$ sudo chmod a+x Anaconda3-5.0.0-Linux-x86_64.sh -
安装
$ ./Anaconda3-5.0.1-Linux-x86_64.sh #询问安装路径,默认回车 #询问环境变量,选择yes 强制更新环境变量 source ~/.bashrc -
首先默认系统软件更新使用清华的源,主要是apt-get的那个更新和install
$ sudo vim /etc/apt/sources.list # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse #修改完毕,使其生效 $ sudo apt-get update $ update source list -
tensorflow
直接pip使用清华的源
# 升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
conda也行,不过我觉得conda慢死了
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
$ conda config --set show_channel_urls yes
或者安装时中加源
pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple
- pytoch
去官网,需要科学上网哦,选择特定的版本,直接命令行搞定,超级慢的,建议睡觉前安装,哈哈哈$ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
完毕
不过我还是最喜欢keras,越来越不喜欢tensorflow,越做越复杂,当然应该是我菜哈哈哈.
接下来可以在Deeplearning下翱翔了.