Getting started with Deep Neural Networks in Azure
In this tutorial, we go over setting up MXNet, a popular deep learning framework along with required dependencies on Azure N-Series VM
For this tutorial, we will use an [NC24](https://azure.microsoft.com/en-us/blog/azure-n-series-preview-availability/) VM running on Ubuntu 16.04. N-Series
VM sizes are currently under preview and available for select users; you can register interest at http://gpu.azure.com/. In addition to the
default Ubuntu 16.04 distribution, the following libraries were used:
- [**CUDA**](https://developer.nvidia.com/cuda-toolkit) - CUDA8.0 RC1 (registration with NVIDIA required). In
addition to the base package, you also need to download CUDA Patch 1
from CUDA website. The patch adds support for gcc 5.4 as one of the
host compilers.
- [**cuDNN**](https://developer.nvidia.com/cudnn) – cuDNN 5.1 (registration with NVIDIA required).
- [**Math Kernel Library**](https://software.intel.com/en-us/intel-mkl) (MKL) - MKL 11.3 update 3 (registration with
Intel required). The serial number and download link will be in
the email.
- [**MXNet**](https://github.com/dmlc/mxnet) - We used MXNet commit SHA
f6fa98d645d2b9871e7ac5f0ad977c1e5af80738 from GitHub (which was the
latest version of MXNet at the time)
- [**Microsoft R Server**](https://www.microsoft.com/en/server-cloud/products/r-server/default.aspx) (MRS) - Microsoft R Server 8.0.5
(registration with Microsoft required). Alternatively, one can
download Microsoft R Open (MRO) for Ubuntu [here](https://www.microsoft.com/en/server-cloud/products/r-server/default.aspx). Please note that
while MRS comes with Intel MKL already bundled into the package, MRO
requires an additional MKL installation from this [link](https://mran.revolutionanalytics.com/download/). Also, while
MRS and MRO both rely on MKL, a separate MKL installation is
required to build MXNet. This is because the MKL package for
Microsoft R only contains shared libraries and not the header files
which are needed to build external packages like MXNet.
- [**CIFAR-10 training algorithm**](https://mxnetstorage.blob.core.windows.net/blog1/MXNet_AzureVM_install_test.tar.gz) – test script used to validate MXNet
installation by training a simple [ResNet](https://arxiv.org/abs/1512.03385) deep neural network on
[CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) dataset.
We then walk you through the commands you need to run to install these libraries and build MXNet from scratch.
Check out the code section to see complete install instructions.
# Conclusion
In this tutorial, we demonstrated how to quickly install and configure MXNet on an Azure N-Series VM equipped with NVIDIA Tesla K80 GPUs.
We also showed how to run MXNet training workload from Microsoft R Server using GPU, achieving significant speedups compared to the CPU-only solution.