Todos los productos
Search
Centro de documentos

Elastic GPU Service:Deploy an NGC container environment for deep learning development

Última actualización: Sep 05, 2026

NVIDIA GPU Cloud (NGC) es un ecosistema de aprendizaje profundo desarrollado por NVIDIA que ofrece acceso gratuito a pilas de software para construir entornos de desarrollo. Este tema explica cómo desplegar un entorno NGC en una instancia acelerada por GPU, con TensorFlow como ejemplo.

Contexto

  • El sitio web de NGC proporciona imágenes de diversas versiones de los principales frameworks de aprendizaje profundo, como Caffe, Caffe2, Microsoft Cognitive Toolkit (CNTK), MXNet, TensorFlow, Theano y Torch. Seleccione una imagen para desplegar un entorno de contenedores NGC según sus necesidades. Este tema utiliza TensorFlow como ejemplo.

  • Alibaba Cloud ofrece imágenes de contenedores NGC optimizadas para GPU NVIDIA Pascal en Alibaba Cloud Marketplace. Puede seleccionar estas imágenes al crear instancias aceleradas por GPU para desplegar rápidamente entornos de contenedores NGC con frameworks de aprendizaje profundo optimizados y actualizados periódicamente.

Límites

Los entornos NGC se pueden desplegar en instancias de las siguientes familias:

  • gn5i, gn6v, gn6i, gn6e, gn7i, gn7e y gn7s

  • ebmgn6i, ebmgn6v, ebmgn6e, ebmgn7i y ebmgn7e

Para obtener más información, consulte GPU-accelerated compute-optimized instance families.

Requisitos previos

Nota

Antes de empezar, asegúrese de haber creado una cuenta de NGC en el sitio web de NGC.

Obtenga la URL de la imagen del contenedor de TensorFlow antes de comenzar.

  1. Inicie sesión en el sitio web de NGC.

  2. En el cuadro de búsqueda, introduzca TensorFlow.

    En los resultados de búsqueda, haga clic en la tarjeta del contenedor TensorFlow.

  3. En la página de TensorFlow, haga clic en la pestaña Tags y copie la ruta de la versión deseada de la imagen del contenedor de TensorFlow.

    En este ejemplo, la URL de la imagen 22.05-tf1-py3 es nvcr.io/nvidia/tensorflow:22.05-tf1-py3, que utilizará para descargar la imagen en una instancia acelerada por GPU.

    Importante

    La versión de CUDA en la imagen de TensorFlow debe coincidir con la versión del controlador de la instancia acelerada por GPU. De lo contrario, el despliegue fallará. Para obtener información sobre la compatibilidad de versiones, consulte las Notas de la versión de TensorFlow.

Procedimiento

El siguiente ejemplo utiliza una instancia gn7i para desplegar un entorno NGC.

  1. Cree una instancia acelerada por GPU.

    Para obtener más información, consulte Create an instance on the Custom Launch tab. Configure los siguientes parámetros clave:

    Parámetro

    Descripción

    Region

    Seleccione una región que ofrezca instancias aceleradas por GPU.

    Para comprobar la disponibilidad de instancias aceleradas por GPU en cada región, consulte Tipos de instancia disponibles por región.

    Instance

    Seleccione un tipo de instancia. En este ejemplo se utiliza gn7i.

    Images

    1. En la pestaña Marketplace Images, haga clic en Select from Alibaba Cloud Marketplace.

    2. En el cuadro de diálogo que aparece, introduzca NVIDIA GPU Cloud Virtual Machine Image y haga clic en Search.

    3. Busque la imagen y haga clic en Use.

    Images

    Seleccione Marketplace Images.

    Nota

    Si no se asigna ninguna dirección IP pública, asocie una dirección IP elástica (EIP) a la instancia después de crearla. Para obtener más información, consulte Associate one or more EIPs with an instance.

    Select from Alibaba Cloud Marketplace

    Seleccione un security group con el puerto TCP 22 habilitado. Si su instancia requiere HTTPS o Deep Learning GPU Training System (DIGITS) 6, habilite también el puerto TCP 443 para HTTPS o el puerto TCP 5000 para DIGITS 6.

  2. Utilice uno de los métodos descritos en la siguiente tabla para conectarse a la instancia.

    Método

    Referencias

    Workbench

    Connect to a Linux instance by using a password or key

    VNC

    Connect to an instance by using VNC

  3. Ejecute el comando nvidia-smi para consultar la información de la GPU actual.

    La salida muestra que la Driver Version es 515.48.07, compatible con CUDA 11.7 según lo requiere la imagen de TensorFlow 22.05-tf1-py3.

    root@xxxszfZ:~# nvidia-smi
    Sun Apr  7 11:01:55 2024
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 515.48.07    Driver Version: 515.48.07    CUDA Version: 11.7     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  NVIDIA A10          On   | 00000000:00:07.0 Off |                    0 |
    | N/A   32C    P8    14W / 150W |      2MiB / 23028MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
  4. Ejecute el siguiente comando para descargar la imagen del contenedor de TensorFlow:

    docker pull nvcr.io/nvidia/tensorflow:22.05-tf1-py3
    Importante

    La descarga de la imagen del contenedor de TensorFlow puede tardar bastante tiempo.

  5. Ejecute el siguiente comando para consultar la información de la imagen del contenedor de TensorFlow descargada:

    docker image ls

    La columna TAG muestra 22.05-tf1-py3, lo que confirma que la imagen se descargó correctamente.

    root@xxx lz:~# docker image ls
    REPOSITORY                    TAG              IMAGE ID       CREATED        SIZE
    nvcr.io/nvidia/tensorflow     22.05-tf1-py3    7c92d95961e9   2 years ago    14.4GB
  6. Ejecute el siguiente comando para desplegar el entorno de desarrollo de TensorFlow mediante la ejecución del contenedor:

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

    Si la operación se completa correctamente, se mostrará una salida similar a la siguiente:

    ================
    == TensorFlow ==
    ================
    NVIDIA Release 22.05-tf1 (build 18410160)
    TensorFlow Version 1.15.5
    Container image Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.
    Copyright 2017-2020 The TensorFlow Authors.  All rights reserved.
    NVIDIA Deep Learning Profiler (dlprof) Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.
    Various files include modifications (c) NVIDIA CORPORATION.  All rights reserved.
    NVIDIA modifications are covered by the license terms that apply to the underlying project or file.
    NOTE: MOFED driver for multi-node communication was not detected.
          Multi-node communication performance may be reduced.
  7. Ejecute los siguientes comandos en secuencia para realizar una prueba sencilla de 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())
    

    Si TensorFlow carga el dispositivo GPU como se espera, se imprimirá la cadena Hello, TensorFlow!, como se muestra en la siguiente salida.

    2024-08-21 04:17:14.076698: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1351] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 20427 MB memory) -> physical GPU (device: 0, name: NVIDIA A10, pci bus id: 0000:00:07.0, compute capability: 8.6)
    2024-08-21 04:17:14.077064: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1082] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
    2024-08-21 04:17:14.077724: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1351] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 20427 MB memory) -> physical GPU (device: 1, name: NVIDIA A10, pci bus id: 0000:00:08.0, compute capability: 8.6)
    2024-08-21 04:17:14.078021: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1082] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
    2024-08-21 04:17:14.078688: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1351] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:2 with 20427 MB memory) -> physical GPU (device: 2, name: NVIDIA A10, pci bus id: 0000:00:09.0, compute capability: 8.6)
    2024-08-21 04:17:14.078955: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1082] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
    2024-08-21 04:17:14.079624: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1351] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:3 with 20427 MB memory) -> physical GPU (device: 3, name: NVIDIA A10, pci bus id: 0000:00:0a.0, compute capability: 8.6)
    Hello, TensorFlow!
    >>>
  8. Guarde la imagen de TensorFlow modificada.

    1. En la página de conexión de la GPU, abra una nueva ventana para la conexión remota.

    2. Ejecute el siguiente comando para consultar el CONTAINER_ID:

      docker ps
      root@xxxg9dZ:~# docker ps
      CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS          PORTS                                NAMES
      f76a5a4347df   nvcr.io/nvidia/tensorflow:22.05-tf1-py3      "/opt/nvidia/nvidia_..."  46 seconds ago   Up 45 seconds   6006/tcp, 6064/tcp, 8888/tcp         reverent_brattain
      68xxxxxxfba    nvcr.io/nvidia/tensorflow:22.05-tf1-py3      "/opt/nvidia/nvidia_..."  9 minutes ago    Up 9 minutes    6006/tcp, 6064/tcp, 8888/tcp         jolly_liskov
    3. Ejecute el siguiente comando para guardar la imagen de TensorFlow modificada:

      # Replace CONTAINER_ID with the container ID that is queried by using the docker ps command, such as f76a5a4347d. 
      docker commit   -m "commit docker" CONTAINER_ID  nvcr.io/nvidia/tensorflow:20.01-tf1-py3
      Importante

      Asegúrese de guardar la imagen de TensorFlow modificada. De lo contrario, los cambios podrían perderse la próxima vez que inicie sesión en la instancia.