Ubuntu18.04 安装 显卡驱动 Nvidia Driver CUDA CUDNN 与GPU 版本的Pytorch
Ubuntu18.04 安装 显卡驱动 Nvidia Driver CUDA CUDNN 与GPU 版本的Pytorch
2.1 为何选择PyTorch?
Pytoch 由4个主要的包组成:
- torch: 类似于Numpy的通用数组库,可将张量类型转换为torch.cuda.TensorFloat,并在GPU上进行计算。
- torch.autograd: 用于构建计算图形并自动获取梯度的包
- torch.nn: 具有共享层和损失函数的神经网络库
- torch.optim: 具有通用优化算法(如SGD、Adam等)的优化包。
2.2 安装配置
在安装过程中,使用的机器为4*GPU工作站,重点关注如何安装GPU版本的PyTorch。
安装过程:
1. 安装Python
通过Anaconda进行安装,同时通过Anaconda进行python相关的包管理;
2. 安装Nvidia Driver:
建议通过.bash文件的形式进行安装,首先去Nvidia官网下载所需版本的驱动文件:
- 下载显卡驱动:http://www.nvidia.cn/page/home.html
- 禁用自带的 nouveau nvidia驱动
打开文件,通过命令
sudo gedit /etc/modprobe.d/blacklist.conf
在文件夹最末尾处添加命令
blacklist nouveau
options nouveau modeset=0
- 更新内核
sudo update-initramfs -u
- 重启系统
- 在登录界面按 Ctrl + Alt + F1(2/3/4/5/6),目的是进入命令行界面,登录后,查看:
特别提醒:
对于有些机器,禁用自带显卡驱动后,如果显示器插在GPU上的话,大概率重启后会一直黑屏了,解决方案:
- 将显示器插到主板上的显示器端口上,然后断电重启;
- 断电重启系统,开机过程按esc(按下的频率别太高了,不然直接进grub了,如果进入的话,reboot再重来就行)进入引导界面后,选第二项高级选项,然后进入后,选root模式,就可以进入命令行界面了,这时可以进行驱动程序的安装。
lsmod | grep nouveau
查看nouveau模块是否被加载,如果什么都没有输出,则执行下一步,不行的话重新操作前面三步
- 命令到你下载的显卡驱动的路径
cd /home/用户名
对驱动文件赋权
sudo chmod 755 Nvidia(驱动)
- 关闭集显
sudo service lightdm stop
- 安装驱动
sudo bash Nvidia(驱动)(–no-opengl-files)
注意:-no-opengl.files 如果添加的话,在调用Unity加速的时候可能会无法使用GPU加速,但是不加的话,有些机器开机会卡在循环登录界面,加上与不加均不会影响PyTorch的使用。
-**Accept License(**接受协议)
-Select Continue Installation(选择继续安装)
-Select “NO” to not install 32bit files(选择NO不要安装32位文件)
-Select “NO” to rebuilding any Xserver configurations with Nvidia.
- 重启系统,
reboot
- 查看驱动是否安装成功
nvidia-smi
能够看到显卡型号以及使用情况说明显卡驱动安装成功。
另外,在系统设置里面的详情里,如果安装显卡驱动成功的话,能够看到显卡型号。
3 安装cuda
详细的安装过程可以参考:
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
在第4步有通过run文件安装cuda的方法
特别注意的地方:
安装cuda也需要先关闭界面服务,按照顺序从上到下做下来的话,这一步已经完成了
- 通过run文件安装的话,首先去官网下载run文件
https://developer.nvidia.com/cuda-10.1-download-archive-base?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal
- 执行安装过程,根据提示完成安装:
sudo sh cuda_10.1.105_418.39_linux.run
- 完成安装后,需要配置环境变量,在官网教程的第7部分有详细的教程,总结如下:
export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/NsightCompute-2019.1${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Note that the above paths change when using a custom install path with the runfile installation method.
3 安装cudnn
通过官网下载安装文件https://developer.nvidia.com/cudnn,这一步需要nvidia账号。
安装教程建议也参考官网教程进行安装:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#verify
下载的文件后缀为 solitairetheme8直接改成.tgz就行。
然后:
tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
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*
4. 安装PyTorch
官网教程:https://pytorch.org/get-started/locally/
执行如下命令即可
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
5 验证安装成功
验证驱动
nvidia-smi
验证cudnn
新建文件:test_gpu.py
import torch
if __name__ == '__main__':
# 测试cuda
print("Support CUDA?:", torch.cuda.is_available())
x = torch.tensor([10.0])
x = x.cuda()
print(x)
y = torch.randn(2,3)
y = y.cuda()
print(y)
z = x+y
print(z)
# 测试CUDNN
from torch.backends import cudnn
print("Support cudnn ?:", cudnn.is_acceptable(x))
运行文件:
python test_gpu.py
两处打印support的地方均能够看到true即可。