OVH Guides

Getting started with NGC on OpenStack

Use NVIDIA GPU Cloud to speed up your GPU-accelerated development

Last updated 8th January 2019

Objective

The purpose of this guide is to show you how to set up your first NVIDIA GPU Cloud container instance.

The first part of the guide will be OVHcloud specific for basic usage. The second part will be more advanced, using OpenStack client to automate NGC instance management.

Quick links:

Prerequisites

Instructions

Create an NGC instance via OVHcloud Control Panel

The first step will be to create a Public Cloud project

The second step will be to create an instance into the newly created project using the latest wizard. The previous wizard is documented here.

After selecting the List view, click on Actions -> Add a server.

start_wizard

Under Operating systems + Apps, select NVIDIA GPU Cloud (NGC)

select_image

select_region

The available flavors are t1-45 or t1-90 for 1 or 2 NVIDIA® Tesla® V100. Flavors with more GPU will be available later.

select_flavor

select_network

The billing starts as soon as the virtual machine is up.

start_image

Create an NGC instance via the Command Line Interface

You can manage your OVHcloud Public Cloud instances using the standard OpenStack API and tools: terraform, ansible, ...

For now, we'll focus on the command line client openstack.

1) Configure your local environment (one time step)

You first need to create a user account as described here.

Next, click on the ... icon at the end of the line and then click the Download OpenStack configuration file link.

Save the file as openrc.sh.

From a Windows client, please follow this link to setup the OpenStack client https://github.com/naturalis/openstack-docs/wiki/Howto:-Installing-and-configuring-the-OpenStack-commandline-tools-on-Windows

From a Linux client, use your preferred package manager (i.e. apt, yum, emerge, etc) to install the python-openstackclient package and source the configuration file you previously saved (. ./openrc.sh).

2) Create a NGC VM

The first step is to have a SSH Key pair. You can create one with:

openstack keypair create mykey > mykey.pem

Then, you'll need to gather the following information:

SOURCE_ID=`openstack image list --name 'NVIDIA GPU Cloud (NGC)'`
FLAVOR='t1-45' # get a list with `openstack flavor list | grep 't1-'`
NETWORK_ID=`openstack network list --name 'Ext-Net'`

Finally, create the VM with the following command:

openstack server create --key-name mykey --image $SOURCE_ID --flavor $FLAVOR --network $NETWORK_ID my_vm

The billing starts as soon as the virtual machine is up.

To inspect or delete the VM:

openstack server show my_vm # describes the VM status
openstack server delete my_vm # deletes the VM and stop the billing

Get the VM IP address

openstack server show my_vm

Connect to your NGC instance

You can use Putty under Windows, ssh or another SSH client.

The default user is ubuntu

ssh -i ./mykey.pem ubuntu@<VM IP>

Your first NGC container

Once you are logged into the VM, you can start pulling and running the container.

The list of available containers (TensorFlow, Caffe2, DIGITS, Matab, MXNet, PyTorch, TensorFlow, RAPIDS, ...) is available here:

https://ngc.nvidia.com/catalog/containers

Example:

docker pull nvcr.io/nvidia/tensorflow:xx.yy-pyN
nvidia-docker run -it --rm -v local_dir:container_dir nvcr.io/nvidia/tensorflow:xx.yy-pyN

Go further

If you would like to automated the above steps, look at the -f json option of the openstack client and the jq JSON command line tool parser.

Example:

SOURCE_ID=`openstack image list --name 'NVIDIA GPU Cloud (NGC)' -f json | jq -r '.[0].ID'`

Join our community of users on https://community.ovh.com/en/.


These guides might also interest you...