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.