ubuntn系统下cuda9.0+cudnn7.5安装教程_ubuntu20.10安装cuda9.0+cudnn7-程序员宅基地

技术标签: 英伟达显卡  Ubuntu16.04+cuda安装  Ubuntu16.04+  # 机器学习  

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

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驱动的三种方法_狂浪生-程序员宅基地

若是以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安装

(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路径下,然后运行下面指令即可,

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的卸载和升级_隔壁老王的博客-程序员宅基地_卸载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-段子-程序员宅基地

(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版本路径切换_一苇以航丶的博客-程序员宅基地(【cuda】多个cuda版本路径切换)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaomu_347/article/details/91348103

智能推荐

【A情感文本分类实战】2024 Pytorch+Bert/Roberta+TextCNN/BiLstm/Lstm+Prompt-Tuning等实现IMDB情感文本分类完整项目(项目已开源)_roberta文本分类-程序员宅基地

文章浏览阅读3.1w次,点赞64次,收藏241次。顶会的代码干净利索,借鉴其完成了以下工程本工程采用Pytorch框架,使用上游语言模型下游网络模型的结构实现IMDB情感分析预训练大语言模型可选择Bert、Roberta下游网络模型可选择BiLSTM、LSTM、TextCNN、GRU、Attention以及其组合语言模型和网络模型扩展性较好,可以此为BaseLine再使用你的数据集,模型最终的准确率均在90%以上项目已开源,clone下来再配个简单环境就能跑。_roberta文本分类

阿里云的海外虚拟云主机能否使用谷歌服务-程序员宅基地

文章浏览阅读485次。阿里云的海外虚拟云主机可以使用谷歌服务,但是需要注意地区和政策限制。_阿里云国外服务器可以访问谷歌吗

工作(科研)小助手(个人记录)_codenewscc-程序员宅基地

文章浏览阅读205次。1、 可用于文章搜索、作者文献系列查看下载等(校园内下载,值得推荐),链接:2、 一般近两年的文献无法下载,链接:3、,链接:4、,链接:1、,链接:2、,链接:3、,只需输入人名或专利名称等,链接:4、,链接:1、,链接:2、,链接:3、 ,降重好帮手,链接:4、,链接:5、Quillbot,润色,链接:1、,直接搜索期刊名字下载点击安装即可,链接:2、,简单引用文献,输入文章名称即可,链接:1、,外文书籍pdf下载,超nice,链接:1、,链接:1、,图片转文字,链接:_codenewscc

js 中的对象属性——configurable、writable 等(数据属性和访问器属性)_js configurable-程序员宅基地

文章浏览阅读6.3k次,点赞4次,收藏28次。学习属性据属性和访问器属性的特性,学习 defineProperty() 等方法。_js configurable

华为服务器提示错误信息,服务器错误日志-程序员宅基地

文章浏览阅读612次。服务器错误日志 内容精选换一换为加强对数据的容灾管理,云堡垒机支持手动备份和配置日志远程备份,提高审计数据安全性和系统可扩展性。通过手动导出/下载各功能模块数据文件保存在本地,可手动备份日志请参见表1。系统内导出的csv文件,用Excel打开可能会乱码。若出现乱码情况,请先修改文件编码格式再打开文件,详细说明请参考为什么打开CBH系统数据文件显示乱码?通过配置日志备份目前,支持通过以下三种方式来设..._从服务器检索信息时出错 华为

学习大数据必须掌握哪些核心技术?-程序员宅基地

文章浏览阅读143次。大数据发展到今天,已经是越来越成熟,无论是大型互联网公司,还是小型的创业公司,都能看见大数据的身影。那么,学习大数据必须掌握哪些核心技术呢?一、数据采集与预处理数据采集就是将这些包括移动互联网数据、社交网络的数据等各种来源的数据,写入数据仓库中,把零散的数据整合在一起,对这些数据进行综合分析。Flume NG作为实时日志收集系统,支持在日志系统中定制各类数据发送方,用于收集数据,同时,对数据进行简单处理,并写到各种数据接收方(比如文本,HDFS,Hbase等)。NDC,Netease D

随便推点

ART-Pi入门篇——(三)ART-Pi代码手册-程序员宅基地

文章浏览阅读2.8k次。SDK 代码 框架介绍工程项目代码由三部分构成,分别是 通用驱动库,工程逻辑代码,RT-Thread 源码,下面的表格来详细介绍这个三个部分:工程项目代码文件夹说明通用驱动库libraries用于存放 HAL 库以,基于 HAL 库的外设驱动文件以及其他通用库工程逻辑代码projects项目工程文件夹,包含了各种开源例程RT-Thread 源码rt-threadRT-Thread 源码为了保证 NOR FLASH (W25Q128) 的数据的安全性,_art-pi

架构讲义4_vrasp模型-程序员宅基地

文章浏览阅读4k次。 第四章 高层软件架构的设计 在高层设计阶段,主要工作是分析与设计软件的体系结构。通过系统分解,确定子系统的功能和子系统之间的关系,以及模块的功能和模块之间的关系,产生《体系结构设计报告》。 这个阶段是系统架构师发挥作用的主要位置,高层架构设计过程设计流程如下。 _vrasp模型

dj java decompiler 反编译支持中文_java decompiler 复制中文-程序员宅基地

文章浏览阅读2.8k次。1.dj java decompiler 反编译支持中文2.反编译jar步骤使用方法:首先将要反编译的jar文件,用Winrar解压到和jar文件名称一样的文件夹中 在命令输入框中输入如下命令:cd C:\Users\wz\Desktop\DJJavaDecompilerjad -o -r -dC:\Users\wz\Desktop\fby -sjava C:\_java decompiler 复制中文

webwork.in.action的学习经验-程序员宅基地

文章浏览阅读67次。今天看了电子版的webwork.in.action的中文版,把webwork框架又进一步理解下。xwork.xml的配置,包括package、action、result、interceptor。package:有继承方式,当abstract="true"时,只能给子类继承,其中不能有action映射。namespace:命名空间,每次到指定命名空间找对应action,如果未找到,则到默认的...

PyQt5在python中使用的经验总结_pyqt5按钮调用python脚本-程序员宅基地

文章浏览阅读795次。本文旨在归纳总结如何在python中导入desinger.exe设计出的ui,以及常用控件在python中的使用方法。常用控件的使用方法会根据自己使用情况,进行不断归纳更新_pyqt5按钮调用python脚本

古代到现在一些小国家的形成和解体-程序员宅基地

文章浏览阅读567次。匈奴、东胡、突厥、回鹘、蒙古、契丹、女真、鞑靼、鲜卑、羌、党项、乌苏、 柔然、哈萨克,这些游牧民族,在王老师上学的时候一个不懂,有些甚至不会读~但是它们老实不停的出现,所以下面的介绍,绝对值得你收藏!简单粗暴,直接有效。以下图片中的背景来自高德地图,彩色半透明区域和楷体字是我填充,不绝对准确,只是大概位置和范围。从商周时代开始,匈奴和东胡就存在了,他们的位置大概是这样的:然后匈奴...

推荐文章

热门文章

相关标签