You need to enable JavaScript to run this app.
导航

GPU-部署NGC环境

最近更新时间2023.12.07 17:10:25

首次发布时间2022.11.21 14:18:44

本文介绍如何在Linux实例上基于NGC部署TensorFlow。

NGC介绍

NGC(NVIDIA GPU CLOUD)是NVIDIA开发的一套深度学习容器库,具有强大的性能和良好的灵活性,可以帮助科学家和研究人员快速构建、训练和部署神经网络模型。
NGC官网提供了当前主流深度学习框架的镜像,例如Caffe、TensorFlow、Theano、Torch等。

软件版本

  • 操作系统:本文以Ubuntu 18.04为例。
  • NVIDIA驱动:
    • GPU驱动:用来驱动NVIDIA GPU卡的程序。本文以470.57.02为例。
    • CUDA:使GPU能够解决复杂计算问题的计算平台。本文以CUDA 11.4为例。
    • CUDNN:深度神经网络库,用于实现高性能GPU加速。本文以8.2.4.15为例。
  • TensorFlow:深度学习框架。

前提条件

  • 您已购买Linux实例,并勾选“后台自动安装GPU驱动”,即可使实例在启动时自动安装符合上述版本的NVIDIA驱动,从创建到驱动安装完成总耗时约 15 到 20 分钟,请耐心等待。具体操作请参见创建GPU计算型实例
  • 您已为Linux实例绑定公网IP,使其具备访问公网的能力。如未绑定,请参见绑定公网IP
  • 如果您需要使用HTTPS或DIGITS 6服务,则需要在实例安全组入方向添加如下规则:
    • 放行端口TCP 443(用于HTTPS)或TCP 5000(用于DIGITS 6)端口。

步骤一:查看驱动版本已安装成功

  1. 远程连接云服务器并登录,具体操作请参考登录Linux实例小节。
  2. 执行以下命令,查看GPU驱动。
    nvidia-smi
    回显如下,表示已安装成功。
    alt
  3. 执行以下命令,查看CUDA驱动。
    /usr/local/cuda/bin/nvcc -V
    回显如下,表示已安装成功。
    alt

步骤二:安装nvidia-docker

  1. 依次执行以下命令,设置Docker-CE。

    $ curl https://get.docker.com | sh \
      && sudo systemctl --now enable docker
    
  2. 依次执行以下命令,设置包存储库和 GPG 密钥。

    $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    
  3. 执行以下命令,安装nvidia-docker2。

    sudo apt-get update
    sudo apt-get install -y nvidia-docker2
    
  4. 执行以下命令,,配置Docker守护进程以识别NVIDIA容器运行时。
    sudo nvidia-ctk runtime configure --runtime=docker

  5. 执行以下命令,重启Docker守护进程完成安装。
    sudo systemctl restart docker

  6. 执行以下命令,通过运行基本CUDA容器测试nvidia-docker2已安装成功。
    sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
    回显如下,表示安装成功。
    alt

步骤三:获取NGC镜像

  1. 登录NGC网站,注册NGC账号。

  2. 获取NGC API key并保存。

    1. 单击账号名称,下拉选择“Setup”。
    2. 单击“Get API Key”按钮。
      alt
    3. 单击页面右上角“Generate API Key“,单击“Confirm”按钮,API展示在页面最下方。
      alt
  3. 登录实例,执行以下命令,根据提示输入账号名(固定为$oauthtoken)和API Key,登录到NGC容器环境中。
    docker login nvcr.io
    回显如下,表示登录NGC容器环境成功。
    alt

  4. 登录NGC官网,在左侧导航栏选择“Containers”。
    alt

  5. 在搜索框中输入“TensorFlow”,并单击NVIDIA L4T TensorFlow卡片的“Copy Image Path”,即可自动复制最新版本TensorFlow的镜像地址。
    alt

  6. 依次执行以下命令,拉取镜像并查看下载的镜像文件。

    docker pull nvcr.io/nvidia/clara-agx/agx-tensorflow:21.05-tf1-py3 //链接请替换为上一步中复制的TensorFlow镜像地址
    docker images //查看下载的镜像,回显如下,表明拉取成功
    

    alt

步骤四:部署TensorFlow开发环境

执行以下命令,运行容器。
nvidia-docker run --rm -it nvcr.io/nvidia/tensorflow:18.03-py3
出现如下回显,表明部署成功。
alt

步骤五:验证测试

  1. 执行python命令,若环境正常,则直接进入python环境。
  2. 在Python环境下依次执行以下命令。
    import tensorflow as tf
    hello = tf.constant('Hello, TensorFlow!')
    sess = tf.Session()
    sess.run(hello)
    
    回显如下,表示TensorFlow环境搭建成功。
    alt