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版本
#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安装的时候也会卸载掉之前的驱动,所以不手动卸载亦可
sudo gedit /etc/modprobe.d/blacklist.conf
在文本最后添加:(禁用nouveau第三方驱动,之后也不需要改回来)
blacklist nouveau
options nouveau modeset=0
然后执行:
sudo update-initramfs -u
重启后,执行:lsmod | grep nouveau
。如果没有屏幕输出,说明禁用nouveau成功。
sudo service lightdm stop #这会关闭图形界面,但不用紧张
按Ctrl-Alt+F1
进入命令行界面,输入用户名和密码登录即可。
小提示:在命令行输入:
sudo service lightdm start
,然后按Ctrl-Alt+F7
即可恢复到图形界面。
#给驱动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 #若弹出设置对话框,亦表示驱动安装成功
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
下载完毕后,切到默认的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*
下载后 直接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