在GPU实例上部署NGC环境

2024-07-30   访问量:1016

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实例规格。

    镜像


    公网IP

    选择分配公网IPv4地址

    说明

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

    安全组

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

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

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

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

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



    连接方式

    操作指引

    Workbench

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

    VNC

    使用VNC登录实例

  3. 运行nvidia-smi命令。

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


  4. 获取TensorFlow镜像路径。

    1. 登录NGC网站

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


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

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


  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!字符串,如下图所示。

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

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

       

      docker ps



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

       

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

      重要

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




热门文章
更多>