win10+ubuntu16.04双系统+cuda+cudnn+tensorRT深度学习环境


装一个双系统各种坑。。。。。
在这里简单记录一下。
硬件环境
cpu:i7-7700k
gpu:1080Ti

一,首先下载ubuntu16.04.3。

附各版本下载地址
选择 ubuntu-16.04.3-desktop-amd64.iso 2017-08-01 11:51 1.5G

之所以选择ubuntu16.04版本是综合考虑了cuda,cudnn,tensorRT的安装环境。
cuda支持更高的环境,但是cudnn,tensorRT最高只支持ubuntu16.04。ubuntu16.04.1-.5最主要的区别就是内核版本不同。从最初的4.4.0一直升级为4.15.0。内核版本的不同意味着有些软件无法兼容。

官方指南上标注了cuda在不同操作系统所需要的内核版本。亲测内核版本4.4.0至4.10.0可以安装NVIDIA显卡以及cuda。本次选择ubuntu16.04.3之后所遇到的问题最少。

二,分区

使用DiskGenius软件将win的一个区分区,预留下几十G空间。最好将系统放于固态中。例如100G固态,分成两个区,第一个区用于win访问,第二个区删掉。留下空白空间。

三,制作启动盘

使用UltraISO读取下载好的ISO文件。写入U盘中。

四,安装系统

ubuntu低版本对于高配显卡支持性较差。所有点击install后可能遇到黑屏情况。重启选择install 点击e进入编辑grub。

修改
quiet splash ---
为
nomodeset quiet splash

点击F10等待几秒后即可进入界面。

  1. 系统安装需要注意的是一定要选自定义分区。把拆分出来的磁盘设为 /
  2. 引导选择efi区。通常较新电脑win的引导方式即为UEFI。引导文件在efi分区中。 ubuntu的引导方式同样选择efi分区即可。
  3. 重启后默认进入ubuntu。win还可以从引导方式进。之后安装refind可提供选择界面。 安装时可能由于分辨率的问题不能点住继续安装。使用Alt+鼠标左键可以拖动窗口。

五,重启进系统

重启选择ubuntu 高级选项。
选择Ubuntu,Linux 4.10.0-28-generic。
点击e。
找到

quiet splash

修改为

nomodeset quiet splash

点击F10等待几秒后即可进入界面。

六,修改kernel内核

首先执行

uname -r

显示4.10.0-28-generic即为正确。
显示4.25.0-33-generic需要重启。
首先为了之后不必要反复添加nomodeset语句。
修改grub:
执行

 sudo gedit /etc/default/grub

修改

GRUB_CMDLINE_LINUX_DEFAULT=" quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet splash"

保存后退出。
执行

sudo update-grub

查看Linux中安装了哪些内核:

dpkg --get-selections | grep linux

删除高版本内核文件:

sudo apt-get purge linux-image-4.15.0-33-generic

重启后选择第一个默认grub。

执行uname -r

输出4.10.0-28-generic

内核修改成功

七,卸载nouveau

nouveau的存在会导致nvidia显卡驱动安装失败,需要禁用。
执行

lsmod | grep nouveau

出现信息即表示有nouveau在运行。

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

写入:

blacklist nouveau
options nouveau modeset=0

并保存。

cd /lib/modules/4.10.0-28-generic/kernel/drivers/gpu/drm/nouveau

ls会出现nouveau.ko
删除nouveau.ko:

sudo rm nouveau.ko

ls空的话即为删除成功。
执行

sudo update-initramfs -u

会出现update-initramfs: Generating /boot/initrd.img-4.10.0-28-generic
重启后执行lsmod | grep nouveau无信息即可。

八,安装cuda(包含显卡驱动)

网上会有一些人先安装显卡驱动再安装cuda。
但是cuda安装包中包含显卡驱动,并且不会导致兼容问题。所以在安装cuda时安装显卡驱动。
cuda到目前为止最新版本为9.2。但是我们仍然选择9.0。因为tensorflow-gpu目前最高只支持cuda-9.0。参考tensorflow官网
GPU drivers. CUDA 9.0 requires 384.x or higher.
CUDA Toolkit 9.0.
cuDNN SDK (>= 7.0). Version 7.1 is recommended.

首先进入bios关闭安全启动。

下载cuda安装包
下载所有.run安装包。到目前为止除了一个安装包外还有4个补充包。
将下载好的安装包放入Home中。点开文件管理器可以看到Home。
Home的绝对路径为/home/user/。
之后Ctrl+Alt+F1进入控制台界面。
输入用户名和密码后
执行

sudo service lightdm stop

关闭图形化界面。开启会导致显卡驱动安装失败。
ls后可以看到cuda_9.0.176.1_linux.run
执行

sudo ./cuda_9.0.176.1_linux.run

空格观看责任书
一切默认选项。
安装成功后

sudo service lightdm start

可以看到分辨率得到改善。
显卡驱动以及cuda安装成功。
根据提示:

Please make sure that
 -   PATH includes /usr/local/cuda-9.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin
To uninstall the NVIDIA Driver, run nvidia-uninstall

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.

需要将cuda安装路径加入环境变量。
执行:

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda

运行

nvcc -V

输出

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

则安装成功
因为重启后export执行的命令实习
将命令需写入开机执行文件

sudo gedit /etc/profile

添加

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda

保存退出
出现安装失败可以在提示位置查看原因。
目前主要遇到的是

  1. nouveau未禁用。
  2. 图形化界面未关闭。
  3. ubuntu kernel(内核)版本不兼容。通常到现在为止都是ubuntu版本较高。
  4. 安全启动未关闭

之后可以在图形界面下继续安装 cuda_9.0.176.1_linux.run cuda_9.0.176.2_linux.run cuda_9.0.176.3_linux.run cuda_9.0.176.4_linux.run

九,安装cudnn

下载地址
在登录,同意License后,有一个下载界面,为目前最新版本7.2。不选这个,点击
Archived cuDNN Releases
选择
Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0
下载
cuDNN v7.1.4 Runtime Library for Ubuntu16.04 (Deb)
cuDNN v7.1.4 Developer Library for Ubuntu16.04 (Deb)
cuDNN v7.1.4 Code Samples and User Guide for Ubuntu16.04 (Deb)

下载之后为.deb文件
通过执行

sudo dpkg -i  libcudnn7_7.1.4.18-1+cuda9.0_amd64.deb
sudo dpkg -i  libcudnn7-dev_7.1.4.18-1+cuda9.0_amd64.deb
sudo dpkg -i  libcudnn7-doc_7.1.4.18-1+cuda9.0_amd64.deb

安装cudnn完成。

十,安装tensorRT

tensorRT的下载地址
同样需要登录
选择TensorRT 4x
再选择
TensorRT 4.0.1.6 for Ubuntu 1604 and CUDA 9.0 DEB local repo packages
通过执行

sudo apt-key add /var/nv-tensorrt-repo-cuda9.0-ga-trt4.0.1.6-20180612/7fa2af80.pub
sudo dpkg -i nv-tensorrt-repo-ubuntu1604-cuda9.0-ga-trt4.0.1.6-20180612_1-1_amd64.deb

完成安装

十一,安装anaconda(python环境)

清华源下载miniconda3
通过执行

 ./Miniconda3-latest-Linux-x86_64.sh

完成安装
其中
一切yes
只有Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
选择no
当然yes也没问题Microsoft VSCode是一个各种语言的ide。只是习惯使用pycharm了。
安装完成后需要执行

source ~/.bashrc

才能使anaconda的环境变量生效。(当然重启后即生效)
同时将增加conda清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

增加pip清华源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

十二,安装pycharm编辑器

官方下载
一般社区办就可以
专业版需要付费,当然网上各种方法破解。
随意选择。
在/bin/下直接执行./pycharm.sh就可以运行了。
但是为了更方便,可以创建快捷方式。参考博客

sudo gedit /usr/share/applications/Pycharm.desktop

添加

[Desktop Entry]
Type=Application
Name=Pycharm
GenericName=Pycharm3
Comment=Pycharm3:The Python IDE
Exec=sh /home/arron/pycharm-community-2018.2.2/bin/pycharm.sh
Icon=/home/arron/pycharm-community-2018.2.2/bin/pycharm.png
Terminal=pycharm
Categories=Pycharm

搜索pycharm
固定到任务栏中即可。

十三,修改firfox浏览器为中文

由于ubuntu版本较低,firfox是英文的。
修改为中文
关闭浏览器
执行

sudo apt-get remove firefox
sudo apt-get install firefox
sudo apt-get install firefox-locale-zh-hans

十四,安装tensorflow

执行

pip --version

确认为ananconda版本
执行

pip install tensorflow-gpu

执行

pip install h5py==2.8.0rc1

避免 future warning

十五,安装refind

refind 可以在开机时提供图形化系统选择界面
参考文章安装.

总结

摸索了几个月, 参考了若干文章终于最终完成.主要就是显卡的问题, 等以后见到了企业级GPU安装再研究研究.

猜你喜欢

转载自blog.csdn.net/qq_26737815/article/details/86505618