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:
- Create an NGC instance via OVH Manager
- Create an NGC instance via the Command Line Interface
- Connect to your NGC instance
Prerequisites
- Access to the OVHcloud Control Panel.
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
.
Under Operating systems + Apps
, select NVIDIA GPU Cloud (NGC)
The available flavors are t1-45
or t1-90
for 1 or 2 NVIDIA® Tesla® V100. Flavors with more GPU will be available later.
The billing starts as soon as the virtual machine is up.
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/.