Ubuntu16.04+2080ti+cuda10.0环境配置

建议:装环境之前,先把自己安装的版本弄清楚,后面出现版本不匹配的问题再重装就会比较烦。

注意tensorflow-gpu-2.0有几处代码改动,在跑faster-rcnn的时候有点问题,所以后面需要把tensorflow-gpu版本改成1.1+的。

我这里的环境是:

Ubuntu16.04+2080ti+Display Driver430.50+cuda10.0+cudnn7+Anaconda(python3.6)+tensorflow-gpu-1.13.1

1. 显卡驱动: 版本430.50,有不同的安装格式,这里我下的是runfile。

安装显卡驱动步骤:

(1)lsmod |grep nouveau,查看到源生的驱动在。如果有就是会出现红色的nouveau,没有就什么都没有。

(2)如果有原生的驱动在,需要禁用自带的 nouveau nvidia驱动 (important!)

-->创建一个文件通过命令 sudo vim /etc/modprobe.d/blacklist-nouveau.conf

--> 按一下 i 进入编辑状态,并添加如下内容:

blacklist nouveau

options nouveau modeset=0

编辑完了:esc--> :-->wq! (保存并退出)

-->再更新一下

sudo update-initramfs -u

-->修改后需要重启系统。确认下Nouveau是已经被你干掉,使用命令: lsmod | grep nouveau

(3)禁掉lightdm桌面管理器,安装驱动(secure boot disabled)

sudo /etc/init.d/lightdm stop

接下来会变黑好像什么都没有,这时候ctrl+alt+f1(命令行出来了)

(4)然后找到你放run文件的文件夹下:

sudo sh ./NVIDIA-Linux-x86_64-375.20.run –no-opengl-files(这个参数不知道什么用,别人说有用我就加了)

(5)然后这样:sudo /etc/init.d/lightdm start,就可以进入正常的界面了。

安装好了可以查看显卡驱动版本:cat /proc/driver/nvidia/version

2. 安装CUDA10.0

2080ti 似乎和cuda9有问题,再装了cudnn之后跑cudnn_samples报错,后面改成了cuda10之后就成功了。

1)下载cuda:https://developer.nvidia.com/cuda-toolkit-archive , 我用的是10.0.

cuda安装参考: https://zhuanlan.zhihu.com/p/47330858

2)安装之前验证一下电脑是否已经插上了支持CUDA的GPU,用win+alt+t调出终端,然后输入:

lspci | grep -i nvidia

如果显示出你的NVIDIA GPU版本信息应该就没问题。

3)验证系统是否安装了gcc,在终端中输入:

gcc --version 

如果装了结果会显示类似信息:

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0

如果没有就自行安装。sudo apt-get  install  build-essential  (Ubuntu默认gcc5.4)

4)验证系统是否安装了kernel header和 package development

a、查看正在运行的系统内核版本:
在终端中输入:

uname --r
结果显示类似就可以:4.10.0-40-generic

b、在终端中输入:

sudo apt-get install linux-headers-$(uname --r)
以安装对应kernel版本的kernel header和package development

结果如果显示:

升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 4 个软件包未被升级。

则表示系统里已经有了,不用重复安装。

5)禁用 nouveau驱动
终端中运行:

lsmod | grep nouveau

如果有输出则代表nouveau正在加载。需要我们手动禁掉nouveau。

以下是Ubuntu的nouveau禁用方法:
a、我们需要在电脑根目录的/etc/modprobe.d文件夹中创建文件blacklist-nouveau.conf

先用apt-get安装vim编辑器,然后

这需要输入命令:

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

此时会出现一个窗口 (我们利用vi编辑器的指令来编辑和保存文件)

按键盘上的insert键进入输入模式,然后在文件中输入以下两行内容:

blacklist nouveau

options nouveau modeset=0

然后按ESC键退出编辑模式,在键盘上摁下“ :wq ”这三个键再回车,就保存并退出了。

b、然后在终端输入执行:

sudo update-initramfs -u

之后重启电脑
c、重启后在终端执行:

lsmod | grep nouveau

或者

lspci | grep -i nouveau


若终端无内容输出了,则禁用成功,若仍有内容输出,请检查上述操作,可以百度一下寻求解决。

注:vi是Linux终端下或控制台下常用的编辑器,要用vi打开一个文件,就输入:

vi /路径/文件名    (例如:终端输入 vi /etc/fstab 就会显示/etc/fstab文件里的内容)

基本操作:

  • 使用键盘上的Page Up和Page Down键可以上下翻页;
  • 按下Insert键,可以见到窗口左下角有“Insert”字样,表示当前为插入编辑状态,这时从键盘输入的内容将插入到光标位置;
  • 再按下Insert键,左下角将有“Replace”字样,表示当前为替换编辑状态,这时从键盘输入的内容将替换光标位置的内容。
  • 编辑完内容后,按下Esc键,并输入“:wq”,然后回车就可以保存退出。
  • 如果不想保存而直接退出,则按下Esc键后,输入“:q!”,然后回车即可。“wq”表示Write和Quit,即保存退出;“q!”表示忽略修改强行退出。

6)重启电脑,进入登录界面的时候,不要登录进入桌面(否则可能会失败,若不小心进入,请重启电脑),直接按Ctrl+Alt+F1进入文本模式(命令行界面),然后登录账户。

登陆后输入:sudo service lightdm stop

以此来关闭图形化界面,然后切换到cuda安装文件的路径:例如我的cuda在下载文件夹里所以我要输入:

 cd Downloads

然后输入(根据cuda版本不同自行修改):sudo sh cuda_10.0.130_410.48_linux.run

开始安装,按提示一步步操作,按住回车看完声明。按照提示输入相应字符,例如有的需要输入accept,有的需要输入yes。

注意:(1)遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU在工作,需要选择no),其他都选择yes或者默认即可。(如果您的电脑是双显卡且在这一步选择了yes,那么你极有可能安装完CUDA之后,重启图形化界面后遇到登录界面循环问题:输入密码后又跳回密码输入界面。这是因为你的电脑是双显,而且用来显示的那块GPU不是NVIDIA,则OpenGL Libraries就不应该安装,否则你正在使用的那块GPU(非NVIDIA的GPU)的OpenGL Libraries会被覆盖,然后GUI就无法工作了。(2)要不要再装driver,记得选No。(3)另外cuda samples我也没有装。

安装成功后,会显示installed,否则会显示failed。

7)重新启动图形化界面,输入 :

sudo service lightdm start

如果没反应,需要同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。

如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。

8)重启电脑,检查Device Node Verification。

执行 ls /dev/nvidia*        可能出现a、b两种结果,请对号入座。

a、若结果显示

/dev/nvidia0      /dev/nvidiactl      /dev/nvidia-uvm

------------------------这部分我没有出现-------------------------------------------------------------------

或显示出类似的信息,应该有三个(包含一个类似/dev/nvidia-nvm的),则安装成功。

b、大多数结果可能会是这样

ls: cannot access/dev/nvidia*: No such file or directory

或是这样的,只出现 /dev/nvidia0     /dev/nvidiactl

但没有/dev/nvidia-num,即文件显示不全。

我的解决方法参考了一篇博客,找到文件夹

/usr/local/cuda/samples/1_Utilities/deviceQuery,进去以后有个deviceQuery.cpp, make一下(在文件夹启动终端,输入sudo make),然后

./deviceQuery

这样你再查看

ls -la /dev | grep nvidia

就会发现有三个啦。

-----------------------------------------------------------------------------------------------------------------

8)设置环境变量
终端中输入:

sudo gedit /etc/profile

在打开的文件末尾,复制添加以下两行:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(这是64位系统的,32位系统自行百度)

保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。

到这里安装应该就成功了,后面是一些验证的工作,其实一般不用验证。

9)重启电脑,然后检查上述的环境变量是否设置成功

a、 验证驱动版本
敲入:cat /proc/driver/nvidia/version

结果显示
NVRM version: NVIDIA UNIX x86_64 Kernel Module 420
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

b、 验证CUDA Toolkit
敲入:nvcc -V

会输出CUDA的版本信息。
如果是这样的:
The program 'nvcc' is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
可能是环境配置没有成功,请重复上述步骤8。

最后查看cuda版本:cat /usr/local/cuda/version.txt

3. 安装CUDNN

参考官网步骤:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/

  1. Navigate to your <cudnnpath> directory containing cuDNN Debian file.
  2. Install the runtime library, for example:
    sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
  3. Install the developer library, for example:
    sudo dpkg -i libcudnn7-devel_7.0.3.11-1+cuda9.0_amd64.deb
  4. Install the code samples and the cuDNN Library User Guide, for example:
    sudo dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb

验证前注意重启,如果装cuda9,验证的时候会出错Cublas failure,换成cuda10就好了。

4. Anaconda-python3.6

5. Tensorflow-gpu 1.13.1

pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

6. 关于gcc版本:

切换gcc版本参考: https://www.cnblogs.com/uestc-mm/p/7511063.html

改变优先级: sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 100  (100代表优先级)

选择可选版本:sudo update-alternatives --config gcc

查看当前gcc版本:gcc --version

最后附上一个版本对应:

 

猜你喜欢

转载自blog.csdn.net/summermaoz/article/details/102767889