前言
哎呀,感觉好久没有更新了,打开博客只有可怜的一篇,还是一个月之前发的。。不是不想写,实在是感觉没有什么具有价值的东西可写,在电脑上笔记倒是记了不少,不过想想感觉都是一些摘抄记录。另外感觉写博客也不是那么容易的事,因为写的东西还要给别人看的,需要好好的梳理内容逻辑,用词措辞等。怎么说呢,慢慢来吧,这才刚刚起步。
话说为什么要写这篇博文呢?因为实验室的服务器有问题了,最近我一直在装系统,搭环境之类的,和大多数的新手一样,我也是各种百度,各种找博客解决期间遇到的问题。但是,有些操作可能要做多次才能成功,比如装显卡驱动,我是装了卸、卸了装,装了又装。。。每一次都要重复的去网上查找方法命令。经过多次折磨,终于想要把装搭的方法、过程记录一下。之前我觉得这些没必要写,因为网上都有,现在我明白了,为了以后可能再次经历这个过程,我决定把方法记录下来,那下一次就会方便多了,或许也可以方便他人。
正文
之前服务器的问题是开不了机,每次开机直接黑屏,只显示一行:/dev/nvme0nlp2:clean 1199789/14188544files, 40674657/56741376blocks
,连命令行Ctrl Alt F1
都进不去,试了一些办法以及找大佬帮忙也不行,最后只能重装系统,装的 ubuntu16.4LTS 。
目标配置
我想要搭建的环境是用来跑深度学习模型maskrcnn-benchmark,采用docker安装,那么就需要显卡驱动,cuda,cudnn,pytorch,docker,nvidia-docker等。
- 本机配置:ubuntun16.4LTS,显卡 RTX2080Ti
安装显卡驱动
首先去官网下载适用于自己的驱动版本,我下载的是 NVIDIA-Linux-x86_64-430.40.run
禁用 nouveau 。
sudo vim /etc/modprobe.d/blacklist.conf
,插入
blacklist nouveau options nouveau modeset=0
- 然后
sudo update-initramfs -u
,重启
-
ctrl alt F1
进入命令行执行sudo service lightdm stop
然后卸载原有驱动
sudo /usr/bin/nvidia-uninstall
,不过从下图来看好像 .run 文件安装的不用卸载,官网文档上面有其它格式文件的卸载方法sudo chmod a+x NVIDIA-Linux-x86_64-430.40.run
sudo ./NVIDIA-Linux-x86_64-430.40.run -no-x-check -no-nouveau-check -no-opengl-files
安装选项:continue,continue,32-bit compatibility libraries? NO,nvidia-xconfig update your configuration...? YES。这块记不清了,不确定的网上搜一搜。
-
reboot
重启nvidia-smi
查看一下是否安装成功
安装cuda
sudo sh cuda_10.0.130_410.48_linux.run
安装选项accept no y y y y y环境设置
sudo vim ~/.bashrc
在最下面添加export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64 # 根据版本修改 export PATH=$PATH:/usr/local/cuda-10.0/bin
source ~/.bashrc
-
nvcc -V
查看cuda信息cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
出现
Result = PASS
则成功安装
另外,卸载cuda
cd /usr/local/cuda/bin
sudo ./uninstall_cuda_10.1.pl
安装cudnn
官网下载与cuda版本匹配的cudnn版本,我下的是cudnn-10.0-linux-x64-v7.6.0.64.tgz cuDNNv7.1.4 Library for linux
sudo tar -zxvf ./cudnn-9.0-linux-x64-v7.1.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 /usr/local/cuda/lib64/libcudnn*
贴出官方文档以备参考
查看cudnn
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
安装pytorch
直接上官网选择合适的版本,根据给的命令下载安装即可
还可以离线安装,下载地址:https://anaconda.org/pytorch/pytorch/files。
下载之后执行
conda install --offline pytorch-1.2.0 py3.7_cuda10.0.130_cudnn7.6.2_0.tar.bz2
安装docker
wget -qO- https://get.docker.com/ | sh
sudo usermod -aG docker xxx
xxx是用户名
newgrp docker
sudo service docker start
docker run hello-world
更多docker操作参考:RUNOOB
安装nvidia-docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install nvidia-docker2
sudo pkill -SIGHUP dockerd
docker安装maskrcnn-benchmark
项目地址:maskrcnn-benchmark
nvidia-docker build -t maskrcnn-benchmark --build-arg CUDA=10.0 --build-arg CUDNN=7 docker/
安装出错的原因是最新版本的torchvision不再支持pytorch1.2以下的版本,因此需要更改
docker/Dockerfile
中安装torchvision的命令为RUN git clone https://github.com/pytorch/vision.git \ && cd vision \ && git fetch && git fetch --tags && git checkout v0.3.0 \ # <=== add this line && python setup.py install
以上解决方法来源于issue#1056,不过后面官方应该会解决这个问题吧,就是不知道是什么时候。。
根据上面得到的maskrcnn-benchmark镜像创建容器
docker run -ti -v 主机映射目录:容器映射目录 --shm-size=64g --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all maskrcnn-benchmark
结语
哎呀,写一篇博文不容易啊,尤其还是这种教程形式的博文。以上基本就是我整个的安装的方法、过程。注意,以上方法在我这边的服务器上面均有效,并不敢保证在其他所有计算机上都有效。。这个博文还是记录的性质多一些,如果能给其他人以帮助那最好不过了。