ubuntu16安装cuda9.0 + cudnn7.5.1 + python3.6 配置mmdetection项目
1.降级内核
1.1 安装新内核
由于最新ubuntu系统的内核等级过高,安装低版本驱动会失败,所以要将系统内核版本降低。
安装4.4.0-98版本内核。
sudo apt-get install linux-headers-4.4.0-98-generic
linux-image-4.4.0-98-generic
linux-image-extra-4.4.0-98-generic
1.2更新grub
编辑/etc/default/grub
sudo vi /etc/default/grub
使用方向键移动到
GRUB_HIDDEN_TIMEOUT=0
按 i 键 进入编辑模式 在前面加入# 注释该行,开机时会出现高级选项
#GRUB_HIDDEN_TIMEOUT=0
Esc键退出编辑 :w 保存 :q 退出
更新引导
sudo update-grub
如果当前驱动版本过高,重启后可能会出现重复登录的情况。可以提前把要安装的显卡驱动下载好,以备安装。
重启计算机,进入高级选项,选择新安装的内核。
sudo reboot
如果重复登录,CTRL+ALT+F1进入命令行模式登录。
1.3卸载旧内核
查看当前内核
uname -r
查看所有内核
$ dpkg --get-selections| grep linux
卸载多余内核
sudo apt remove linux-headers-4.15.0-43-generic linux-modules-4.15.0-43-generic linux-modules-extra-4.15.0-43-generic linux-image-4.15.0-43-generic
将/etc/default/grub修改回原始状态。
2.安装驱动
2.1从官网下载驱动
由于384.81不支持1080ti,所以下载的是384.98
2.2安装驱动
首先卸载原有驱动
sudo apt-get remove --purge nvidia-*
sudo apt-get autoremove
禁用nouveau驱动
sudo gedit /etc/modprobe.d/blacklist.conf
在blacklist.conf文本最后添加:(禁用nouveau第三方驱动,之后也不需要改回来)
blacklist nouveau
options nouveau modeset=0
执行更新
sudo update-initramfs -u
禁用X服务
sudo service lightdm stop
文件授权
sudo chmod +x NVIDIA-Linux-x86_64-384.98.run
安装驱动
sudo ./NVIDIA-Linux-x86_64-384.98.run –no-x-check -no-nouveau-check -no-opengl-files
–no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。
–no-x-check:表示安装驱动时不检查X服务,非必需。
–no-nouveau-check:表示安装驱动时不检查nouveau,非必需。
我安装时使用
sudo sh NVIDIA-Linux-x86_64-384.98.run
并没有出现选择OpenGL的选项。
都是选择左侧选项。
2.3测试安装成功
nvidia-smi
列出GPU的信息列表,表示驱动安装成功
3.安装cuda
参考https://blog.csdn.net/yinhuier/article/details/90600560
3.1下载cuda
网址:最新版 https://developer.nvidia.com/cuda-downloads
我选择安装的为9.0版本,链接:https://developer.nvidia.com/cuda-90-download-archive
3.2安装cuda
执行安装命令
$ sudo sh cuda_9.0.176_384.81_linux.run
下第二个询问你是不是要安装driver,一定要选n,因为我们已经安装了 驱动
查看环境变量
$ env
如果没有相关变量
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
3.3测试安装成功
$ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery
4.安装cudnn
参考https://blog.csdn.net/dudu815110/article/details/88592558
4.1下载cudnn
在官网https://developer.nvidia.com/rdp/cudnn-download下载 对应CUDA版本的cudnn压缩包
由于后面安装torch和torchvison时有版本要求所以我安装的v7.5.1
在此我使用的deb的安装包
4.2安装cudnn
sudo dpkg -i libcudnn7_7.5.1.10-1+cuda9.0_amd64.deb sudo dpkg -i libcudnn7-dev_7.5.1.10-1+cuda9.0_amd64.deb sudo dpkg -i libcudnn7-doc_7.5.1.10-1+cuda9.0_amd64.deb
4.3测试安装成功
cp -r /usr/src/cudnn_samples_v7/ $HOME cd $HOME/cudnn_samples_v7/mnistCUDNN make clean && make ./mnistCUDNN
安装成功则会出现 Test passed!
5.conda创建环境
5.1创建环境
在此我使用的python3.6版本
conda create -n open-mmlab python=3.6 -y
conda activate open-mmlab
5.2安装pytorch torchvision
进入https://pytorch.org/get-started/previous-versions/,选择合适的版本
6.运行mmdetection
6.1配置mmdetection环境
克隆项目
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
运行安装文件
python setup.py develop
如果出现 找不到setuptools.wheel ,需要重新安装setuptools 不能用conda卸载安装,因为会影响到torch和torchvision
pip uninstall setuptools
pip install setuptools
如果出现无法找lib.os 错误,说明cuda获取cudnn没有装好或者和torch,torchvison版本不匹配需要重新安装。
如果出现找不到cuda,可能是由于版本问题,也可能是(不知道有没有用,改一改,试一试)
安装 mmcv
pip install -v -e .
6.2运行项目
python tools/train.py configs/guided_anchoring/ga_faster_x101_32x4d_fpn_1x.py