深度学习服务器GPU & Jupyterhub环境配置
基础环境信息
系统:Ubuntu20.04
GPU型号:RTX 2080i
一、安装驱动
安装驱动
ubuntu-drivers devices 查看显卡型号
sudo ubuntu-drivers autoinstall #就可以安装上图中的推荐版本了
sudo reboot # 要重启之后才能生效
验证是否安装成功
输入命令Nvidia-smi
出现下图,说明驱动安装成功
遇到的问题
在安装显卡的时候,机箱里面有四捆线,每一捆都是两个头,一个是6+2针的ATX线,一个是6针的ATX线,最开始我们是直接用了,也成功安装了驱动,但是在查看显卡信息的时候,一直显示没有足够的电源,后来又查了些资料,用了几个转接头,把所有的6针都换成了8针,总算把这个问题解决了,驱动也能成功地连接上了。
二、安装anaconda
安装anaconda
去anaconda官网 下载想要的版本
(可以直接在服务器里wget,也可以在自己本地下下来然后再搞到服务器上取,Xftp也贼快)
然后只要在终端进入文件下载目录,运行安装脚本,就ok了,一般脚本会自动把自己的环境变量添加到PATH里面的
bash ~/Anaconda3-2020.07-Linux-x86_64.sh
注:如果需要后面配置jupyterhub的多人环境,应调用 root 权限在安装过程中指定安装到 /opt/anaconda/ 路径下,这样所有用户均可读,但无法直接在 base 环境下安装模块。
同时为了让每个用户都能访问到 conda,需要逐个在用户的 .bashrc 文件中加入 export PATH=’/opt/anaconda:$PATH’
验证是否安装成功
conda –V # 看会不会显示conda的版本
三、安装CUDA
安装CUDA
- 确定版本,nvidia-smi 可以看到当前安装的驱动的版本和推荐的cuda版本。然后去官网选择对应的系统版本和架构,会自动生成相应的下载命令,直接到终端执行就ok了【我们在wget的时候发现会自动301重定向到cn域,所以我们就只能在自己的主机上下载下来在上传到服务器上了,虽然费了点劲,但毕竟下载速度上来了】
运行run文件,他会问你要选择下载那些东西,因为我们已经安装了驱动,所以就不选第一项就ok了
然后记得要修改环境变量
vi ~/.Bashrc
然后再文件里面最后加上(需要替换成自己的安装路径)
export PATH="/usr/local/cuda-11.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/lcoal/cuda-11.0/lib64:$LD_LIBRARY_PATH"
保存退出后
source ~/.bashrc #让环境变量生效
验证是否安装成功
通过编译CUDA的sample来查看,本来最简单说的方法是查看下cuda的版本就好了,但是我的cuda文件夹下面并没有一个文件叫做version.txt,然后又不敢抱有侥幸心理,就只能真的编译起来看一看才能真的放心啦。
看到最后的显示Result = PASS,就说明CUDA安装成功了
cd /usr/local/cuda/samples 进入到Samples安装目录
Make #编译起来,这个过程会跑个10来分钟的样子,耐心的等等哦
cd /bin/x86_64/linux/release #这个可能要自己找找,到x86_64应该都不会变,但是我看的资料说实在x86_64下面就有release文件夹了,我的却还是深了一层,要是找不到的话,大家ls来看一看就好啦
./deviceQuery #运行
出现下图就说明我们的CUDA成功的安装啦
四、安装cuDNN
安装cuDNN
根据CUDA的版本可以确定需要的cuDNN版本
网站需要注册一下就可以用了,需要注意的是,runtime文件和dev文件两个都要下
先运行runtime,在运行dev,否则dev会报错,说缺libcudnn8的(如下)
具体的安装命令如下
sudo dpkg -i libcudnn8_8.0.5.39-1+cuda11.0_amd64.deb
sudo dpkg -i libcudnn8-dev_8.0.5.39-1+cuda11.0_amd64.deb
sudo dpkg -i libcudnn8-samples_8.0.5.39-1+cuda11.0_amd64.deb
验证是否安装成功
cp -r /usr/src/cudnn_samples_v8/ $HOME #把它放到一个可执行的路径下
cd $HOME/cudnn_samples_v8/mnistCUDNN #进入该路径
make clean && make #编译
显示编译成功,说明我们的cuDNN安装成功了
注意:前面的cp命令时一定要的啊,不要自作聪明,像我一样【狗头】,是真的会报错,权限不够啊
插曲:make时才发现gcc和g++系统里都没有,需要自行安装。于是,就有了
sudo apt install gcc
sudo apt install g++ #本来想按着gcc版本安装,但是没成功,就直接这样了
五、安装tensorflow
因为已经安装了anaconda了,所以直接建立个虚拟环境就ok,需要注意的是python的版本最好设为3.6,因为目前为止,python3.8还不太支持tensorflow
conda create –n tensorflow python=3.6 # 创建虚拟环境
# 激活虚拟环境
source activate tensorflow # 此时可以看到(base)变成了(tensorflow)
# 安装gpu版本的tf,临时改pip源为国内的豆瓣源,这样下载能快些
pip install tensorflow-gpu -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
安装完之后,我们来验证一下,这一顿操作是否成功了,我们的tensorflow是不是真的是在gpu上飞行的
python #进入python环境
import tensorflow as tf
tf.test.is_built_with_cuda()
要是返回的是True,就说明,同志们,我们可以开心的玩耍了
【不要用tf.test.is_gpu_available(),这个函数已经被弃用了,返回的结果是都是False】
六、配置jupyterhub
在 Anaconda 的 base 环境下安装 JupyterHub
conda install JupyterHub
# 之后生成配置文件
jupyterhub --generate-config
vim jupyterhub_config.py
#在文件的最后添加
c.JupyterHub.ip = 'IP地址'
c.JupyterHub.port = 端口
c.Authenticator.whitelist = {'user1'}
c.Authenticator.admin_users = {'ubuntu'}
#保存退出即可
为了让其他环境也能在jupyterhub中显示
#需要在base环境中
conda install nb_kernel // conda install nb_conda_kernels
#在每一个子环境中
conda install ipykernel
python –m ipykernel install --name kernel_name --display-name dispaly_name
其他可能用到的命令
查看可用的环境:jupyter kernelspec list
删除显示的环境:jupyter kernelspec uninstall kernel_name
添加用户: adduser user_name
更改用户密码:passwd user_name
关于建立删除环境:
conda create –n name
conda create –n name –clone AAA
conda remove name
使用nohup让jupyterhub在后台运行
nohup jupyterhub > jupyterhub.log &
# 注:运行时好像需要在root用户下运行,其他用户运行可能会导致有的用户启动不了.
以上就是,从头开始配置一个深度学习服务器,至今为止,我的全部操作了,后期还会加什么东西,就看需要啦,先去玩啦!大家加油!