Intel® AI DevCloud

Hay computación en nube gratuita disponible para los miembros de Intel® AI Developer Program Use Intel® AI DevCloud equipado con procesadores escalables Intel® Xeon® para sus necesidades de cómputo de inferencia y capacitación en aprendizaje profundo.

Beneficios

  • 30 días de acceso gratuito
  • Acceso extendido (hasta seis meses) con una propuesta de investigación aprobada
  • 200 GB de almacenamiento en archivo
  • Acceda a un clúster remoto de los procesadores escalables Intel® Xeon® más recientes con aceleración de IA integrada.

Asistencia

Nuestro equipo monitorea el foro de la comunidad de lunes a viernes de 9:00 a.m. a 5:00 p.m., hora de verano del Pacífico.

Foro para desarrolladores de IA

Frameworks y herramientas disponibles

  • Intel® Optimization for TensorFlow*
  • MXNet framework
  • Intel® Optimization for Caffe*
  • Intel® Optimization for Theano*
  • Biblioteca Keras
  • Intel® Distribution for Python* (incluye NumPy, SciPy y scikit-learn*)
  • neon™ Framework

Al enviar el presente formulario, usted confirma que es un adulto de 18 años o mayor y acepta compartir su información personal con Intel para su uso relacionado con esta solicitud comercial. Los sitios web y las comunicaciones de Intel están sujetos a nuestro Aviso de privacidad y los Términos de uso.

Preguntas frecuentes

General

Examine estas preguntas y respuestas generales como una introducción a Intel AI DevCloud e inteligencia artificial.

¿Cómo puedo mejorar mi desempeño en aprendizaje profundo cuando mi marco se ejecuta en segundo plano?
En algunas situaciones, el código de aprendizaje profundo con parámetros predeterminados no aprovecha plenamente toda la capacidad de cómputo de la máquina subyacente en la cual se ejecuta, especialmente cuando el código se ejecuta en procesadores escalables Intel® Xeon®. Intel creó técnicas de optimización que posibilitan un desempeño óptimo de la CPU para marcos populares como Caffe* y TensorFlow*. Para obtener más información, consulte Consejos para marcos de aprendizaje profundo populares en CPU.
¿Quién puede solicitar acceso a Intel AI DevCloud?
Los desarrolladores, científicos de datos, profesores, estudiantes, empresas jóvenes y otros que sean miembros de Intel® AI Academy son elegibles para solicitar acceso.
¿Cómo puedo convertirme en miembro de Intel® AI Developer Program?
Puede unirse solicitando acceso o convertirse en miembro registrándose aquí.
¿Qué sucede una vez que he obtenido acceso?
Una vez que haya obtenido acceso, inicie sesión en un nodo principal basado en Linux* de una granja de lotes. Allí podrá colocar su código y sus datos, compilarlos y luego enviar los trabajos a una cola. Cuando el trabajo en la cola esté terminado, sus resultados estarán en el directorio principal ($HOME).
  • Los trabajos están programados en los procesadores escalables Intel® Xeon®.
  • Cada procesador tiene 24 núcleos con hyperthreading de dos vías.
  • Cada procesador tiene acceso a 96 GB de RAM (DDR4) en plataforma.
  • Solo se ejecutará un trabajo por vez en cualquier procesador.
  • Recibirá una cuota de almacenamiento de archivos de 200 GB.
  • Su directorio principal no está visible para otros usuarios.

Nota: Una vez vencido el período de acceso, se eliminará su directorio principal en el clúster.

No vivo en los EE. UU. ¿De todos modos puedo solicitar acceso a Intel AI DevCloud?
Intel AI DevCloud está disponible para todos los miembros de Intel AI Developer Program, y se puede acceder a él desde cualquier país.
¿Cuánto tengo que pagar para utilizar Intel AI DevCloud?
Nada. Es gratis para los miembros de Intel® AI Developer Program. Unirse a Intel AI Developer Program también es gratis.
¿CUDA* está instalado en Intel AI DevCloud?
No. Intel AI DevCloud está compuesto por procesadores Intel® Xeon® Gold 6128 de alto desempeño, pero no incluye CUDA*.
¿Por qué se me niega el acceso cuando intento ejecutar una instalación de pip <Package_Name>?
Para instalar un paquete utilizando el formato Python* predeterminado, utilice lo siguiente con pip:

parámetro --user

Ejemplo: pip install numpy --user

La otra opción es crear un nuevo entorno Conda*, activarlo y luego realizar las instalaciones de pip* o Conda en ese entorno. Múltiples versiones del mismo paquete en el formato Python predeterminado pueden crear problemas. Para evitar estos problemas, cree entornos de Conda separados para cada actividad.

Realizar trabajos

Para ayudar a los desarrolladores a realizar trabajos en Intel AI DevCloud, escriba las siguientes respuestas en la línea de comandos en Linux*.

¿Cómo puedo verificar si estoy en un nodo de cómputo o nodo de inicio de sesión?
Consulte la indicación de su terminal.

Si muestra [uxxxx@c009 ~]$, está en el nodo de inicio de sesión.

Si muestra algo como [uxxxx@c009-n0xx ~]$, está en el nodo de cómputo.
¿Cómo puedo consultar los registros del trabajo que estoy ejecutando?
Puede verificar los registros de su trabajo en ejecución como se indica a continuación:
  • Para los registros de salida, utilice qpeek:qpeek -o <JOB_ID>
  • Para los registros de errores, utilice qpeek -e <JOB_ID>
¿Cómo puedo consultar los registros de mi trabajo terminado?
Consulte sus registros de trabajos terminados como se indica a continuación:
 
  • Si dio un nombre al enviar un trabajo utilizando qsub, los archivos de registro serán <JOB_NAME>.o<JOB_ID> and <JOB_NAME>.e<JOB_ID>
  • Si no dio un nombre y envió un trabajo como qsub <JOB_SCRIPT>, los archivos de registro son <JOB_ SCRIPT>.o<JOB_ID> y <JOB_ SCRIPT>.e<JOB_ID>
  • Si no dio un nombre y envió un trabajo como <COMMAND> | qsub, los archivos de registro son STDIN.o<JOB_ID> and STDIN.e<JOB_ID>
¿Cómo programo un tiempo real (wall clock time) total en el máximo en Intel AI DevCloud?
En la línea de comandos, escriba una de las siguientes opciones:
  • echo python <sample.py> -l walltime=24:00:00 | qsub
  • Agregue tiempo real (wall time) en la secuencia de comando bash antes de ejecutar en modo qsub: #!/bin/sh#PBS -l walltime=24:00:00 python sample.py
¿Cómo se hace una pregunta a un trabajo?
En la línea de comandos, ingrese:

qpeek -o <JOBID>

Si esto no arroja ningún resultado, es posible que el trabajo se haya completado y qpeek no haya tenido la oportunidad de mirar.

Alternativamente, ejecute qsub con la opción "-k oe":

qsub -k oe my_script

Los errores y las entradas/salidas estándar se arrojarán a su directorio principal. Puede verificar en cualquier momento mientras los trabajos estén en ejecución.

¿Cómo puedo aumentar el tiempo real (wall clock time)?
En la línea de comandos, escriba una de las siguientes opciones:
  • #PBS -l walltime=<10:30>,mem=320kb
  • echo sleep 1000 | qsub -l walltime=<00:30:00>
¿Cómo puedo obtener información completa acerca de un trabajo?
En la línea de comandos, ingrese:

qstat -f <JOBID>

¿Cómo puedo eliminar un trabajo?
En la línea de comandos, ingrese:



qdel <JOBID>

¿Cómo puedo encontrar la arquitectura y las características de los nodos de cómputo disponibles para mí?
Ejecute el siguiente comando en el nodo de inicio de sesión:



pbsnodes

¿Cómo puedo iniciar sesión en un nodo de cómputo?
En la línea de comandos, ingrese:



qsub –I

¿Cómo puedo obtener detalles de los nodos?
En la línea de comandos, ingrese:



pbsnodes -a

¿Por qué se produce un error de memoria al ejecutar comandos?
En la mayoría de los casos, se produce un error de memoria al intentar ejecutar tareas con carga de cómputo intensiva en el nodo de inicio de sesión. En tales casos, inicie sesión en el nodo de cómputo utilizando qsub –I y ejecute los comandos allí.
 
Ejecutar mi trabajo requiere más de 24 horas, pero Intel® AI DevCloud tienen un tiempo real (wall clock time) máximo de 24 horas. ¿Cómo puedo ejecutar mi trabajo en este caso?
El tiempo real (wall clock time) máximo se establece en 24 horas para garantizar una utilización justa para todos de los recursos de los clústeres. Sin embargo, se ofrecen algunas soluciones:
 
  • Guarde el modelo a intervalos o al menos una vez antes de que termine el plazo en tiempo real (wall time). Al finalizar las 24 horas, envíe un nuevo trabajo que cargará el último modelo guardado, y luego inicie el entrenamiento desde ahí.
Al guardar el modelo a intervalos regulares, sus beneficios adicionales incluyen obtener copias de su modelo de entrenamiento de manera anticipada y evaluar el modelo con datos de prueba. Esto también ayuda a comprender cómo se está desempeñando el modelo y realizar cambios con la suficiente antelación en lugar de esperar a que se complete un trabajo largo.
 

Nodo de inicio de sesión versus nodo de cómputo

¿Qué diferencia hay entre el nodo de inicio de sesión y el nodo de cómputo?
El nodo de inicio de sesión utiliza un procesador de propósito general liviano. El nodo de cómputo utiliza un procesador Intel® Xeon® Gold 6128 con capacidad para manejar cargas de trabajo pesadas. Todas las tareas que necesitan mucha memoria y recursos de cómputo deben ejecutarse en el nodo de cómputo y no en el nodo de inicio de sesión.
¿Cómo se colocan el nodo de cómputo y de inicio de sesión en Intel® AI DevCloud?
El siguiente diagrama ilustra la arquitectura general de Intel® AI DevCloud:

Diagrama de la arquitectura de Intel A I Dev Cloud
¿Por qué no puedo realizar tareas con carga de cómputo intensiva en el nodo de inicio de sesión?
El nodo de inicio de sesión es liviano y no tiene capacidad para manejar cargas de trabajo grandes. Está destinado principalmente a guardar sus datos. Por lo tanto, se aplica un límite a la memoria y la capacidad de cómputo en los nodos de inicio de sesión. Esto garantiza que se produzca un error de memoria si usted intenta ejecutar tareas pesadas en el nodo de inicio de sesión.
¿Cómo puedo verificar si estoy en un nodo de cómputo o nodo de inicio de sesión?
Usted se encuentra en el nodo de cómputo si las indicaciones muestran n0xx, como aparece en la siguiente imagen:

Ejemplo de indicador de nodo de cómputo

Si el indicador no muestra n0xx, está en el nodo de inicio de sesión, como se ve en la siguiente imagen:

Ejemplo de nodo de inicio de sesión
¿Cómo puedo ejecutar trabajos con carga de cómputo intensiva?
Puede ejecutar trabajos en el nodo de cómputo con cualquiera de las siguientes opciones:
 
  • Envíe un trabajo utilizando qsub <JOB_SCRIPT> desde el nodo de inicio de sesión. El trabajo espera en la cola hasta que el programador lo recoge y finalmente lo ejecuta en el nodo de cómputo.
  • Ejecute el trabajo en modo interactivo utilizando qsub –I. Esto crea un trabajo con una configuración predeterminada y le brinda una terminal desde el nodo de cómputo. Puede ejecutar los comandos directamente allí.
  • Use JupyterHub*. Para hacerlo, vaya a Colfax Research. Regístrese e inicie el servidor. Cree un nuevo notebook y ejecute el código desde allí.
  • Use qsub de JupyterHub. Para hacerlo, vaya a Colfax Research. Regístrese e inicie el servidor. Cree un nuevo notebook. Envíe el trabajo utilizando el comando qsub. Encontrará información detallada en el archivo Welcome.ipynb en la carpeta principal de Intel AI DevCloud.
  • Ejecute directamente desde la terminal JupyterHub. Para hacerlo, vaya a Colfax Research. Regístrese e inicie el servidor. Inicie una nueva terminal, que sea un nodo de cómputo en el cual pueda ejecutar directamente los comandos de un trabajo con carga de cómputo intensiva en la terminal. (Para obtener más información acerca de cómo iniciar una nueva terminal, consulte Terminal JupyterHub versus terminal SSH).
  • Cómo utilizar qsub desde la terminal JupyterHub. Para hacer esto, envíe el trabajo utilizando “qsub <JOB_SCRIPT>” desde la terminal JupyterHub. Esto envía el trabajo, y el trabajo espera en la cola hasta que el programador la recoge y la ejecuta en el nodo de cómputo.
¿Cuál es la diferencia entre el modo qsub en lote y el modo qsub interactivo para el envío de trabajos?
En el modo qsub en lote, los trabajos se crean y se envían utilizando el comando “qsub <JOB_SCRIPT>” desde el nodo de inicio de sesión. <JOB_SCRIPT> contiene los comandos del trabajo.

En el modo qsub interactivo, se crea un trabajo utilizando el comando “qsub –I”.

Luego de ejecutar este comando recibirá una nueva terminal del nodo de cómputo asignado a su trabajo. Entonces podrá ejecutar los comandos del trabajo directamente en la terminal.
¿Cómo se ingresa al modo qsub interactivo?
Cuando se utiliza SSH (shell seguro) para acceder a Intel AI DevCloud con una terminal PuTTY*/Linux*, ingrese primero al nodo de inicio de sesión. Para ejecutar un trabajo en modo qsub interactivo, escriba qsub –I. Esto crea un nuevo trabajo y ofrece una terminal desde el nodo de cómputo asignado a este trabajo. Vea la siguiente imagen:

imagen de ejemplo de pantalla de terminal
¿Cuándo debería utilizar el modo qsub y cuándo debería utilizar el modo qsub interactivo?
Use el modo qsub en lote cuando tenga un código de ejecución probado y deba ejecutarlo y guardar los resultados.

Use el modo qsub interactivo cuando todavía esté en proceso de crear un código de ejecución y prevea errores.

Puede repararlos simultáneamente, como si estuviera haciéndolo en una máquina local.
¿Cómo consulto el estatus del trabajo y el modo qsub de inicio de sesión en comparación con el modo qsub interactivo?
En el modo qsub, puede enviar el trabajo, trabajar en otras cosas y luego regresar para ver si hay actualizaciones. Controle el estatus del trabajo con el comando qstat, y consulte los registros utilizando el comando log file/qpeek.

En el modo qsub interactivo, cuando haya caducado la terminal, se elimina el registro escrito mientras se ejecutaban el trabajo o el comando.

Ajuste las configuraciones específicas de la GPU para una CPU

¿Hay compatibilidad de TensorFlow* con la unidad de procesamiento de gráficos (GPU) en Intel® AI DevCloud?
Intel® AI DevCloud es un clúster de CPUs de alto desempeño con procesadores escalables Intel® Xeon®. Queremos asegurarnos de que el código escrito para un entorno específico de GPU sea convertido para que sea posible la ejecución con CPUs.
¿Cómo convierto las configuraciones específicas de una GPU para una CPU?
Puede hacerlo de dos maneras:
 
  • Al desarrollar el marco, cambie los valores de configuración de GPU a CPU
  • Comente o cambie los snippets de código que se escriben específicamente para las GPU.
¿Cómo cambio el snippet de código de GPU a CPU en los marcos de aprendizaje profundo?
Para C++:

Elimine las siguientes líneas de código en el archivo detection_loss_layer.cpp (folder: src/caffe/layers):

#ifdef CPU_ONLY STUB_GPU(DetectionLossLayer); #endif

Para PyTorch*:

Elimine las ocurrencias de .cuda para cambiar de una GPU a una CPU.

 

Por ejemplo:

if torch.cuda.available():

import torch.cuda

else:

import torch

Para comentar o cambiar los snippets de código que se escriben específicamente para las GPU, vea algunos ejemplos en GitHub para Caffe*-Yolo*.
¿Cuáles son los cambios de configuración que debo establecer al desarrollar Caffe* en modo CPU?
  1. Clone Intel® Optimization for Caffe* de GitHub*.
  2. Realice los siguientes cambios de configuración para desarrollar Caffe en la CPU:
CPU_ONLY: = 1 in Makefile.configuration

solver_mode: CPU in solver.prototxt

Intel AI DevCloud tiene la versión de CPU de Faster R-CNN también disponible con la versión más reciente de Intel Optimization for Caffe.
¿Cómo puedo instalar TensorFlow* en modo CPU?
Para obtener información detallada, consulte la guía de instalación de TensorFlow*.

Para la instalación, consulte Intel® Optimization for TensorFlow* (solo CPU) a través de PIP*, conda* o del origen.
¿Cómo puedo instalar PyTorch* en modo CPU?
Vaya a PyTorch, y seleccione los criterios que coincidan con su entorno, lo que incluye CUDA=None, y luego ejecute el comando correspondiente. Por ejemplo:

1. Cuando utilice conda en la CPU, utilice este comando:

conda install pytorch-cpu torchvision-cpu -c pytorch 2. Cuando utilice PIP en la CPU, haga lo siguiente:

pip install http://download.pytorch.org/whl/cpu/torch-0.4.0-cp27-cp27mu-linux_x86_64.whl%20

pip install torchvision

Si la instalación anterior no funciona, porque Python* 2.7 UCS2 ya está instalado, use este comando:

pip install http://download.pytorch.org/whl/cpu/torch-0.4.0-cp27-cp27m-linux_x86_64.whl
¿Cómo puedo cambiar la configuración al desarrollar Apache MXNet* en modo CPU?
  1. Clone el siguiente código fuente para Apache MXNet*: https://github.com/apache/incubator-mxnet.git
  2. Establezca los siguientes campos en make/config.mk para desarrollar Apache MXNet en la CPU:
USE_CUDA = 0

USE_CUDA_PATH = NONE

USE_CUDNN = 0

Después de la instalación, debe editar algunas líneas de código que son específicas de la GPU. Por ejemplo, en el caso de uso de reconocimiento de habla en la ruta de carpeta incubator-mxnet/example.speech_recognition:

1) Elimine la siguiente línea en main.py:

os.environ['MXNET_ENABLE_GPU_P2P'] = "0"

2) Cambie la siguiente línea en deepspeech.cfg:

context = gpu0,gpu1,gpu2 to context = cpu0,cpu1,cpu2
¿Cómo puedo instalar Keras en modo CPU?
Keras se puede instalar en modo CPU utilizando backend como TensorFlow-CPU o Theano-CPU.

El comando para instalar Keras es:

pip install keras

cd .keras

Especifique el backend en el archivo keras.json:

{

"image_data_format": "channels_last",

"epsilon": 1e-07,

"floatx": "float32",

"backend": "tensorflow” }

Para obtener más información, consulte la documentación de Keras sobre backends.

Terminal JupyterHub* versus Terminal SSH

¿Cómo puedo iniciar sesión en una terminal JupyterHub*?
  1. Vaya a Colfax Research.
  2. Ingrese su identificación de usuario y contraseña en la página Inicio de sesión. Su identificación de usuario está disponible en el mensaje de correo electrónico de bienvenida de Intel® AI DevCloud. La contraseña es la identificación de usuario única (UUID) incluida también en el mensaje de correo electrónico de bienvenida.
La siguiente imagen muestra el contenido del directorio principal que se muestra después de registrarse.

captura de pantalla del directorio principal

Para abrir una nueva terminal, en la esquina derecha, seleccione Nuevo, y luego seleccione Terminal. La terminal Jupyter Notebook* aparece en el nodo de cómputo. Terminal Jupyter notebook en nodo de cómputo
¿Cómo puedo iniciar sesión en una terminal SSH?
Siga las instrucciones en el enlace de correo electrónico de bienvenida de Intel AI DevCloud.

(https://access.colfaxresearch.com/?uuid=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx). Si el inicio de sesión es exitoso, aparece una terminal SSH, como se indica a continuación:

Ejemplo de terminal SSH
¿Qué diferencia hay entre una terminal JupyterHub y una terminal SSH?
Las diferencias son:

1. Tiempo de ejecución

Una terminal JupyterHub* tiene un tiempo de sesión máximo de cuatro horas. Después de ese tiempo, la sesión se termina sin dejar un registro.

Una terminal SSH ofrece un tiempo real (wall clock time) predeterminado de seis horas para trabajos enviados utilizando qsub. Esta configuración predeterminada se puede modificar para ofrecer un máximo de tiempo real (wall clock time) de 24 horas.

2. Registros de trabajo

Una terminal JupyterHub actualmente no ofrece una herramienta qpeek, que se utiliza para tener registros de trabajos casi en tiempo real. Además, los registros de trabajo podrían no estar escritos adecuadamente por haber caducado la sesión.

Una terminal SSH ofrece una herramienta qpeek. Puede consultar los registros de trabajos en tiempo real de un trabajo en ejecución con qpeek –o <JOB_ID> (registros de salida) y qpeek –e <JOB_ID> (registros de errores).

3. Terminal con sesión iniciada

La terminal JupyterHub se registra en el nodo de cómputo directamente.

La terminal SSH se registra en el nodo de cómputo directamente. Ingrese qsub –I para ir al nodo de cómputo.
Envié un trabajo a través de la terminal JupyterHub. ¿Por qué no puedo ver los registros de trabajo?
Una sesión de JupyterHub caduca luego de transcurridas cuatro horas. El tiempo restante se muestra en la esquina superior derecha de la página de la sesión. Los trabajos que duran más de cuatro horas se detienen al finalizar el tiempo de la sesión y los registros no se escriben de manera apropiada. Para trabajos que duran más de cuatro horas, utilice el modo qsub con una terminal SSH Linux o PuTTY. En estos casos, le sugerimos que utilice el modo qsub con una terminal SSH Linux* o PuTTY*.