Turn-key Deep Learning in the Cloud with GPUs and NVIDIA DIGITS


This article is a tutorial on how to get started using GPUs in the cloud in under five minutes using NVIDIA’s DIGITS 3 application. We have enabled NVIDIA DIGITS 3 in our application library.

As a user, you can select the GPUs you’d like to use to power the training of your models on JARVICE and begin training a Deep Learning algorithm.

Creating an Account on the Nimbix Cloud

If you don’t already have an account on https://platform.jarvice.com, head over to to the Sign Up Page. You will need to enter your billing information prior to running a job using our Pay-As-You-Go service. We also have enterprise subscriptions available for production use cases. See our Pricing Page for more details.

Starting NVIDIA DIGITS from the JARVICE Platform

After you have logged in to https://platform.jarvice.com, navigate to the “Compute” tab and select NVIDIA DIGITS.

Launch Nvidia DIGITS 3

This will bring you to the Task Builder, machine type and number of nodes. You can re-configure your cloud hardware each time you launch NVIDIA DIGITS.

Select your GPUs

The Task Builder is where you select your hardware. At this time, we have K40 and K80 GPUs in our cloud, available in single card or dual configuration. Note that each K80 has two GPUs, so selecting our dual K80 GPU nodes provides four GPUs per compute machine. For Deep Learning applications such as DIGITS, the Maxwell architecture frequently out performs its Kepler counterparts.  You can also use the Bitfusion Boost-powered machine type which may offer better economics depending on your usage.  Once you submit your job, the page will bring you to your job dashboard where you can connect to NVIDIA DIGITS.


Connecting to the NVIDIA DIGITS UI

From the Dashboard tab, click on the job that has just launch to expand its details. A connect button will appear shortly after your job enters the “Processing” state. This will open a link to the NVIDIA DIGITS UI directly in your browser.

Batteries Included on JARVICE

We prepared the NVIDIA DIGITS application to have the three most common data sets used for learning with NVIDIA DIGITS and Caffe. These data sets are:

  1. MNIST, available in /db/mnist, with training and test data sets in /db/mnist/train and /db/mnist/test respectively
  2. cifar10, available at /db/cifar10, with training and test data sets in /db/cifar10/train and /db/cifar10/test respectively
  3. cifar100, available at /db/cifar100, with training and test data sets in /db/cifar100/train and /db/cifar100/test respectively

DIGITS has auto-completion, so when you begin to type these paths, you will see these paths available to you.

Creating a Model

Select the blue images button under datasets, and choose “Classification.” This well guide you through setting up a data set of images that you can train using deep learning. Enter the settings in the screen shot below to configure your train and validation databases.


Training with Caffe

Now you are ready to train your model! Go back to the main DIGITS page and select Images>Classification to create a new classification model. On this page, the defaults will work fine for a first time training a model. You simply need to select the data set you already configured, and select the GPUs in your instance at the bottom of the page. Kick it off and watch it run.


Custom Data Sets

If you have a custom data set, you can upload your custom data sets using Filezilla to drop.jarvice.com. See How do I transfer files to and from JARVICE? for instructions on using Filezilla. Many applications including NVIDIA DIGITS have an ssh server running. If you would like to upload or download your data while DIGITS is running using scp, rsync or another application, you can configure your SSH keys prior to launching your job. See How do I upload my SSH public key? What is it used for? for information configuring password-less SSH.

You can upload data sets using these methods to your /data directory, referred to as drop.jarvice.com, or your “drop”, and then enter this path instead of /db/mnist. If you have not yet created your own custom data set, there are instructions on the DIGITS github page on how to structure your image database and prepare labels. Now you are ready to train your Deep Learning models with GPUs in the cloud!

Want more?

If you are interested in learning about enabling more advanced deep learning applications in the cloud like NVIDIA DIGITS, or customizing your own machine learning environment in the cloud, please reach out to us at support@nimbix.net, and visit our developer-oriented JARVICE Quick Start Guide.