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环境的操作步骤。
创建一台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)端口。 |
在云市场镜像页签下,单击从云市场获取更多选择(含操作系统)。
在弹出的镜像市场页面,输入NVIDIA GPU Cloud VM Image并单击搜索。
找到对应镜像后并单击使用。
选择以下任一方式连接GPU实例。
连接方式 | 操作指引 |
Workbench | |
VNC |
运行nvidia-smi
命令。
您能查看当前GPU的信息,包括GPU型号、驱动版本等,如下图所示。
获取TensorFlow镜像路径。
登录NGC网站。
在搜索区域输入TensorFlow后,选择并单击TensorFlow。
在TensorFlow页面,单击Tags页签,复制对应版本的TensorFlow镜像。
以下载TensorFlow20.01-tf1-py3
镜像为例,TensorFlow镜像路径为nvcr.io/nvidia/tensorflow:20.01-tf1-py3。
在GPU实例远程登录页面,执行以下命令,下载对应版本的TensorFlow镜像。
docker pull nvcr.io/nvidia/tensorflow:20.01-tf1-py3
重要
下载TensorFlow镜像可能需要较长时间,请您耐心等待。
执行以下命令,查看下载的TensorFlow镜像。
docker image ls
执行以下命令,运行容器完成TensorFlow开发环境的部署。
docker run --gpus all --rm -it nvcr.io/nvidia/tensorflow:20.01-tf1-py3
依次执行以下命令,简单测试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!
字符串,如下图所示。
保存修改后的TensorFlow镜像。
执行以下命令,查询容器ID(即CONTAINER_ID
)。
docker ps
执行以下命令,保存修改后的TensorFlow镜像。
# CONTAINER_ID请替换为通过docker ps命令查询的容器ID,例如619f7b715da5。docker commit -m "commit docker" CONTAINER_ID nvcr.io/nvidia/tensorflow:20.01-tf1-py3
重要
请您妥善保存修改后的TensorFlow镜像,否则会导致下次登录时配置丢失。