ubuntu 18.04 pytorch 的 cuda 环境搭建(亲测)

本人装的是410N卡驱动,cuda版本为10,cudnn版本为7.4.1,pytorch1.0.0

 

 一.下载

N卡410驱动下载    

cuda_10.0.130_410.48_linux.run      N卡驱动版本至少410.48 

cudnn-10.0-linux-x64-v7.4.1.5.tgz    7.4.1版本对应cuda 10     需要注册账号

pytorch-1.0.0-py3.6_cuda10.0.130_cudnn7.4.1_1.tar.bz2      对应py3.6   cuda 10 cudnn 7.4.1  的1.0.0版本ubuntu 18.04 pytorch 的 cuda 环境搭建(亲测)_第1张图片

 

 二.安装N卡驱动  (来源)

1. 先卸载原有N卡驱动

复制代码

#for case1: original driver installed by apt-get:
sudo apt-get remove --purge nvidia*

#for case2: original driver installed by runfile:
sudo chmod +x *.run
sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall

复制代码

 

如果原驱动是用apt-get安装的,就用第1种方法卸载。 
如果原驱动是用runfile安装的,就用–uninstall命令卸载。其实,用runfile安装的时候也会卸载掉之前的驱动,所以不手动卸载亦可

2. 禁用nouveau驱动

sudo gedit /etc/modprobe.d/blacklist.conf

 

在文本最后添加:(禁用nouveau第三方驱动,之后也不需要改回来)

blacklist nouveau
options nouveau modeset=0

 

然后执行:

sudo update-initramfs -u

 

重启后,执行:lsmod | grep nouveau。如果没有屏幕输出,说明禁用nouveau成功。

3. 禁用X-Window服务  (我的提示我没有x-window我没管)

sudo service lightdm stop #这会关闭图形界面,但不用紧张

 

Ctrl-Alt+F1进入命令行界面,输入用户名和密码登录即可。

小提示:在命令行输入:sudo service lightdm start ,然后按Ctrl-Alt+F7即可恢复到图形界面。

4. 命令行安装驱动

#给驱动run文件赋予执行权限:
sudo chmod +x NVIDIA-Linux-x86_64-384.59.run
#后面的参数非常重要,不可省略:
sudo ./NVIDIA-Linux-x86_64-410.73.run –no-opengl-files
  • –no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。
  • –no-x-check:表示安装驱动时不检查X服务,非必需。
  • –no-nouveau-check:表示安装驱动时不检查nouveau,非必需。
  • -Z, --disable-nouveau:禁用nouveau。此参数非必需,因为之前已经手动禁用了nouveau。
  • -A:查看更多高级选项。

必选参数解释:因为NVIDIA的驱动默认会安装OpenGL,而Ubuntu的内核本身也有OpenGL、且与GUI显示息息相关,一旦NVIDIA的驱动覆写了OpenGL,在GUI需要动态链接OpenGL库的时候就引起问题。

之后,按照提示安装,成功后重启即可。 
如果提示安装失败,不要急着重启电脑,重复以上步骤,多安装几次即可。

Driver测试:

nvidia-smi #若列出GPU的信息列表,表示驱动安装成功
nvidia-settings #若弹出设置对话框,亦表示驱动安装成功

 三.安装CUDA 

sudo ./cuda_10.0.130_410.48_linux.run     --no-opengl-libs
  • --no-opengl-libs:表示只安装驱动文件,不安装OpenGL文件。必需参数,原因同上。注意:不是-no-opengl-files
  • --uninstall (deprecated):用于卸载CUDA Driver(已废弃)。
  • --toolkit:表示只安装CUDA Toolkit,不安装Driver和Samples。
  • --help:查看更多高级选项。

之后,按照提示安装即可。我依次选择了:

复制代码

1 accept #同意安装
2 n #不安装Driver,因为已安装最新驱动
3 y #安装CUDA Toolkit
4  #安装到默认目录
5 y #创建安装目录的软链接
6 y #复制Samples一份到家目录

复制代码

之后声明一下环境变量,并将其写入到 ~/.bashrc 文件(在用户目录下)的尾部,输入内容如下

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

保存退出,并输入下面指令使环境变量立刻生效:

$source ~/.bashrc

设置环境变量和动态链接库,在命令行输入:

$ sudo vim /etc/profile

在打开的文件末尾加入:

export PATH=/usr/local/cuda/bin:$PATH


创建链接文件

$ sudo vim /etc/ld.so.conf.d/cuda.conf

在打开的文件中添加如下语句:

/usr/local/cuda/lib64

保存退出,然后执行

$ sudo ldconfig 

使链接立即生效。

CUDA Sample测试:

切换到 CUDA 10.0 Samples 默认安装路径(即在/home/用户/NVIDIA_CUDA-9.1_Samples 目录下), 终端下输入

$ cd NVIDIA_CUDA-10.0_Samples
$ sudo make all -j4
$ cd bin/x86_64/linux/release
$ ./deviceQuery

如果 CUDA 安装成功,则有:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 1060 6GB"
  CUDA Driver Version / Runtime Version          10.0 / 10.0
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 6075 MBytes (6370295808 bytes)
  (10) Multiprocessors, (128) CUDA Cores/MP:     1280 CUDA Cores
  GPU Max Clock rate:                            1772 MHz (1.77 GHz)
  Memory Clock rate:                             4004 Mhz
  Memory Bus Width:                              192-bit
  L2 Cache Size:                                 1572864 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 31 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 10.0, NumDevs = 1
Result = PASS

 

四.安装cudnn

下载完毕后,切到默认的Downloads文件夹,可以看到 cudnn-10.0-linux-x64-v7.4.1.5.tgz 压缩包

先解然后复制cuDNN内容到cuda相关文件夹内

sudo cp cuda/include/cudnn.h    /usr/local/cuda/include      注意,解压后的文件夹名称为cuda ,将对应文件复制到 /usr/local中的cuda内
sudo cp cuda/lib64/libcudnn*    /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h   /usr/local/cuda/lib64/libcudnn*


五.安装pytorch

下载后  直接pip安装

conda install pytorch-1.0.0-py3.6_cuda10.0.130_cudnn7.4.1_1.tar.bz2

六.测试

import torch
torch.cuda.is_available()  # True

你可能感兴趣的:(python)