Easy Multi-GPU Deep Learning with DIGITS 2

Originally published at: https://developer.nvidia.com/blog/easy-multi-gpu-deep-learning-digits-2/

DIGITS is an interactive deep learning development tool for data scientists and researchers, designed for rapid development and deployment of an optimized deep neural network. NVIDIA introduced DIGITS in March 2015, and today we are excited to announce the release of DIGITS 2, which includes automatic multi-GPU scaling. Whether you are developing an optimized neural…

Thanks for the post.
We just got the digits box this week and comes with digits v1 pre-installed.what is the best procedure to update to Digits V2?

got it. I follow the instructions from:

both digits are running at same time in different ports by using
./runme.sh -p 5001

I am a researcher running many different models. Is there a way to script the model set-up (maybe through a command line interface, a la DIGITS 1)?

How do you extend Digits (1 or 2) to support speech recognition tasks?

In the standard setup only image datasets can be imported, no audio datasets.

Also all models you can create are for image classification only.

How could you add functionality to do something as described in "Deep Speech: Accurate Speech Recognition with GPU-Accelerated Deep Learning" in this web server based platform with "Improved Visualization and Monitoring" and "classification during training" for sound files etc.?

If you can insert your data as a linear array such a [1xnumber], you can upload it into DIGITS. It will treat the input data like a image with a single line of pixels. Right now DIGITS supports classification, would you like to perform classification with your audio data?

Are you interested in quickly visualizing each network's performance? It is easy to toggle between network results via the main console, and it is relatively easy to launch a training on each of your GPUs or multiple ones via the web interface. If you don't care about the visualization part you could just write a shell script that will launch all of your trainings for you, assigning them to the GPUs.

Thanks for your quick reply Allison! I am interested in the latter. Is there documentation that I can follow to set this up? The downside of a beautiful GUI is one loses contact with the commands

I just reviewed our API commands and I don't see anything for training with DIGITS this way, https://github.com/NVIDIA/D...

If you just want to launch trainings you can use Caffe directly

./path/to/caffe/build/tools/caffe train --gpus=0 --solver=solver.prototxt

If you downloaded DIGITS with the web installer (https://developer.nvidia.co..., caffe will likely be in path/to/digits-1.0/caffe.

I just realized you mention "model setup" above, do you also want to create a variety of different NN configurations too via the command line?

Hi again,

Yes, basically I want to create many different kind of models using the command line. I suppose I can do that via Caffe, I just assumed there was something in DIGITS (performance-related) that was not part of the master branch of Caffe.

If this is indeed not the case, is there still a way to load trained Caffe models into DIGITS and visualise them, or do I need to create them via the DIGITS GUI for that? I just find very time-consuming to have to navigate through the buttons and menus to set up multiple models.


I have not seen an easy way to do that with DIGITS.

I have heard of folks using tools (or creating them themselves) for this but I don't recall their names now. I tried to do a quick search on github but didn't find anything.

I stumbled across this tool, but it doesn't seem to be a random NN creator, https://github.com/Chasvort... which it sounds like you are looking for.

If I were going to do this myself, I would create it in python (just because it is a language I am comfortable with), allowing for patching layer components together and generating/saving the new train_val.prototxt files.

Have you tried posting this question on one of the framework user groups?

Yes, you can create a model outside of DIGITS and then use it for classification. There are some instructions here - https://github.com/NVIDIA/D.... This allows you to load a pretrained network, but it won't show you the change in accuracy and loss as a function of epoch.

Any plans of having a Windows version of Digits in the near future?

It looks like there has been some activity from users on this -https://github.com/NVIDIA/D...

Nvidia,please release a windows version! You hava a large base of windows users (Gaming community, etc) so I think is the natural evolution of ML to take this market. I have my self a windows server 2012 with 2 Maxwell 980 GPU's waiting for this... and if you really launch it, I will swap those 2 for 3 Titan X.... your move Nvidia :)

I am trying to run it on a virtual machine but I am receiving the error message: "CUDA driver version is insufficient for CUDA runtime version". Is it possible to run on VM?

You should be able to run DIGITS on a VM. What OS and driver are you using? Are you able to run any of the CUDA samples?

I'm getting a similar problem (Ubuntu 14.04 on a VM), when I run ./runme.sh I get "cudaRuntimeGetVersion() failed with error #35", the server loads and the interface is reachable but I'm assuming DIGITS doesn't get GPU assistance here. When I try to install the Linux drivers on my virtual machine (Ubuntu) I get an error saying it does not recognize a compatible card. I have a GeForce GTX 460. Any ideas? Thanks!

I haven't tried using a GeForce card for pass-through on a VM. I assume you are able to run nvidia-smi and any CUDA sample program, is this correct?

when I run nvidia-smi I get "NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running". And if I try installing the drivers I downloaded from the NVidia website (Linux 64) I also get an error saying it couldn't find a CUDA compatible card.... My card is CUDA compliant according to the Nvidia web site, as far as I understand. Much appreciate your help!

Do you know if your VM can see the GPU? If you run "lspci | grep NVIDIA" do you see any NVIDIA devices?

How did you install your NVIDIA driver? Are you using the cuda db file from -https://developer.nvidia.co...