Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

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

 

本文提供一个极简一步步安装 CUDA&Python&Pytorch 示例,此示例基于 Ubuntu18.04,Ubuntu16 及 Windows10 可以参考此示例做相应修改。

 

准备

 

示例环境:

 

Ubuntu18.04

 

需要安装的工具有:

 

 

    1. 英伟达驱动(连接 GPU 与主机)

 

    1. CudaToolKit(GPU 加速依赖)

 

    1. Miniconda(安装 Python 与管理 Python 环境)

 

    1. 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)

 

 

安装 CudaToolKit

 

以 cuda11.0,Ubuntu18.04 举例

 

 

    1. 百度搜索:cuda11.0

 

 

 

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

 

 

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

 

 

下载后使用在 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 ,表示测试成功

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注