《带你学AI·深度学习环境配置》Ubuntu18.04一步步安装CUDA、Python、Pytorch&TensorFlow&MXNet

  • A+
所属分类:深度学习

准备

示例环境:

Ubuntu18.04

需要安装的工具有:

  1. 英伟达驱动(连接 GPU 与主机)
  2. CudaToolKit(GPU 加速依赖)
  3. Miniconda(安装 Python 与管理 Python 环境)
  4. Pytorch、TensorFlow 与 MXNet 的 GPU 版本安装

操作

安装英伟达驱动

Ubuntu18.04:Bash 运行

sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get install --no-install-recommends nvidia-driver-450
复制代码

Ubuntu16.04:Bash 运行

sudo apt-get install gnupg-curl
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
sudo apt-get install --no-install-recommends nvidia-418
复制代码

然后重启系统,运行 nvidia-smi 看是否正确运行出如下界面:下面只是示例,应该 NVIDIA-SMI 后版本与上面安装的一致(nvidia-driver-450)

《带你学AI·深度学习环境配置》Ubuntu18.04一步步安装CUDA、Python、Pytorch&TensorFlow&MXNet

安装 CudaToolKit

以 cuda11.0,Ubuntu18.04 举例

  1. 百度搜索:cuda11.0

《带你学AI·深度学习环境配置》Ubuntu18.04一步步安装CUDA、Python、Pytorch&TensorFlow&MXNet

点击第一个链接进入(如果无法打开请科学上网解决):CUDA Toolkit 11.0 Download | NVIDIA Developer

《带你学AI·深度学习环境配置》Ubuntu18.04一步步安装CUDA、Python、Pytorch&TensorFlow&MXNet

Ubuntu16.04 以此选择:Linux->x86_64->Ubuntu->16.04->deb(local)

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-ubuntu1604.pin
sudo mv cuda-ubuntu1604.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda-repo-ubuntu1604-11-0-local_11.0.2-450.51.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604-11-0-local_11.0.2-450.51.05-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1604-11-0-local/7fa2af80.pub
sudo apt-get -y install cuda
复制代码

Ubuntu18.04 以此选择:Linux->x86_64->Ubuntu->18.04->deb(local),如图所示,复制 Installation Instructions 使用 Bash 执行:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda-repo-ubuntu1804-11-0-local_11.0.2-450.51.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-0-local_11.0.2-450.51.05-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-0-local/7fa2af80.pub
sudo apt-get -y install cuda
复制代码

小宋说:这一步主要会出问题的是第三步,这一步是下载完整安装包,2GB 左右。熟悉 Bash 指令小伙伴可以知道其实这是下载 developer.download.nvidia.com/compute/cud… 这个链接文件的指令。这一步可以使用迅雷等工具复制链接加速下载,后复制到 bash 运行路径下(第三步就不用再 bash 下执行了),后执行第四步安装。

Miniconda 安装

建议使用清华源,地址:mirrors.tuna.tsinghua.edu.cn/anaconda/mi…

网页翻到最后,下载对应系统下最新版即可(注意选择 x86_64 后缀):Miniconda3-py38_4.9.2-Linux-x86_64.sh

《带你学AI·深度学习环境配置》Ubuntu18.04一步步安装CUDA、Python、Pytorch&TensorFlow&MXNet

下载后使用在 bash 下执行一下(注意文件所在路径):

bash Miniconda3-py38_4.9.2-Linux-x86_64.sh
复制代码

遇到选项属于 Yes,其他默认即可。安装完成后新建一个 Terminal,然后 conda 才会生效。

Pytorch 与 TensorFlow 的 GPU 版本安装

参照:『技术随手学』pip conda 替换清华源 Windows 与 Ubuntu 通用

  1. 首先对 conda 与 pip 换国内源用以加速,bash 执行

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
复制代码

如果以下步骤遇到 CondaHTTPError: HTTP 000 CONNECTION FAILED 问题,可以参考这个博客解决:

『技术随手学』解决 windows 与 ubuntu 平台 CondaHTTPError: HTTP 000 CONNECTION FAILED 问题

  1. 使用 conda 创建一个深度学习 Python 环境,bash 执行:

conda create -n dl_py37 python=3.7
复制代码

后激活 Python 环境,注意如果执行后 (base) [email protected]:~#  -> (dl_py37) [email protected]:~#

conda activate dl_py37
复制代码

  1. 安装 Pytoch1.7,bash 执行(建议 cudatoolkit 使用 10.1 用来支持 TensorFlow2.3):

conda install pytorch torchvision torchaudio cudatoolkit=10.1
复制代码

  1. 安装 TensorFlow,bash 执行(注意 tensorflow==2.3,是 ==,tensorflow2.3 已经默认支持 GPU,所以不用指定):

pip install tensorflow==2.3
复制代码

  1. 安装 MXNet,bash 执行(注意 cu101 代表是 cudatoolkit=10.1):

pip install mxnet-cu101==1.7
复制代码

  1. 测试 Pytorch、TensorFlow 与 MXNet

参照:『AI 实践学』测试深度学习框架 GPU 版本是否正确安装方法: TensorFlow,PyTorch,MXNet,PaddlePaddle

1)TensorFlow

TensorFlow1.x 与 TensorFlow2.x 测试方法是一样的,代码如下:

print(tf.test.is_gpu_available())
复制代码

上述代码保存为. py 文件,使用需要测试环境即可运行,输出:上面是一下 log 信息,关键的是的最后 True,表示测试成功

2020-09-28 15:43:03.197710: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2020-09-28 15:43:03.204525: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2020-09-28 15:43:03.232432: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce RTX 2070 with Max-Q Design major: 7 minor: 5 memoryClockRate(GHz): 1.125
2020-09-28 15:43:03.235352: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
2020-09-28 15:43:03.242823: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_100.dll
2020-09-28 15:43:03.261932: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_100.dll
2020-09-28 15:43:03.268757: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_100.dll
2020-09-28 15:43:03.297478: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_100.dll
2020-09-28 15:43:03.315410: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_100.dll
2020-09-28 15:43:03.330562: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-09-28 15:43:03.332846: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2020-09-28 15:43:05.198465: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-09-28 15:43:05.200423: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 0
2020-09-28 15:43:05.201540: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0: N
2020-09-28 15:43:05.203863: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/device:GPU:0 with 6306 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2070 with Max-Q Design, pci bus id: 0000:01:00.0, compute capability: 7.5)
复制代码

上面是一下 log 信息,关键的是的最后 True,表示测试成功。其实我们还可以发现很多 GPU 信息

GPU 型号:name: GeForce RTX 2070 with Max-Q Design

cuda 版本:Successfully opened dynamic library cudart64_100.dll(10.0)

cudnn 版本:Successfully opened dynamic library cudnn64_7.dll(7.x)

GPU 数目:Adding visible gpu devices: 0(1)

GPU 显存:/device:GPU:0 with 6306 MB memory(8G)

2)PyTorch

PyTorch 与 TensorFlow 测试方法类似,都有 GPU 测试接口。PyTorch 的 GPU 测试代码如下:

print(torch.cuda.is_available())
复制代码

上述代码保存为. py 文件,使用需要测试环境即可运行,输出:True,表示测试成功

True
复制代码

可以看出 PyTorch 输出信息简洁很多。其实 TensorFlow 的 log 信息输出也是可以控制的。

3)MXNet

MXNet 与 PyTorch,TensorFlow 测试方法不同,由于 MXNet'没有 GPU 测试接口(或者说笔者没有找到)。所以 MXNet 的 GPU 测试代码采用 try-catch 捕捉异常的方法来测试,代码如下:

_ = mx.nd.array(1,ctx=mx.gpu(0))
复制代码

上述代码保存为. py 文件,使用需要测试环境即可运行,输出:True,表示测试成功

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin