ubuntn系统下cuda+cudnn安装教程

        在离开之际,将自己的电脑系统重新升级了下,在此做如下记录,以便后续查证。

1、双系统安装

   这里只是简单说下,win10+Ubuntu,这次采用的Ubuntu分区是“boot”+“swap”+“/”的形式,具体可以去参考另一篇博客

2、显卡驱动安装

    在ubuntn系统下,首先通过如下指令查看显卡信息,

lspci |grep -i nvidia

###卸载原来的驱动
sudo apt-get purge nvidia*
 sudo apt-get remove nvidia-* 
sudo apt-get autoremove
sudo reboot

而Ubuntu下安装NVIDIA驱动的三种方法:

  • 使用标准Ubuntu仓库进行自动安装
  • 使用PPA仓库进行自动化安装
  • 使用官方的NVIDIA驱动进行手动安装

其中第一种方法操作简单方便,第三种方法是最稳定,最常用的,可以根据自己需要进行选择。因为我是在物理机上直接安装(有桌面可视化),这里采用的是第一种方法,如下

sudo ubuntu-drivers devices
 
sudo ubuntu-drivers autoinstall   ###完成后重启 就可完成安装NVIDIA驱动

或者通过如下可视化操作,

选择驱动后点击应用更改然后重启,若详细信息中出现的是显卡信息,就表示驱动安装成功。

如果想采用第三种方式的话,需要先去官网下载对应的驱动NVIDIA 驱动程序下载,过程中如果需要禁用Nouveau驱动(自带默认的),可以将其写入黑名单,如下

sudo gedit /etc/modprobe.d/blacklist.conf
或者
sudo vim /etc/modprobe.d/blacklist.conf
 
在最后两行添加:
 
blacklist nouveau
options nouveau modeset=0     // 禁用nouveau第三方驱动,之后也不需要改回来
 
执行
 
sudo update -initramfs -u   // 更新内核

接下来就是按照步骤一步步来,具体可参考Ubuntu下安装NVIDIA驱动的三种方法_狂浪生-CSDN博客

若是以run文件的形式安装可以参考《Ubuntu16.04系统run方式安装nvidia显卡驱动》,然后具体操作如下,

####给驱动run文件赋予执行权限:
sudo chmod  a+x NVIDIA-Linux-x86_64-396.18.run


###具体安装:
sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files //只有禁用opengl这样安装才不会出现循环登陆的问题

##其中
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件

 

##安装过程中的选项:
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?  选择 No 继续。
问题没记住,选项是:install without signing
问题大概是:Nvidia's 32-bit compatibility libraries? 选择 No 继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.  选择 Yes  继续

这些选项如果选择错误可能会导致安装失败,没关系,只要前面不出错,多尝试几次就好。

驱动安装成功后,可以通过下面指令进行查看

####下面两选一,或者直接nvidia-smi查看
cat /proc/driver/nvidia/version  

sudo dpkg --list | grep nvidia-*  

安装驱动需要注意和后面安装cuda与cudnn匹配,详情可查看Release Notes :: CUDA Toolkit Documentation

      

3、cuda安装

下面以cuda9.0+cudnn7.5为例进行说明,后续可以根据自己的选择进行不同适配安装。

(1)下载安装文件

检查自己的电脑配置是否支持cuda加速(一般英伟达系列显卡支持),这里推荐直接去https://developer.nvidia.com/cuda-gpus 

查看。然后再根据自己电脑情况下载cuda安装包

按照系统配置选择安装包,据说用deb文件安装容易出错,所以直接下载runfile(后缀为.run)文件来安装,例如安装cuda9.0,且操作系统为Ubuntu16.04,按照下图选择安装包:

等待一会,下载成功后会在路径下看到.run文件。

(2)安装cuda

在下载cuda的路径下,看到如下文件,然后打开终端运行

sudo sh cuda_9.0.176_384.81_linux.run

然后就会看到一大堆的描述信息,一直按回车直到服务条款显示到100%。接着按下面的步骤选择:

accept

n(不要安装driver)

y

y

y

;

y

(可以更具自己的需求进行调整)安装完成后,设置环境变量(可以自己来添加或者安装时添加到环境变量选择yes)。

一般bashrc文件在/home目录下,但是是一个隐藏文件,在文件管理器里面按Ctrl+H即可显示(显示为.bashrc,前面小点儿表示隐藏文件)。也可以直接利用terminal直接打开

sudo gedit ~/.bashrc

然后在末尾添加上

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

终端运行:source ~/.bashrc

检查:nvcc --version,如果显示如下就说明安装成功了。

补:

如果出现了bashrc明明添加了cuda路径,上面nvcc也可以正常显示版本信息,但是依然出现no such file or directory: ':/usr/local/cuda/nvvm/lib64'这种错误,但是打印cuda_home的值显示是这样

env | grep CUDA_HOME

这时候可以将上面export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0修改成export CUDA_HOME=/usr/local/cuda-9.0这样直接写死就行。

4、安装cudnn

首先按需求下载cudnn的安装文件https://developer.nvidia.com/rdp/cudnn-archive,其中选择的是cudnn library for linux

然后利用以下命令解压下载的文件,

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

可以看到cuda文件夹,在当前目录打开终端,执行如下命令:

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*

测试安装成功与否

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

若出现以下信息即表示成功了

      相对而言,在其它系统安装cuda与cudnn步骤也相似,先安装驱动,再安装cuda和cudnn,按照步骤一步步来。对于一些新的版本,可能直接运行上面的指令没有任何结果展示,这是因为它的版本信息放在了cudnn_version.h头文件内,如果你想查看其信息,可以先将其拷贝到/usr/local/cuda/include路径下,然后运行下面指令即可,

sudo cp cuda/include/cudnn* /usr/local/cuda/include
cat cudnn_version.h | grep CUDNN_MAJOR -A 2

(1)至于多版本cuda安装可以参考:多版本CUDA和TensorFlow共存 - Gai's Blog

(2)cuda与cudnn的卸载更新

卸载cuda-10.0

###卸载
sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl

sudo rm -rf /usr/local/cuda-10.0

###安装就同上面安装步骤来

卸载cuda-10.1(没有uninstall_cuda_10.1.pl或者cuda-uninstaller情况)

sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*"   ###卸载cuda toolkit

sudo apt-get --purge remove "*nvidia*"  ###卸载驱动 ,选择性使用

sudo rm -rf /usr/local/cuda*  ##删除残留的文件

可以参考:Ubuntu16.04下cuda和cudnn的卸载和升级_隔壁老王的博客-CSDN博客_卸载cudnn

(3)tensorflow与cuda和cudnn的版本配置

TensorFlow版本

CUDA版本

cuDNN版本

1.2

CUDA Toolkit 8.0

cuDNN v5.1

1.3

CUDA Toolkit 8.0

cuDNN v6 or v6.1

1.4

CUDA Toolkit 8.0

cuDNN v6.1

1.5

CUDA Toolkit 9.0

cuDNN v7.0

1.6

CUDA Toolkit 9.0

cuDNN v7.0

1.7

CUDA Toolkit 9.0

cuDNN v7.0

1.8

CUDA Toolkit 9.0

cuDNN v7.0

1.9

CUDA Toolkit 9.0

cuDNN v7.0

1.10

CUDA Toolkit 9.0

cuDNN v7.1

1.11

CUDA Toolkit 9.0

cuDNN v7.1

1.12

CUDA Toolkit 9.0

cuDNN v7.3

1.13

CUDA Toolkit 10.0

cuDNN v7.3

1.14

CUDA Toolkit 10.0

cuDNN v7.4

1.15

CUDA Toolkit 10.0

cuDNN v7.5

2.0

CUDA Toolkit 10.0

cuDNN v7.6

2.1.0

CUDA Toolkit 10.1

cuDNN v7.6

可参考:GPU环境部署:Ubuntu16.04 + GPU Tesla V100 + CUDA + CuDNN_机器学习-深度学习-图像处理-opencv-段子-CSDN博客

(4)torch的安装需要根据cuda版本来安装:https://download.pytorch.org/whl/torch_stable.html

5、不同版本的cuda切换

      考虑到不同项目和不同框架需求,有时候需要配置不同的cuda和各种版本的库,后者可以通过虚拟环境来实现,而前者可以可以安装多个版本的,在需要用的时候再随时进行切换。如安装cuda10和cuda10.1,具体操作如下,

  • 首先下载安装需要的版本cuda库,需要注意的是在安装的时候创软连接时如果第一次安装选择y,否则安装n
  • 添加环境变量进行版本切换
###第一种方式:直接将绝对路径写入到环境变量,此时切换只需要将cuda版本号进行切换(路径都为默认)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0

###第二种方式:添加到环境变量中的是cuda软链接,这种方式不需要修改环境变量,只需要删除软连接,重新链接新的cuda即可,环境变量如下
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#查看软连接状态
stat cuda
#删除旧的软连接,建立新的软连接
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda

切换后,记得重新配上cudnn库和路径。同时如果你是想通过conda来创建链接不同的cuda,则可以通过如下设置,

  • 1.首先激活虚拟环境 pytorch,输出当前环境的路径
conda activate pytorch
echo ${CONDA_PREFIX}

得到路径, for example:/home/username/anaconda3/envs/pytorch

  • 2.建立激活环境下的文件夹,写入脚本
#建立激活环境下的文件夹
mkdir -p /home/username/anaconda3/envs/pytorch/etc/conda/activate.d
#写入脚本
vi /home/username/anaconda3/envs/pytorch/etc/conda/activate.d/activate.sh

写入内容如下:

ORIGINAL_CUDA_HOME=$CUDA_HOME
ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-10.1
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
  • 3.建立退出环境下的文件夹,写入脚本
 #建立退出环境下的文件夹
mkdir -p /home/username/anaconda3/envs/pytorch/etc/conda/deactivate.d
#写入脚本
vi /home/username/anaconda3/envs/pytorch/etc/conda/deactivate.d/deactivate.sh

写入内容如下:

export CUDA_HOME=$ORIGINAL_CUDA_HOME
export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH
unset ORIGINAL_CUDA_HOME
unset ORIGINAL_LD_LIBRARY_PATH

然后启动虚拟环境前后,分别查看cuda版本即可。


补:

》最近突然碰到一件稀奇古怪的事,ubuntu用的好好的突然~/.basrc文件没有了,导致了以前添加到系统环境中的一些内容丢失了,一些操作关联不上,最后只有从系统中拷贝一个最原始的.bashrc文件,然后再依次添加原来的软件到环境变量中。

sudo cp ~/etc/skel/.bashrc ~/.bashrc

有碰到过这种问题的大家可以交流一下。       

》nvidia-smi正常显示,但是右上角的cuda version显示为err,当初没放在心上,但是利用显卡时一直报驱动错误,后来通过排查发现原来是nvidia驱动和cuda不匹配,于是对应上面表格重装cuda和cudnn解决问题。

参考链接:

https://blog.csdn.net/wanzhen4330/article/details/81699769(Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)

https://blog.csdn.net/dudu815110/article/details/88592558(ubuntu16.04安装cuDNN的两种方式以及验证

【引路帖】【conda虚拟环境】【cuda】多个cuda版本路径切换_一苇以航丶的博客-CSDN博客(【cuda】多个cuda版本路径切换)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是安装步骤: 1. 安装CUDA 8.0 首先,你需要下载CUDA 8.0安装包,可以在官网上下载或者使用以下命令: ``` wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run ``` 下载完成后,运行以下命令进行安装: ``` sudo sh cuda_8.0.61_375.26_linux-run ``` 安装过程中需要你进行一些选择,可以按照默认选项进行。 安装完成后,在`~/.bashrc`文件中添加以下环境变量: ``` export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH ``` 然后运行以下命令使配置生效: ``` source ~/.bashrc ``` 2. 安装cuDNN cuDNN是NVIDIA提供的深度学习库,可以加速深度学习的训练和推理过程。你需要先在官网上注册一个账号,然后才能下载cuDNN。 下载完成后,解压文件并将文件复制到CUDA安装路径下: ``` tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz sudo cp -P cuda/include/cudnn.h /usr/local/cuda-8.0/include sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64/ sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn* ``` 3. 安装TensorFlow 最后,你可以使用pip安装TensorFlow: ``` pip install tensorflow-gpu==1.3 ``` 如果你想使用CPU版本的TensorFlow,可以使用以下命令: ``` pip install tensorflow==1.3 ``` 安装完成后,你可以测试一下TensorFlow是否正常工作: ``` python import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) ``` 如果输出了`Hello, TensorFlow!`,那么TensorFlow就安装成功了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值