ubuntu18.04系统双显卡笔记本安装nvidia-driver、cuda(toolkit)、cuDNN、pytorch

软硬件版本

已有:
	电脑:hp暗影精灵4
	显卡:核显+GTX-1050ti
	双系统:win10+ubuntu18(在ubuntu下安装)
	ubuntu系统:18.04.3 LTS (Bionic Beaver),64位
	内核版本:5.3.0-51-generic
	GCC版本:(Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
安装:
	Nvidia-Deriver版本:440.33.01
	CUDA版本:10.2
	cuDNN版本:7.6.5.32
	Anaconda3版本:2020.02
	Pytorch版本:1.5.0

双显卡笔记本安装nvidia-driver和CUDA的思路

本人尝试若干种方法安装nvidia-driver(包括:禁用Nouveau、不安装opengl库、使用apt-get自动安装、使用系统程序“软件和更新”安装、使用CUDA-ToolKit同时安装驱动和cuda等),均无法解决循环登陆\登陆界面卡住这个问题。

于是决定退而求其次:在关机前使用sudo prime-select intel命令将显卡切换为核显,从而保证开机时可以登陆进入图形界面。开机后,使用sudo prime-select nvidia命令,切换为独显,从而使用cuda。

当然,为了操作方便,我们将使用脚本自动完成这个切换任务。

关于驱动、cuda、cuda-toolkit、cuDNN的说明

参考marsggbo的博客
显卡驱动Nvidia-Driver:

1,安装方式:
	1,独立安装
	2,在安装Cudatoolkit时,自动安装
2,安装后,同时安装了cuda的driver-api,所以使用nvidia-smi能看到cuda版本

CUDA:

1,CUDA是一个并行计算平台和编程模型,能够使得使用GPU进行通用计算变得简单和优雅
2,有两个主要的API:driver-api和runtime-api。支持driver-api的文件是在安装Nidia-Driver时安装的,支持runtime-api的文件是在安装CUDA-toolkit时安装的。
	   因此,驱动和CUDA-toolkit分开安装时使用nvidia-smi看到的cuda版本(driver-api)和使用nvcc -V看到的cuda版本(runtime-api)可能不一致
3,安装:
	1,driver-api部分:在安装Nvidia-Driver时同时安装
	2,runtime-api部分:在安装CUDA-toolKit时同时安装
	3,安装CUDA-ToolKit时可以选择同时安装Nvidia-Driver,此时将先后安装driver-api部分和runtime-api部分。

CUDA-ToolKit:

	包含nvcc,cuda-driver等。
	安装与:系统、内核、GPU型号有关

cuDNN:

	Deep Neural Network library,CUDA的一个库

Nvidia-Driver和CUDA的安装

官方安装文档链接
CUDA安装对Nvidia-Driver的版本有要求,因此,为了方便,我们选择在安装CUDA时同时安装Nvidia-Driver。当然分开安装也是可以的。
注:下面在表述上不区分CUDA和CUDA-ToolKit。

1,首先卸载之前的安装:

//卸载显卡驱动:
	sudo /usr/bin/nvidia-uninstall
	//由于显卡驱动的安装方式不同,使用上述命令可能找不到nvidia-uninstall,此时可采用:
	sudo apt-get purge nvidia*
//卸载CUDA
	//将下面cuda-10.2换成你已安装的cuda版本
	sudo /usr/local/cuda-10.2/bin/cuda-uninstaller

2,下载CUDA,CUDA10.2下载链接
我们采用runfile的方式安装,选择系统版本、位数、runfile(local)
在这里插入图片描述下面将给出安装命令:
在这里插入图片描述执行第一个命令,下载安装文件(也可以复制第一个命令中的网址,打开,下载)

3,禁用Nouveau
很早之前就禁用了,也没有测试采用本文的安装方法是不是必须执行禁用操作。感觉不禁用应该也可以,如果有哪位朋友(核显+独显)采用本文方法不禁用也成功了,烦请留言告知,不胜感激。

//打开文件
sudo vim /etc/modprobe.d/blacklist.conf
//在打开的文件中添加下面两行,保存。
blacklist nouveau
options nouveau modeset=0
//重启电脑
//打开命令行执行下面的命令,若无输出则禁用成功
lsmod | grep nouveau

4,关闭图形界面
关于桌面环境:gdm、lightdm等的介绍,请参考sole_cc的博客

//执行下面的命令,查看自己的图形界面是哪一个。在出现的进程树中查看,出现哪个名字,就是哪个桌面环境。这个查看方法可能有点笨,但我没找到其他方法
pstree

在这里插入图片描述
可见我的是gdm3

//重启电脑,不要登陆图形界面,按ctrl+alt+F3进入命令行模式,登陆。
//关闭图形界面
sudo service gdm3 stop

5,安装

//进入到包含之前下载的安装文件的路径下,执行(可能要等一会儿才有显示)。
//一切选项默认(同时安装驱动,不用去掉opengl的安装选项)。
sudo sh cuda*

6,设置环境变量
我们选择添加到系统变量,因此写入到/etc/profile,添加到用户环境变量应该也可以。关于/etc/profile和~/.bashrc的区别请参考来自外星的一只猿的博客

//sudo vim /etc/profile
//加入下面两行 
export PATH=/usr/local/cuda-10.2/bin:/usr/local/cuda-10.2/nsight-compute-2019.5.0${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

7,切换到核显

sudo prime-select intel

8,开启图形界面

sudo service gdm3 start

9,重启,登陆到图形界面。切换到独显

sudo prime-select nvidia

10,检查安装是否成功
执行nvidia-smi,应出现:
在这里插入图片描述
执行nvcc --version,应出现:
在这里插入图片描述安装完成。

10,可能出现的问题

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver

解决办法,参考博客

//安装DKMS
sudo apt-get install dkms
//重新生成对应nvidia的驱动模块, -v后面的是安装的驱动版本
sudo dkms install -m nvidia -v 440.33

显卡切换脚本

为了避免手动在关机前使用sudo prime-select intel命令将显卡切换为核显,在开机后使用sudo prime-select nvidia命令切换为独显。我们通过开机自动执行和关机自动执行的脚本完成这个任务。

开关机脚本的编写参考了枫安Maplean 的博客
脚本内容:

#!/bin/bash

### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Default-Start:    2 3 4 5
# Default-Stop:     0 1 6
# Short-Description:
# Description: 
### END INIT INFO

case "$1" in
        start)
                prime-select nvidia
                ;;
        stop)
                prime-select intel
                ;;
        *)
                ;;
esac

脚本创建:

//进入init.d目录
cd /etc/init.d/
//创建脚本
sudo touch my_nvidia_intel_select
将上述脚本内容复制到my_nvidia_intel_select
//赋予脚本可执行权限
chmod a+x my_nvidia_intel_select
//创建软链接
ln -s /etc/init.d/my_nvidia_intel_select /etc/rc0.d/K99my_nvidia_intel_select
ln -s /etc/init.d/my_nvidia_intel_select /etc/rc1.d/K99my_nvidia_intel_select
ln -s /etc/init.d/my_nvidia_intel_select /etc/rc2.d/S99my_nvidia_intel_select
ln -s /etc/init.d/my_nvidia_intel_select /etc/rc3.d/S99my_nvidia_intel_select
ln -s /etc/init.d/my_nvidia_intel_select /etc/rc4.d/S99my_nvidia_intel_select
ln -s /etc/init.d/my_nvidia_intel_select /etc/rc5.d/S99my_nvidia_intel_select
ln -s /etc/init.d/my_nvidia_intel_select /etc/rc6.d/K99my_nvidia_intel_select

重启:

//创建脚本后的第一次关机/重启前要手动执行"udo prime-select intel"
//因为此时脚本的开机部分还未执行,如果直接关机/重启则关机部分也不会执行
sudo prime-select intel
reboot

今后关机前将自动执行脚本,切换到核显,开机后将自动切换到独显,无需进行任何手动操作。

cuDNN安装

官方安装文档

文档中给出了3中安装方法:tar文件安装、deb文件安装、RPM文件安装,本人选用了tar文件安装。

下载tar安装文件,cuDNN下载地址,需要注册一个NVIDIA Developer Program账号。
下载这个:
在这里插入图片描述

//解压文件
tar -xzvf <filename>.tgz
//将cuda/include/cudnn.h和cuda/lib64/下的文件复制到相应文件夹下
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*
//添加环境变量
	//在/etc/profile中添加:
	export CUDA_HOME=/usr/local/cuda
//重启(好像不重启也成)

验证是否安装成功
官方文档中没有给出使用tar文件安装的验证方法,此处参考了Zachary Yu 的博客中的方法

//执行下面的命令
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

若出现:
在这里插入图片描述
则成功安装cuDNN

Anaconda 安装

pytorch官网给出了Miniconda3最新版的安装方法,Miniconda3是Anaconda的简化版本,关于conda\Anaconda\Miniconda的区别与联系可参见bboysky45 的博客

Mimiconda的安装:

//下载安装脚本,也可以在官网手动下载
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
//执行安装脚本
sh Miniconda3-latest-Linux-x86_64.sh

本人没有按照pytorch官网的做法安装Miniconda,而是安装了Anaconda
安装过程参考官方文档
Anaconda的安装:

//1,去官网手动下载安装脚本
//		网址:https://www.anaconda.com/products/individual
//执行安装脚本
bash ~/Downloads/Anaconda3-2020.02-Linux-x86_64.sh
//安装过程的选项:
//	1,路径选择默认
//	2,“Do you wish the installer to initialize Anaconda3 by running conda init?” 选择“yes”.

安装Pytorch

打开pytorch官网,选择系统、Conda、Python,CUDA版本,即可获得pytorch安装命令,在此页面向下翻,可以看到官方安装指导。
在这里插入图片描述
打开一个终端,安装

//打开conda的base环境
conda activate base
//运行安装命令,选项均默认
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch

安装过程需要下载四个文件,其中torchvision往往会因为网络问题无法下载,如下图:
在这里插入图片描述导致安装失败:

在这里插入图片描述解决方法:
1,保证网络能翻墙
2,设置网络代理为自动:
在这里插入图片描述然后再次运行安装命令,将会完成torchvsion的下载,继续安装:
在这里插入图片描述至此安装完成
验证:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值