训练U2nent的时候需要使用GPU,由于我重新安装了Ubuntu20,需要配置深度学习三件套( NVIDIA 驱动/CUDA/cuDNN)
这里把比较详细的过程记录下来。
上图中我通过
watch -n 0.5 -d nvidia-smi #每隔0.5秒刷新一次
和 top 实时查看回显,避免显存爆掉。
一、安装NVIDIA驱动
这里,直接使用UBUNTU自带的安装工具安装时没有问题的, 注意版本选一个比较新(不是最新)的就可以。
先测一下速度 ,选择ailiyun来
二、安装CUDA
CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。这里将
现在到本地,直接chmod +x,然后运行就可以了。这里CUDA的驱动版本要小于等于前面的驱动版本。
如果按照上述流程安装了最新的NVIDIA Driver,runfile安装过程中会提醒是否继续(Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.),选择继续continue
,在后续选择安装内容时去除驱动选择。这一点一定要注意。
运行成功后看见输出Summary,根据提示需要进行环境变量的设置
,在.bashrc(ZSH使用者对应.zshrc)末尾追加如下文字。
1 2 3 4 5 |
# 还是使用.bashrc文件举例,zsh用户自行替换为.zshrc echo '# CUDA Soft Link' >> ~/.bashrc echo 'export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc source ~/.bashrc |
---|
最后测试以下CUDA是否成功安装,运行nvcc -V
:
1 2 3 4 |
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243 |
---|
或者也可以运行位于/usr/local/cuda-11.1/samples/
中的测试用例,具体不说了,按照我前面的流程一步步走下来没毛病。
三、安装cuDNN
cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。
在cuDNN Archive 页面挑选适合我们CUDA版本的cuDNN,我们选择
注意
直接下载.tar.gz(不是deb),然后通过复制就可以实现相关操作。
cuDNN的下载需要注册,相信对于大家来说并不是什么问题(迅雷会员可以解决)。下载并解压之后运行如下命令将cuDNN压缩包中的文件拷贝到CUDA 10.1的文件夹中:这里需要注意,
1 2 3 |
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64 sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h /usr/local/cuda-10.1/lib64/libcudnn* |
---|
===============================================================================================================================================================
四、通过软链接同时维护和使用多个版本的CUDA库
在安装完成CUDA和对应cuDNN的库之后,我们可以看到/usr/local/cuda
指向了当前的CUDA文件夹:
1 | lrwxrwxrwx 1 root root 20 May 3 16:38 cuda -> /usr/local/cuda-10.1 |
---|
观察得知/usr/local/cuda
是一个链接文件,在上述安装过程中被安装程式自动指向了当前安装版本的CUDA所在文件夹,于是我们可以通过更新链接指向,维护多个CUDA版本并动态的调用。
1 2 |
# ln -snf [源] [链接文件] 更新链接文件的指向 sudo ln -snf /usr/local/cuda-10.0 /usr/local/cuda |
---|
再次观察/usr/local/cuda
指向了新的CUDA文件夹,由于我们上面过程中添加在.bashrc or .zshrc 中的路径是/usr/local/cuda/***
,于是这一条命令就可以改变当前调用的CUDA及cuDNN版本了。
不过CUDA的文件夹不算小,同时维护CUDA10.0-TF1.15/CUDA10.1-TF2.X/CUDA10.2-PyTorch使得SSD上的空间岌岌可危,所以说,Linux的正确分区挂载习惯hh
五、TensorFlow及Pyorch安装 (顺手)
虚拟环境不说了,virtualenv
还是conda
自选。(我是用miniconda,用什么装什么。)
TensorFlow
TensorFlow目前最高支持Python 3.7 && CUDA 10.1。
旧版 TensorFlow(1.x),CPU 和 GPU 软件包是分开的:
1 2 |
pip install tensorflow1.15 # CPU pip install tensorflow-gpu1.15 # GPU |
---|
对于TensorFlow 2.x CPU 和 GPU 软件包是统一的:
1 2 |
pip install tensorflow # CPU 和 GPU 的最新稳定版 pip install tf-nightly # 预览 build(不稳定) |
---|
PyTorch
PyTorch最高支持CUDA 10.2,同时支持10.1和9.2版本。我们安装CUDA 10.1版本对应的PyTorch。
1 | pip install torch1.5.0+cu101 torchvision0.6.0+cu101 -f https://download.PyTorch.org/whl/torch_stable.html |
---|
这里比较合理的方法是通过迅雷先把whl下载下来,然后本地安装。
Reference
- https://www.tensorflow.org/install/gpu
- https://developer.nvidia.com/cuda-10.1-download-archive-update2?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal
- https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
- https://blog.csdn.net/u014380165/java/article/details/77340765
- https://cyfeng.science/2020/05/02/ubuntu-install-nvidia-driver-cuda-cudnn-suits