文档

在GPU实例上部署NGC环境

更新时间:

NGC(NVIDIA GPU CLOUD)是NVIDIA开发的一套深度学习生态系统,方便您免费访问深度学习软件堆栈,建立适合深度学习的开发环境。本文以搭建TensorFlow深度学习框架为例,为您介绍如何在GPU实例上部署NGC环境。

背景信息

  • NGC作为一套深度学习生态系统,阿里云在镜像市场提供了针对NVIDIA Pascal GPU优化的NGC容器镜像。通过部署镜像市场的NGC容器镜像,您能简单快速地部署NGC容器环境,即时访问优化后的深度学习框架,极大程度缩减产品开发以及业务部署的时间,实现开发环境的预安装;同时支持调优后的算法框架,并且保持持续更新。

  • NGC网站提供了目前主流深度学习框架不同版本的镜像(例如Caffe、Caffe2、CNTK、MxNet、TensorFlow、Theano、Torch),您可以选择需要的镜像部署环境。

操作步骤

支持部署NGC环境的实例规格族包括:

  • gn5i、gn6v、gn6i、gn6e、gn7i、gn7e、gn7s

  • ebmgn6i、ebmgn6v、ebmgn6e、ebmgn7i、ebmgn7e、ebmgn7ex、sccgn7ex

说明

在操作本文前,请您提前在NGC网站注册自己的NGC账号。

本文以gn6i实例为例,为您演示创建GPU实例和部署NGC环境的操作步骤。

  1. 创建一台gn6i实例。

    具体操作,请参见自定义购买实例。其主要配置参数说明如下:

    配置参数

    说明

    地域

    选择华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华东1(杭州)、华东2(上海)、华南1(深圳)、华南3(广州)、华南 2(河源)、西南1(成都)。

    实例

    选择gn6i实例规格。

    镜像

    1. 云市场镜像页签下,单击从云市场获取更多选择(含操作系统)

    2. 在弹出的镜像市场页面,输入NVIDIA GPU Cloud VM Image并单击搜索

    3. 找到对应镜像后并单击使用

    公网IP

    选择分配公网IPv4地址

    说明

    如果这里没有分配公网IP地址,则在实例创建成功后,需要绑定EIP地址。具体操作,请参见绑定EIP

    安全组

    选择一个安全组。安全组里必须开放TCP 22端口。如果您的实例需要支持HTTPS或DIGITS 6服务,必须开放TCP 443(用于HTTPS)或TCP 5000(用于DIGITS 6)端口。

  2. 选择以下任一方式连接GPU实例。

    连接方式

    操作指引

    Workbench

    通过密码或密钥认证登录Linux实例

    VNC

    使用VNC登录实例

  3. 运行nvidia-smi命令。

    您能查看当前GPU的信息,包括GPU型号、驱动版本等,如下图所示。

    nvidia-smi.png

  4. 获取TensorFlow镜像路径。

    1. 登录NGC网站

    2. 在搜索区域输入TensorFlow后,选择并单击TensorFlow

      Tensorflow.jpg

    3. TensorFlow页面,单击Tags页签,复制对应版本的TensorFlow镜像。

      以下载TensorFlow20.01-tf1-py3镜像为例,TensorFlow镜像路径为nvcr.io/nvidia/tensorflow:20.01-tf1-py3

      Tensorflow路径.png

  5. 在GPU实例远程登录页面,执行以下命令,下载对应版本的TensorFlow镜像。

    docker pull nvcr.io/nvidia/tensorflow:20.01-tf1-py3
    重要

    下载TensorFlow镜像可能需要较长时间,请您耐心等待。

  6. 执行以下命令,查看下载的TensorFlow镜像。

    docker image ls

    已下载.png

  7. 执行以下命令,运行容器完成TensorFlow开发环境的部署。

    docker run --gpus all --rm -it nvcr.io/nvidia/tensorflow:20.01-tf1-py3

    运行容器.png

  8. 依次执行以下命令,简单测试TensorFlow。

    python
    import tensorflow as tf
    hello = tf.constant('Hello, TensorFlow!')
    with tf.compat.v1.Session() as sess:
        result = sess.run(hello)
        print(result.decode())
     

    如果TensorFlow正确加载了GPU设备,会成功返回Hello, TensorFlow!字符串,如下图所示。

    运行成功.png

  9. 保存修改后的TensorFlow镜像。

    1. 执行以下命令,查询容器ID(即CONTAINER_ID)。

      docker ps

      image

    2. 执行以下命令,保存修改后的TensorFlow镜像。

      # CONTAINER_ID请替换为通过docker ps命令查询的容器ID,例如619f7b715da5。
      docker commit   -m "commit docker" CONTAINER_ID  nvcr.io/nvidia/tensorflow:20.01-tf1-py3
      重要

      请您妥善保存修改后的TensorFlow镜像,否则会导致下次登录时配置丢失。

  • 本页导读 (1)