Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0

Ubuntu16.04,GPU: Geforce RTX 2070-Super(本博客是显卡驱动和cuda分开安装的教程).

1. 首先使用命令查看Ubuntu系统显卡驱动版本(如果之前有安装显卡驱动)或者去NVIDIA官网https://www.nvidia.com/Download/index.aspx下载GPU的显卡驱动。(笔者之前安装的显卡驱动,所以具体安装可以看看其他博客)。

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第1张图片

 

安装完成可通过以下两个命令查看,查看结果如图所示(我的是418.87版本)。

cat /proc/driver/nvidia/version
nvidia-smi

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第2张图片

2. 安装CUDA

2.1 下载cuda

先通过 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html 官网查看cuda和显卡驱动的版本对应表(你的驱动版本可以大于CUDA要求的驱动版本,但不能小于)。

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第3张图片

看完对应表后就可以下载cuda了,但是官网首页的CUDA一般是最新版,我们可能需要下载旧版本,https://developer.nvidia.com/cuda-toolkit-archiv,进入这个网址下载可以看到旧版本列表,如下图所示。

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第4张图片

点击相应版本,进入下图界面,选择Linux,系统架构X86_64位,Ubuntu16.04版本,然后选择runfile(local)是一个完整的包,deb(network)得半途从官网下载一些组件(笔者下载runfile)。

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第5张图片

2.2 安装cuda

① 好多博客都是要求先关闭nouveau,因为和显卡驱动冲突,但是我们这是仅仅安装cuda,显卡驱动已经安装过了,所以nouveau应该已经是被禁用的(反正笔者的已经是禁用的,没有任何输出),如果你没禁用那就禁用一下吧,用以下命令查看nouveau是否被禁用。

② 好多博客也是要求进入文本用户界面进行安装(其实是显卡驱动和cuda一起安装才需要),然后笔者由于文本用户界面登录不了(据说是系统kenerl太高),于是尝试直接在图像用户界面安装,结果安装成功。

1.直接终端在cuda.run文件目录打开终端,运行以下命令进行安装

sudo sh cuda_10.0.130_410.48_linux.run

然后一直回车直到问你是否同意用户协议(Do you accept the previously read EULA?),此时有一系列问题,问题回答如下图,然后安装成功。

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第6张图片

解释以下
① Do you accept the previously read EULA?(是否同意用户协议)
选择 accept
② Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
输入 n,因为我们已经安装显卡驱动了,现在不用安装。
③ Install the CUDA 10.0 Toolkit?
输入 y
④ Enter Toolkit Location(选择安装路径,默认/usr/local/cuda-10.0就行)
输入 回车
⑤ Do you want to install a symbolic link at /usr/local/cuda?
输入 y
⑥ Install the CUDA 10.0 Samples?
输入 n,因为cuda自带的,笔者手误选了y。

安装完成后,底部有一些注意事项,如图

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第7张图片

上图提示不完全安装,没有安装cuda驱动(因为我们已经安装了显卡驱动,而且版本高于cuda10.0最低版本的要求,不用管),此时使用 nvcc -V 是查看不到cuda信息的,因为上图提示PATH和LD_LIBRARY_PATH需要确定,在~/.bashrc加入图中那两行命令并保存source一下,结果可查看到cuda版本,如下图。

sudo gedit ~/.bashrc   #(打开bashrc文件)
在bashrc文件底部加入以下两行

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

保存退出,然后编译一下bashrc文件。
source ~/.bashrc   #(编译bashrc文件,更新系统设置)

如果还想验证一下cuda是否正常工作,可以输入以下命令验证,结果都是result=pass就是安装成功。

cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
make
./deviceQuery
cd ../bandwidthTest
make
./bandwidthTest

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第8张图片

3. 安装cudnn

去官网 https://developer.nvidia.com/rdp/cudnn-archive 选择相应版本点击,然后在展开的页面选择“cudnn library for linux”下载cudnn包,不要选择“cudnn library for Ubuntu16.04”,下载下来还是Windows的安装包。

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第9张图片

下载后解压得到cuda文件夹

tar -xzvf cudnn-10.0-linux-x64-v7.6.5.32.tgz

解压后将文件拷贝到cuda的目录下

sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64/
sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h /usr/local/cuda-10.0/lib64/libcudnn  #给文件赋权限,好像可以不执行权限就可以验证成功,可以先不执行这个命令测试一下

查看cudnn版本

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

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第10张图片

4. 安装pytorch

因为项目需要pytorch1.1.0版本,所以去torch官网的历史版本https://pytorch.org/get-started/previous-versions/中下载pytorch1.1.0和torchvision0.3.0,笔者喜欢pip安装,不喜欢anaconda,所以直接去https://download.pytorch.org/whl/cu100/torch_stable.html(不同cuda版本,把cu100改成相应版本,比如cu92)下载cuda10.0版本的torch文件,如下图。

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第11张图片

由于项目需求需要安装3.8版本的python,但是Ubuntu自带3.5,本来想试试3.5可不可以,但是发现不行,所以只能再装3.6(不需要卸载3.5版本,可能卸载会导致系统不稳定,可以多版本兼容,最后改一下python指向即可)。

5. Ubuntu安装python3.7.1

① https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz到官网下载python2.7

② 解压

tar -zxvf Python-3.7.1.tgz

cd Python3.7.1
./config

make  #编译 
sudo make install  #安装

⑤ 更改python3.7和pip3.7的指向,为了避免Python多版本的冲突,重定向至python37和pip37,如下图所示。

sudo ln -s /usr/local/bin/python3.7 /usr/bin/python37
sudo ln -s /usr/local/bin/pip3.7 /usr/bin/pip37

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第12张图片

接下来在下载下来的torch,whl目录打开终端,执行命令安装,如下图

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第13张图片

安装完成后输入以下代码测试

import torch
torch.cuda.is_available()
a=torch.Tensor([1.])
a.cuda()
from torch.backends import cudnn
cudnn.is_acceptable(a.cuda())

结果如下图成功

Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0_第14张图片

 

你可能感兴趣的:(Ubuntu安装显卡驱动+CUDA10.0+cudnn+Pytorch1.1.0)