Dell服务器Ubuntu 18.04 双显卡(2080ti)搭建深度学习环境(CUDA 10.1/cuDNN 7.6/Tensorflow 1.14).md

# 1 安装显卡驱动

1.1 BIOS禁用Secure Boot

  • 打开服务器电源,按F2进入Bios设置
  • 在System BIOS ->System Security -> Secure Boot,选择Disabled,保存退出

1.2 禁用第三方驱动Nouveau

  • 卸载之前安装的NVIDIA驱动
$ sudo apt-get purge nvidia*
  • 将nouveau加入黑名单内
# 编辑blacklist.conf
$ sudo nano /etc/modprobe.d/blacklist.conf
# 在blacklist.conf的文件的最后手动添加:blacklist nouveau
# 更新内核
$ sudo update-initramfs -u
# 重启
reboot
# 重启后验证nouveau是否被禁用,如果下列语句无输出,表示禁用成功
lsmod | grep nouveau

1.3 官网下载驱动

1.4 安装驱动

  • 重启服务器,进入命令行界面进行安装。服务器重启进入到用户登录界面时,按CTRL+ALT+F2(F2~F6均可,对应不同的5个终端,F1是图形界面)进入命令行界面
  • 进入驱动的下载目录,开始安装
# 安装gcc make
$ sudo apt-get install gcc make g++
# 给文件增加可执行权限
$ sudo chmod a+x NVIDIA-Linux-x86_64-430.34.run
# 开始安装,后面的那个参数表示不安装OPENGL
$ sudo ./NVIDIA-Linux-x86_64-430.34.run --no-opengl-files
# 安装完成后,重启
$ reboot
# 验证是否安装成功
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.34       Driver Version: 430.34       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 208...  Off  | 00000000:02:00.0 Off |                  N/A |
| 18%   61C    P0    67W / 250W |      0MiB / 11019MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 208...  Off  | 00000000:04:00.0 Off |                  N/A |
| 27%   64C    P0     1W / 250W |      0MiB / 11019MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

# 2 安装CUDA 10.1

2.1 下载CUDA安装文件

  • 进入官网,选择对应的操作系统版本,建议下载runfile(下载过deb,但是安装失败)

2.2 执行安装

  • 进入下载目录,执行命令
# 开始安装
$ sudo sh cuda_10.1.168_418.67_linux.run
# 添加环境变量
$ sudo nano /etc/profile
# 添加以下文本到profile的最后
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 保存修改,然后更新环境变量
$ source /etc/profile

2.3 测试CUDA是否安装成功

  • 编译CUDA的Sample
cd ~
cp -r /usr/local/cuda-10.1/samples/ .
cd samples/
# make大概要10分钟左右
make
  • 测试CUDA
cd ./1_Utilities/deviceQuery
./deviceQuery
# 出现如下类似结果,表示成功
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 2 CUDA Capable device(s)
Device 0: "GeForce RTX 2080 Ti"
  CUDA Driver Version / Runtime Version          10.1 / 10.1
  CUDA Capability Major/Minor version number:    7.5
  Total amount of global memory:                 11019 MBytes (11554717696 bytes)
  (68) Multiprocessors, ( 64) CUDA Cores/MP:     4352 CUDA Cores
  GPU Max Clock rate:                            1545 MHz (1.54 GHz)
  Memory Clock rate:                             7000 Mhz

# 3 安装cuDNN 7.6

  • 进入官网下载文件,需要注册后才能下载,https://developer.nvidia.com/cudnn
  • CUDA 10.1对应的cuDNN是7.6,选择对应版本,下载文件。如下图:

  • 安装cuDNN
tar -zxvf cudnn-10.1-linux-x64-v7.6.1.34.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
  • 查看cuDNN的版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
# 输出结果如下:
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 1
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

# 4 安装Anaconda(Python 3.7 version)

$ sudo chmod +x Anaconda3-2019.03-Linux-x86_64.sh
$ sudo bash Anaconda3-2019.03-Linux-x86_64.sh

# 5 安装TensorFlow 1.14(GPU版)

  • 安装TF
# 建议先将conda的源设置为国内的,否则速度太慢
$ conda install tensorflow-gpu==1.14.0

如果出现anaconda3文件无写入权限的问题(EnvironmentNotWritableError: The current user does not have write permissions to the target environment),可以使用命令对文件夹授权。
sudo chown -R user_name /path/to/anaconda3

  • 测试TF
python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"

猜你喜欢

转载自www.cnblogs.com/robinzh/p/11202732.html
今日推荐