深度学习服务器折腾记

深度学习服务器折腾记

由于工作需要,单位给买了一台思腾合力的深度学习服务器,4块RTX2080Ti显卡,本文主要记录折腾过程,以防以后挂了还能重头来一遍(_

安装操作系统

首选安装16.04 x86_64 desktop操作系统,安装方法不表,有些厂商出厂会给安装好。操作系统安装完毕后需要安装常用的开发必备组件,如build-essential, cmake, cmake-qt-gui, python等组件。

安装Nvidia驱动

对于服务器的GPU配置为4块RTX2080Ti 显卡,首先需要到Nvidia官网下载最新驱动,下载后得到NVIDIA-Linux-x86_64-440.82.run;下载完毕后,需要安装,安装过程中需要禁用X服务,然后再终端界面下安装,具体如下:

  1. 禁用nouveau驱动,执行sudo gedit /etc/modprobe.d/blacklist.conf,编辑文件,添加以下内容:

    blacklist nouveau
    blacklist lbm-nouveau
    

    保存文件,重启系统。

  2. 验证nouveau是否已禁用,执行lsmod | grep nouveau,没有消息就说明禁用成功。

  3. 关闭当前的X服务,执行sudo service lightdm stop,可以看到桌面被关闭;

  4. Ctrl+Alt+F1进入纯字符模式,输入用户名和密码登录系统;

  5. cd 存放NVIDIA-Linux-x86_64-440.82.run文件的路径,若文件没有可执行权限,则提升权限,chmod a+x NVIDIA-Linux-x86_64-440.82.run,然后执行sudo sh NVIDIA-Linux-x86_64-440.82.run -no-x-check -no-nouveau-check -no-opengl-files,其中,最后一项-no-opengl-files一定要添加,否则后续会出现无限循环登录的问题;

  6. 根据出现的安装向导进行一步一步的安装,大部分选项都按照默认即可;

  7. 安装完毕,执行sudo service lightdm start,可以看到熟悉的图形界面又回来了,然后输入密码登录系统;

  8. 测试显卡驱动,执行nvidia-smi,看到有消息打印出来,说明驱动安装完毕;

安装CUDA以及CUDNN

如果深度学习开发是纯粹使用python进行开发,则推荐使用conda进行环境配置,这样的话根本不需要手工安装CUDA和CUDNN。如果需要进行C/C++语言的深度学习应用开发,则需要配置该环境。配置过程如下:

  1. 从Nvidia官网下载cuda和cudnn的安装包,其中cudnn的安装需要注册账号并登录才能下载。对于cuda的安装包,推荐下载.run格式的,对cudnn的安装包,推荐下载.tgz格式的压缩包,而非.deb安装包,此处下载得到文件分别为:cuda_10.1.168_418.67_linux.run和cudnn-10.1-linux-x64-v7.6.5.32.tgz
  2. 先安装cuda,执行sudo ./cuda_10.1.168_418.67_linux.run打开安装向导,期间会提示选择安装组件,由于已经安装了更高版本的驱动,此处不选择安装驱动,其他的全部勾选,确认安装即可;
  3. cuda安装完毕会在/usr/local生成cuda-10.1的文件夹以及cuda的链接文件夹,文件夹中包含了所有的依赖项,同时在用户目录/home/user目录中会有CUDA的sample工程目录;根据安装最后的提示,将cuda添加到系统路径PATH;
  4. 安装cudnn,此组件的安装极为简单,只需解压,解压后得到includelib64两个文件夹,其中包含了cudnn的头文件与库,将其使用管理员权限全部复制到cuda的安装目录中对应的文件夹中即可;

安装nccl组件

nccl组件是老黄为了在多GPU环境下的并行计算开发的组件,可用来调度多个GPU加速计算,怎么用不清楚,反正服务器装上才算满血,安装方法如下:

  1. 去官网下载安装组件,登录账号,选择合适的版本进行下载,得到nccl-repo-ubuntu1604-2.6.4-ga-cuda10.1_amd64.deb
  2. 安装过程参照官网的文档https://docs.nvidia.com/deeplearning/nccl/install-guide/index.html
  3. 按照本地安装的方式,首先安装.deb包,执行sudo dpkg -i nccl-repo-ubuntu1604-2.6.4-ga-cuda10.1_amd64.deb,完毕后并没有真正的安装,只是将软件包建立了一个本地软件源,需要使用apt安装;
  4. 更新软件源,sudo apt update
  5. 安装具体的软件包,sudo apt install libnccl2 libnccl-dev,安装完毕后才是真正的完成;

测试GPU工作情况

测试需要使用gpu-burn软件,该软件需要从github上下载,地址为github.com/wilicc/gpu-burn,使用git将其克隆下来,make编译,得到gpu-burn的可执行文件,执行,得到每一个GPU的测试OK输出,若没有,说明环境配置未完善,请检查之前的配置情况。

安装conda环境

此处选择miniconda,以为其小巧精简,安装包也小,省手机流量(不许联网的日子苦啊,只能用个USB网卡链接手机热点搞)。此处选择了适配python3.7.5的miniconda安装包。为使得所有用户都能使用该环境,免去重复安装的工作,此处将其安装到/opt/miniconda3路径下,这么一来,后续配置环境与在线安装依赖都需要管理员权限(或者干脆把/opt路径赋予777权限),但是一次配置,终身使用,省的人多了乱装环境搞乱了。安装过程不表。安装完毕,配置清华大学的镜像源。

配置conda环境

此处涉及到conda命令的常用操作。

  • 配置tensorflow-gpu环境(举例,pytorch, mindspore同理)
  1. 创建新的用户环境 sudo conda create -n tf --clone base
  2. 激活用户环境conda activate tf
  3. 安装用户所需库sudo conda install tensorflow-gpu keras matplotlib pandas -n tf,其实处于当前激活的环境中,conda install ***是默认仅安装给当前用户的,增加-n tf只是为了保险起见;
  4. 省略。。。。。。具体看需求进行灵活配置

配置服务器远程登录

常见的远程登录方式不外乎ssh,但这种方式仅限于终端操作,对于需要进行桌面可视化界面操作,需要使用远程桌面环境,比如rdp和vnc,配置方法可去网络上搜索,关键词ubuntu远程桌面、windows远程登录ubuntu、等等一大堆,此处不表;

配置多用户登录环境

添加新用户 sudo su进入root,执行adduser xxx添加新用户,根据向导完成添加,新用户默认没有管理权限,增加管理员权限需要修改/etc/sudoers文件,添加xxx ALL=(ALL: ALL) ALL除非必要,不要给用户分配管理员权限,否则万一不小心rm -rf /了就妈卖批了

你可能感兴趣的:(深度学习,深度学习,Ubuntu,服务器,python,NVIDIA驱动)