我的环境
系统:4.19.183-1-MANJARO
显卡:Nvidia GeForce 940MX
显卡驱动:video-hybird-intel-nvidia-prime(460.67)
CUDA: 10.1
cuDNN: 7.6.5
Python: 3.7
Tensorflow: 2.2
PyTorch: 1.7.0+cu101
PaddlePaddle:2.0.1.post101(GPU version)
配置过程及注意事项
显卡驱动
我的显卡驱动是 video-hybird-intel-nvidia-prime,安装这个实际上相当于安装了适用于本机显卡的最新版显卡驱动,它会不断更新。
CUDA 和 cuDNN
需要根据显卡驱动的版本、Tensorflow 和 PyTorch 是否支持来选择 CUDA 和 cuDNN 的版本。
显卡驱动与 CUDA 版本之间的关系(参考 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html):
我的显卡驱动版本是 460.67(在终端中输入 nvidia-smi
命令可以查看),所以我的显卡驱动可以使用所有 CUDA 版本。
Linux 下 Tensorflow 支持的 CUDA 和 cuDNN 版本(参考 https://tensorflow.google.cn/install/source#gpu):
我在安装时 Tensorflow 已经更新到了 2.3 版本,而这里只写了 2.1 版本及以下的。经过推测、实验,Tensorflow 2.2 版本在 Linux 上也可以正常运作,而且支持 python 3.5 - python 3.8(图片里是 python 3.5 - python 3.7)。
最后我选择了这个环境:Python 3.7、CUDA 10.1、cuDNN 7.6.5,另外 PyTorch 也支持该环境。
安装 CUDA 10.1:
$ yay -S cuda-10.1
安装 cuDNN 7.6.5:
$ yay -S cudnn7-cuda10.1
Tensorflow
刚开始安装了 Tensorflow 2.3,但发现 2.3 版本无法调用显卡,所以重新安装 Tensorflow 2.2。
安装 Tensorflow 2.2:
$ sudo pip install tensorflow==2.2
安装完成后进入 Python 环境,测试是否安装成功及 GPU 是否可用:
import tensorflow as tf
tf.test.is_gpu_available()
如果最后一行输出 True
则 GPU 可用。
PyTorch
进入 PyTorch 官网,选择自己的基础环境,网站会给出适用于该环境的安装命令:
直接复制粘贴该命令到终端进行安装:
$ pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
安装完成后进入 Python 环境,测试是否安装成功及 GPU 是否可用:
import torch
torch.cuda.is_available()
如果输出 True
则 GPU 可用。
PaddlePaddle
进入 PaddlePaddle 官网,选择自己的基础环境,网站会给出适用于该环境的安装命令:
直接复制粘贴该命令到终端进行安装:
$ python -m pip install paddlepaddle-gpu==2.0.1.post101 -f https://paddlepaddle.org.cn/whl/mkl/stable.html
安装完成后进入 Python 环境,测试是否安装成功及 GPU 是否可用:
import paddle
如果最后一行输出 “You are using GPU version Paddle, but your CUDA device is not set properly. CPU device will be used by default.” 则 GPU 不可用,会使用 CPU 来进行运算。
对于 GPU,CUDA,cuDNN的理解
Reference: