ubuntu安装pytorch_深度学习环境搭建、配置及使用之二(上):深度学习必备基础环境安装...

关注“哪儿趣”,不定时更新,选择“星标”或“置顶”,

第一时间获取原创质量文章。

本文大约16000字,预计阅读时间40分钟。

f48ccdff54cd4d37f8d6106bb9d031ae.png

 本文链接 

  • Github:https://github.com/kangzhiheng/GitLocalDoc
  • 个人网站:https://kangzhiheng.top/post/10-服务器环境搭建、配置及使用

系列文章导读:本系列文章 《深度学习环境搭建、配置及使用》 主要介绍了自己使用服务器进行管理和科研的一点心得,即:如何搭建和配置深度学习环境,普通用户可以自由切换多版本CUDA、cuDNN版本,自由组合创建不同版本的Tensorflow、PyTorch等深度学习环境。

本文摘要:本文是系列文章《深度学习环境搭建、配置及使用》的第二部分的上半部分,主要介绍了Tensorflow、PyTorch等深度学习框架所必备的NVIDIA、CUDA、cuDNN环境的在CentOS 7.7中的配置(其它发行版以此类比),包括下载、安装、卸载、查看等操作。每一个链接都很准确,每一个步骤都很明确。

关键词:NVIDIA;CUDA;cuDNN;

本部分所有指令,建议在bash环境下运行,使用zsh的shell请切换为bash,避免不必要的麻烦。

注意:标题右上角带有"*"标记的,意为这一部分内容需要管理员操作。

显卡、NVIDIA驱动、CUDA、cuDNN和Tensorflow、Pytorch之间的对应关系

不同版本的Tensorflow和PyTorch环境对NVIDIA驱动、CUDA和cuDNN的有着不一样的需求。

系统能否检测到GPU:

lspci | grep -i nvidia

输出

04:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)04:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

GTX 1080为Tensorflow、PyTorch等框架提供GPU支持。

Tensorflow建议配置

数据来源于Tensorflow官方网站(https://www.tensorflow.org/install/source#linux),截止2020年4月11号,tensorflow-2.1.0GPU版本需要配合CUDA 10.1cuDNN 7.6配合使用。

9c4115c1ec5c6139eeac1a0d20b0493e.png
Tensorflow版本
PyTorch建议配置

数据来源于PyTorch官方网站(https://pytorch.org/get-started/previous-versions/),截止2020年4月11号,PyTorch 1.4版本需要配合CUDA 10.1CUDA9.2配合使用。

4649f15fe67c453f9a1ce5a7d1567fc3.png
PyTorch
NVIDIA驱动选型

在Linux系统下,NVIDIA驱动型号(https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html)根据需求来安装,CUDA10.2需求NVIDIA >= 440.33,所以NVIDIA驱动型号至少是440.33

1d0412457f3f92f69104aadf4cddbdac.png
CUDA版本与NVIDIA驱动之间的关系

NVIDIA驱动安装(CentOS、Ubuntu)*

通过前面的分析,目前Tensorflow 最新版本2.1.0需求CUDA 10.1,索性安装CUDA 10.2所需求的最低要求的NVIDIA版本440.33

另外NVIDIA驱动不要轻易更新,在CentOS下,尤其是不到万不得已的地步,千万千万不要运行 sudo yum update 指令!Ubuntu对应的指令是 sudo apt-get update

本小节主要介绍在CentOS 7.7系统下的驱动安装,顺便介绍在Ubuntu系统的驱动检索及安装方法。

NVIDIA驱动安装完成后,需要重启服务器使驱动生效。

关闭桌面服务

按住Alt + Ctrl + F1进入终端(F1到F6都行),输入账户密码获取root权限

sudo su

然后关闭桌面模式

sudo service lightdm stop

然后通过Ctrl + Alt + F7发现,已无法成功返回图形化模式,说明桌面服务已成功关闭,注意此步对接下来的 NVIDIA 显卡驱动安装尤为重要,必需确保桌面服务已关闭。

驱动安装完成后,按住Alt + Ctrl + F7可开启桌面模式。

系统检查

查看支持CUDA的GPU列表:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements,根据NVIDIA官方网站(https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions)建议,安装NVIDIA驱动和CUDA之前需要查看系统是否满足要求

  1.  验证系统是否具有支持CUDA的GPU
  2.  确认系统是受支持的Linux发行版本
  3.  验证系统是否有GCC编译环境
  4.  验证系统是否安装了正确的内核头文件和开发包

接下来需要一步一步进行检测。

  1.  验证系统是否具有支持CUDA的GPU
    lspci | grep -i nvidia

    输出

    04:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)04:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

    服务器上的显卡是GTX 1080,支持CUDA

  2.  确认系统是受支持的Linux发行版本

    CUDA开发工具仅在某些特定的Linux发行版上受支持,运行命令

    uname -m && cat /etc/*release

    输出信息

    x86_64CentOS Linux release 7.7.1908 (Core)NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"CentOS Linux release 7.7.1908 (Core)CentOS Linux release 7.7.1908 (Core)

    x86_64表示当前系统是64位系统,运行的Linux发行版是CentOS7.7版本。

  3.  验证系统是否有GCC编译环境
    gcc --version

    一般情况下都会有。

  4.  验证系统是否安装了正确的内核头文件和开发包

    运行以下命令找到系统正在运行的内核版本:

    uname -r

    当前运行的内核的头文件和开发包可以通过以下方式安装:

    sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
禁用第三方开源驱动nouveau

Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,不过没有得到NVIDIA的认可与支持。Nouveau让Linux更容易的应对各种复杂的NVIDIA显卡环境,让用户安装完系统即可进入桌面并且有不错的显示效果,所以,很多Linux发行版默认集成了Nouveau驱动。企业版的Linux更是如此,几乎所有支持图形界面的企业Linux发行版都将Nouveau收入其中。

不过对于个人桌面用户来说,处于成长阶段的Nouveau并不完美,与企业版不一样,个人用户除了想让正常显示图形界面外很多时候还需要一些3D特效,Nouveau多数时候并不能完成,而用户在安装NVIDIA官方私有驱动的时候Nouveau又成为了阻碍,如果不干掉Nouveau,NVIDIA驱动安装时总是报错。

c825f497b391ae69f7a70e9c1c55c3a4.png

NVIDIA驱动和nouveau驱动最好二选一,一般情况下,深度学习环境配置需禁用nouveau驱动,查看nouveau驱动信息:

lsmod | grep nouveau

若有输出,需要禁止该nvidia第三方驱动,若无,OK,Linux哲学之一:没有消息就是最好的消息。可忽略该步骤。

禁用nouveau驱动,需要配置相关文件

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

nvim,即NeoVIm,在生态和功能上比vim要领先一些,在CentOS系统下的nvim的安装命令为:

sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmsudo yum install -y neovim python3-neovim

没有安装nvim可以用vim来代替(sudo yum install vim)。

文件可能没有任何内容,在打开的文件中,进入Vim的插入模式(i键),写入命令:

blacklist nouveau  options nouveau modeset=0

按下Eac键进入普通模式,输入命令:wq保存并退出文件。

更新initramfs映像使禁用 nouveau 生效:

sudo update-initramfs -u

输入

lsmod | grep nouveau

若无输出,则表示禁用nouveau生效了。

当然也可以重启系统使禁用 nouveau 真正生效,但重启系统有可能会出现黑屏,原因是禁用了集成显卡,系统没有显卡驱动。

卸载原有驱动

查看当前系统驱动型号:

nvidia-smi

或者

ls /usr/src

或者

cat /proc/driver/nvidia/version

或者

lsmod | grep nvidia

总之,可以得知当前NVIDIA版本信息(就算使用了sudo yum update),使用上述四条命令之一也可以查到,如果真的真的忘记了,跳过这一步吧……

假设知道了目前的NVIDIA驱动型号,假设为390.77,去网站(https://download.nvidia.com/XFree86/Linux-x86_64/)上下载对应的驱动文件

73b80f35aed1de81ee42cec1a0f2e56b.png

类似于NVIDIA-Linux-x86_64-390.77.run这种文件,右键复制链接,使用wget工具下载

cd ~    // 回到主目录wget -c https://download.nvidia.com/XFree86/Linux-x86_64/390.77/NVIDIA-Linux-x86_64-390.77.run

然后运行命令进行卸载

sudo sh NVIDIA-Linux-x86_64-390.77.run --uninstall
NVIDIA官方驱动安装

确保已经关闭桌面服务。

NVIDIA驱动安装可有两种方法:离线安装和在线安装。离线安装就是在官网(https://www.nvidia.com/Download/index.aspx?lang=cn)下载对应的驱动,再进行安装,为了方便起见,采用在线的方法在CentOS 7.7系统进行安装。

添加 ELRepo 源:

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgsudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

查看显卡检测程序:

yum info nvidia-detect

如果安装,跳过下一步,否则

sudo yum install nvidia-detect

检测显卡型号,查看对应的驱动

nvidia-detect -v

输出

Probing for supported NVIDIA devices...[102b:0534] Matrox Electronics Systems Ltd. G200eR2[10de:1b80] NVIDIA Corporation GP104 [GeForce GTX 1080]This device requires the current 440.64 NVIDIA driver kmod-nvidia

系统告诉我们,显示型号是GTX 1080,对应的NVIDIA驱动型号应为440.64,大于440.33,满足要求,继续安装,否则去官网(https://www.nvidia.com/Download/index.aspx?lang=cn)下载对应的驱动手动离线安装。

输入命令进行安装:

sudo -i    // 获取root权限yum install kmod-nvidia    // 或者这条命令yum install nvidia-x11-drv

安装完成后,或者输出下面的信息,可能要重启系统……

软件包 nvidia-x11-drv-440.82-1.el7_8.elrepo.x86_64 已安装并且是最新版本

重启系统

sudo reboot

安装完成,输入

nvidia-smi

看看显卡信息。

  • 如果是Ubuntu系统,可使用下列方法进行安装
    sudo apt-get purge nvidia* // 卸载之前的NVIDIA驱动sudo add-apt-repository ppa:graphics-drivers/ppa // 添加源sudo apt-get updatesudo apt-get install nvidia-440 // 安装NVIDIA-440系列驱动

    或者

    sudo apt-get updatesudo ubuntu-drivers devices    // 或者运行apt-cache search nvidia*// 出现建议的NVIDIA驱动型号xxxsudo apt-get install nvidia-xxx

重启服务器

查看当前NVIDIA驱动版本

使用命令

nvidia-smi

或者

cat /proc/driver/nvidia/version

安装过程中可能会遇到比较多的问题,请耐心解决

开启桌面服务

NVIDIA驱动安装完成后,可开启桌面服务

sudo service lightdm stop

然后通过Ctrl + Alt + F7可返回图形化模式。

CUDA安装*

在此介绍CUDA-9.0、CUDA-9.1、CUDA-9.2、CUDA-10.0、CUDA-10.1、CUDA-10.2共6种CUDA文件的安装(截止2020年4月11号),基本涵盖了当前流行深度学习框架的需求。

需要注意的是,如果你是个人用户,就是自己在电脑上装了Linux系统进行深度学习环境的设置,可以详细阅读这一小节的内容,这一小节主要介绍的是一般情况下的CUDA配置,因为如果是自己的系统,可以随意更改CUDA的符号链接,但是在服务器上,大部分用户都是普通用户,无root权限,切换CUDA时很麻烦,不切换CUDA,深度学习环境的配置就比较受限,所以在服务器环境下,普通用户如何灵活切换CUDA和cuDNN版本呢?有两种方法:

  • 使用Environment Modules软件来管理CUDA;
  • 使用Anaconda来独立管理CUDA和cuDNN;

我建议采用Anaconda来管理,理由很简单:操作方便上手快。具体请参阅本系列文章的第三部分。下面介绍正常情况下的CUDA和cuDNN安装方法。

推荐下载.run的CUDA文件格式。

~/NVIDIA/CUDA目录下依次建立cuda-9.0cuda-9.1、cuda-9.2cuda-10.0cuda-10.1cuda-10.26个目录,目录下是对应CUDA版本的安装文件,文件的后缀名为.run,不管是基础版本还是补丁,安装方法都是一模一样的。

CUDA的安装,建议关闭桌面服务[17],通过Alt + Ctrl + F1进入终端。

CUDA文件下载

CUDA的官网下载链接为https://developer.nvidia.com/cuda-toolkit-archive,CUDA的下载不需要注册,cuDNN需要。以CUDA9.2下载为例,依次按图红色框框进行选择,需要注意的是图中的黑色框框,那个是当前CUDA版本的补丁,也要下载,安装方法与基础版本一致

da5f9174311cf56db341eedd90bb1dee.png
cuda9.2

正常方法是点击Download下载,下载后还要拖入到服务器种比较麻烦,在这里给出直接将文件下载到服务器的方法。

创建不同CUDA版本的目录

cd ~mkdir NVIDIAcd NVIDIAmkdir CUDAcd CUDAmkdir cuda-9.{0..2}     // 批量建立文件夹 cuda-9.0、cuda-9.1、cuda-9.2mkdir cuda-10.{0..2}    // 批量建立文件夹 cuda-10.0、cuda-10.1、cuda-10.2

然后依次在对应目录下下载各个版本的CUDA基础安装包及其补丁(时间截止到2020.04.11)

为了直观起见,使用比较基础的命令
下载CUDA 9.0
cd ~/NVIDIA/CUDA/cuda-9.0// 下载基础cuda9.0安装包wget -c https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run -O cuda_9.0.176_384.81_linux.run// 下载cuda9.0的4个补丁wget -c https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/1/cuda_9.0.176.1_linux-run -O cuda_9.0.176.1_linux.runwget -c https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/2/cuda_9.0.176.2_linux-run -O cuda_9.0.176.2_linux.runwget -c https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/3/cuda_9.0.176.3_linux-run -O cuda_9.0.176.3_linux.runwget -c https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/4/cuda_9.0.176.4_linux-run -O cuda_9.0.176.4_linux.run
下载CUDA 9.1
cd ~/NVIDIA/CUDA/cuda-9.1// 下载基础cuda9.1安装包wget -c https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux -O cuda_9.1.85_387.26_linux.run// 下载cuda9.1的3个补丁wget -c https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/1/cuda_9.1.85.1_linux -O cuda_9.1.85.1_linux.runwget -c https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/2/cuda_9.1.85.2_linux -O cuda_9.1.85.2_linux.runwget -c https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/3/cuda_9.1.85.3_linux -O cuda_9.1.85.3_linux.run
下载CUDA 9.2
cd ~/NVIDIA/CUDA/cuda-9.2// 下载基础cuda9.2安装包wget -c https://developer.nvidia.com/compute/cuda/9.2/Prod2/local_installers/cuda_9.2.148_396.37_linux -O cuda_9.2.148_396.37_linux.run// 下载cuda9.2的1个补丁wget -c https://developer.nvidia.com/compute/cuda/9.2/Prod2/patches/1/cuda_9.2.148.1_linux -O cuda_9.2.148.1_linux.run
下载CUDA 10.0
cd ~/NVIDIA/CUDA/cuda-10.0// 下载基础cuda10.0安装包wget -c https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux -O cuda_10.0.130_410.48_linux.run// 下载cuda10.0的1个补丁wget -c http://developer.download.nvidia.com/compute/cuda/10.0/Prod/patches/1/cuda_10.0.130.1_linux.run
下载CUDA 10.1 update2
cd ~/NVIDIA/CUDA/cuda-10.1// 下载基础cuda10.1安装包,无补丁wget -c http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
下载CUDA 10.2
cd ~/NVIDIA/CUDA/cuda-10.2// 下载基础cuda10.2安装包,无补丁wget -c http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
安装CUDA

cuda_9.1.85_387.26_linux.run文件为例说明怎么安装的,所有的文件都是一样的安装方法(CUDA 10.1以及后续版本,安装界面有所不一样,请仔细阅读)。

CUDA 10.0及其之前的版本的安装方法

CUDA默认安装位置:/usr/local

先建立一个名为CUDAInstall的tmux窗口,这是为了在安装的时候,防止终端出现紧急情况,影响安装,这个习惯可以让你减少不必要的损失,运行

tmux new -s CUDAInstall     sudo sh cuda_9.1.85_387.26_linux.run

如果遇到文件权限问题,可以赋予CUDA文件可执行权限:

sudo chmod a+x cuda_9.1.85_387.26_linux.run

运行CUDA安装文件后,紧接着在屏幕上出现了很长的说明,按住空格键至进度100%,然后按照下面的提示操作即可,需要注意的是,在提示

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?(y)es/(n)o/(q)uit:

意思是:安装NVIDIA驱动吗?输入n,NVIDIA驱动我们已单独安装。

安装过程中每一步的提示如下,请仔细阅读翻译,尤其是符号链接那部分:

-----------------// 接受之前阅读的说明吗?必须接受啊Do you accept the previously read EULA?accept/decline/quit: accept// 安装NVIDIA驱动吗?NVIDIA驱动我们单独安装Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?(y)es/(n)o/(q)uit: n// 安装CUDA9.1的工具集吗?安装Install the CUDA 9.1 Toolkit?(y)es/(n)o/(q)uit: y// CUDA的默认路径,按Enter键继续Enter Toolkit Location [ default is /usr/local/cuda-9.1 ]: // 要为CUDA9.1建立符号链接吗?如果该CUDA是你想默认的,输入y;// 如果不是但是以后想调用,输入n// 这个可以在安装之后修改Do you want to install a symbolic link at /usr/local/cuda?(y)es/(n)o/(q)uit:y// CUDA 9.1的示例,可以安装,方便测试Install the CUDA 9.1 Samples?(y)es/(n)o/(q)uit: y// CUDA 9.1的示例位置,默认即可,测试完成后可以删掉,按Enter键表示默认Enter CUDA Samples Location [ default is /home/unix ]:

然后开始安装,终端上会显示

Installing the CUDA Toolkit in /usr/local/cuda-9.1 ...

表示CUDA 9.1会被安装到目录/usr/local/cuda-9.1文件夹下,大约1分钟左右,终端显示

Installing the CUDA Samples in /home/unix ...Copying samples to /home/unix/NVIDIA_CUDA-9.1_Samples now...Finished copying samples.============ Summary ============Driver:   Not SelectedToolkit:  Installed in /usr/local/cuda-9.1Samples:  Installed in /home/unixPlease make sure that -   PATH includes /usr/local/cuda-9.1/bin -   LD_LIBRARY_PATH includes /usr/local/cuda-9.1/lib64, or, add /usr/local/cuda-9.1/lib64 to /etc/ld.so.conf and run ldconfig as rootTo uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.1/binPlease see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.1/doc/pdf for detailed information on setting up CUDA.***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.1 functionality to work.To install the driver using this installer, run the following command, replacing  with the name of this run file:    sudo .run -silent -driverLogfile is /tmp/cuda_install_89370.log

终端输出的内容非常清楚,包含了这么几个意思:

  • 关于NVIDIA驱动:NVIDIA驱动已经安装但是没有被检测出来,重启系统就好了;
  • 关于路径:CUDA 9.1被安装在/usr/local/cuda-9.1目录下
  • 关于卸载CUDA:CUDA的卸载脚本在/usr/local/cuda-9.1/bin里

    cd /usr/local/sudo ./cuda-9.1/bin/uninstall_cuda_9.1.pl

  • 安装CUDA的补丁包

大部分CUDA版本都有补丁包,补丁的安装比较容易,以CUDA 9.1的补丁1cuda_9.1.85.1_linux.run为例说明

sudo sh cuda_9.1.85.1_linux.run

屏幕上也会出现很长的说明,按住空格键至进度100%,出现了一些选项

-----------------Do you accept the previously read EULA?accept/decline/quit:  acceptEnter CUDA Toolkit installation directory [ default is /usr/local/cuda-9.1 ]:

安装位置默认就行,按住Enter后,秒安装

Installation complete!Installation directory: /usr/local/cuda-9.1

按照该方法,安装CUDA 9.1其它两个补丁包。

至此CUDA基础安装包及其补丁包的方法介绍完了,按照此方法,依次安装其它CUDA 9.0 ~ CUDA10.0版本的基础安装包及其补丁。

CUDA 10.1及其之后的版本的安装方法

从CUDA 10.1起,安装界面有所不同,比如安装CUDA 10.1版本cuda_10.1.243_418.87.00_linux.run

sudo sh cuda_10.1.243_418.87.00_linux.run

终端会出现一个框框

aa924fc341e3bdb3315e3b47cf714b8b.png

输入accept后,出现

b606447cc9bc81f35eeee02c10351a63.png
CUDA 10.1

注意,不要选择Driver如图所选,移动下键Install处,Enter一下立即安装,出现界面

60c27cd1f1287045a21f46291256f23d.png

选择No,安装过程中没有什么反应,耐心等待一会儿,终端打印出信息

============ Summary ============Driver:   Not SelectedToolkit:  Installed in /usr/local/cuda-10.1/Samples:  Installed in /home/unix/Please make sure that -   PATH includes /usr/local/cuda-10.1/bin -   LD_LIBRARY_PATH includes /usr/local/cuda-10.1/lib64, or, add /usr/local/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as rootTo uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-10.1/binPlease see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.1/doc/pdf for detailed information on setting up CUDA.***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 418.00 is required for CUDA 10.1 functionality to work.To install the driver using this installer, run the following command, replacing  with the name of this run file:    sudo .run --silent --driverLogfile is /var/log/cuda-installer.log

与之前的信息差不多,具体请看之前的描述。CUDA 10.2安装方法与CUDA 10.1类似。

卸载CUDA
  • CUDA 10.0及其之前版本

    以CUDA 9.1为例,CUDA 9.1的卸载脚本在/usr/local/cuda-9.1/bin里

    cd /usr/local/sudo ./cuda-9.1/bin/uninstall_cuda_9.1.pl
  • CUDA 10.1及其之后的版本

    卸载CUDA 10.1和10.2有所不同,需要运行

    cd /usr/local/sudo ./cuda-10.1/bin/cuda-uninstaller
查看当前CUDA版本的符号链接

查看当前cuda对应的版本(符号链接)

cd /usr/localstat cuda

输出

  文件:"cuda" -> "/usr/local/cuda-9.0"  大小:19         块:0          IO 块:4096   符号链接设备:fd00h/64768d Inode:20341519    硬链接:1权限:(0777/lrwxrwxrwx)  Uid:(    0/    root)   Gid:(    0/    root)环境:unconfined_u:object_r:usr_t:s0最近访问:2020-04-10 14:43:19.316455577 +0800最近更改:2019-09-26 22:20:21.054175738 +0800最近改动:2019-09-26 22:20:21.054175738 +0800创建时间:-

之前为cuda-9.0建立了符号链接,所以cuda指向cuda-9.0,因为系统是根据这个符号链接来识别当前cuda版本,所以更改其指向即可切换cuda版本。

CUDA环境变量配置

建议在bash环境下运行,运行

bash

进入bash shell。

为了管理方便,管理员可以在文件/etc/profile里全局配置CUDA环境变量,如果是个人Linux系统或者普通用户,在文件~/.bashrc下配置CUDA环境变量。

  • 全局添加CUDA环境变量(管理员操作)这种修改方式使CUDA配置应用到每位普通用户的shell里

    打开全局环境变量

    sudo nvim /etc/profile    // 为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.

    然后在打开的文件里的末尾新增四条命令,具体操作是:按住大写G键跳转到文本的最后一行行首,再按住$跳转到最后一行的最后一个字符,按住i键进入插入模式,使光标右移一个字符,再回车换行后,添加以下变量

    # CUDA# cuda -> cuda9.1export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}# include -> targets/x86_64-linux/includeexport CPATH=/usr/local/cuda/include:$CPATH # lib64 -> targets/x86_64-linux/libexport LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64 # lib64 -> targets/x86_64-linux/lib# export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

    更新配置,使配置文件生效:

    source /etc/profile
  • 普通用户添加CUDA环境变量

    只对当前shell有效

    nvim ~/.bashrc

    同样的操作,在文件末尾新增四条命令

    # CUDA# cuda -> cuda9.1export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}# include -> targets/x86_64-linux/includeexport CPATH=/usr/local/cuda/include:$CPATH # lib64 -> targets/x86_64-linux/libexport LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64 # lib64 -> targets/x86_64-linux/lib# export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

    更新文件

    source ~/.bashrc
验证CUDA安装

在安装CUDA时,比如在安装CUDA 9.1时,有这么一句提示

// CUDA 9.1的示例,可以安装,方便测试Install the CUDA 9.1 Samples?(y)es/(n)o/(q)uit: y// CUDA 9.1的示例位置,默认即可,测试完成后可以删掉,按Enter键表示默认Enter CUDA Samples Location [ default is /home/unix ]:

为了验证CUDA 9.1是否被安装完成,选择安装示例,默认的安装位置是根目录,进入根目录

cd ~cd NVIDIA_CUDA-9.1_Samples/1_Utilities/deviceQuery    // 选择其中一个示例进行测试make./deviceQuery

如果成功,会显示Result = PASS,否则根据错误提示解决问题。

查看CUDA当前版本
nvcc --version

或者

cat /usr/local/cuda/version.txt

如果是在终端命令行下安装的CUDA,则需要安装成功后开启桌面服务:

sudo service lightdm start

然后再按通过Ctrl + Alt + F7可返回桌面模式。

cuDNN安装*

首先在NVIDIA官网下的cuDNN界面(https://developer.nvidia.com/rdp/cuDNN-archive)进行注册,然后才能选择对应版本的cuDNN进行下载。以cuDNN7.0.5为例进行说明,其它版本与此类似。

按照官方指导教程(https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installlinux)进行cuDNN配置。

cuDNN文件下载

首先确定要下载的cuDNN版本,仔细看清楚其对应的CUDA版本,以cuDNN对应的CUDA 9.0为例,推荐下载cuDNN v7.0.5 Library for Linux类似的压缩包。

cfb4aa84e338e243fb4547c66b565979.png

下载完成后,文件为cudnn-9.0-linux-x64-v7.solitairetheme8,这其实是一个压缩包,解压方法与.tgz格式的文件一致。建立cuDNN文件夹,

mkdir ~/NVIDIA/cuDNN

使用FileZilla、Xftp等文件传输工具,将其拖入到服务器中里的NVIDIA文件夹下的cuDNN文件夹下。

cuDNN文件解压

解压cudnn-9.0-linux-x64-v7.solitairetheme8

tar -xzvf cudnn-9.0-linux-x64-v7.solitairetheme8

解压后的文件都在名为cuda的文件夹下,如图

467fe44f70a8aa3b04635a0a642e48f4.png

cudnn-9.0-linux-x64-v7.solitairetheme8的文件组成如下

32d53dae73ddde18db111101750ba403.png

查看linudnn.solibcudnn.so.7libcudnn.so.7.0.5的关系

ll ~/NVIDIA/cuDNN/cuda/lib64

输出

26286a35cd9c5025b8c807dbcbde2751.png

说明linudnn.solibcudnn.so.7libcudnn.so.7.0.5其实是同一个文件的不同扩展名。

cuDNN配置

cuDNN解压文件在~/NVIDIA/cuDNN/cuda

# 复制头文件cd ~/NVIDIA/cuDNN/sudo cp cuda/include/cudnn.h /usr/local/cuda/include # 复制动态链接库cd ~/NVIDIA/cuDNN/sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

配置权限,使所有用户具有可读权限

sudo chmod a+r /usr/local/cuda/include/cudnn.hsudo chmod a+r /usr/local/cuda/lib64/libcudnn*
查看cuDNN版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

总结

这一部分详细介绍了NVIDIA驱动、CUDA、cuDNN的详细配置,包括每一套软件的下载、安装及校验。这一部分的坑很多,不同机器下可能会出现不同的问题,本篇文章仅作为参考,如果遇到问题,还请仔细阅读错误信息,利用Google、Stack Overflow等工具一一排除。

本系列第二部分的下半部分即将推出,届时详细介绍Anaconda、Pip、Opencv、GCC多版本切换等环境的配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值