700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ubuntu18.04系统双显卡笔记本安装nvidia-driver cuda(toolkit) cuDNN pytorch

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

时间:2022-03-05 16:49:18

相关推荐

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

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

软硬件版本双显卡笔记本安装nvidia-driver和CUDA的思路关于驱动、cuda、cuda-toolkit、cuDNN的说明Nvidia-Driver和CUDA的安装显卡切换脚本cuDNN安装Anaconda 安装安装Pytorch

软硬件版本

已有:电脑:hp暗影精灵4显卡:核显+GTX-1050ti双系统:win10+ubuntu18(在ubuntu下安装)ubuntu系统:18.04.3 LTS (Bionic Beaver),64位内核版本:5.3.0-51-genericGCC版本:(Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0安装:Nvidia-Deriver版本:440.33.01CUDA版本:10.2cuDNN版本:7.6.5.32Anaconda3版本:.02Pytorch版本: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 nouveauoptions 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-.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

解决办法,参考博客

//安装DKMSsudo 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 INFOcase "$1" instart)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_selectln -s /etc/init.d/my_nvidia_intel_select /etc/rc1.d/K99my_nvidia_intel_selectln -s /etc/init.d/my_nvidia_intel_select /etc/rc2.d/S99my_nvidia_intel_selectln -s /etc/init.d/my_nvidia_intel_select /etc/rc3.d/S99my_nvidia_intel_selectln -s /etc/init.d/my_nvidia_intel_select /etc/rc4.d/S99my_nvidia_intel_selectln -s /etc/init.d/my_nvidia_intel_select /etc/rc5.d/S99my_nvidia_intel_selectln -s /etc/init.d/my_nvidia_intel_select /etc/rc6.d/K99my_nvidia_intel_select

重启:

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

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

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/includesudo 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 /miniconda/Miniconda3-latest-Linux-x86_64.sh//执行安装脚本sh Miniconda3-latest-Linux-x86_64.sh

本人没有按照pytorch官网的做法安装Miniconda,而是安装了Anaconda

安装过程参考官方文档

Anaconda的安装:

//1,去官网手动下载安装脚本//网址:/products/individual//执行安装脚本bash ~/Downloads/Anaconda3-.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的下载,继续安装:

至此安装完成

验证:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。