Maximize the performance of your Azure NVidia Virtual Machine

The N-Series VM launched just recently and provides virtual computing with GPU (Graphics Processing Unit) performance with an NVidia processor.
As you might know NVidia is the leading company in graphics and AI, thanks to the advance G-Force technology.
There are plenty of reasons on why having a GPU in your box, 3D Software, Cad and drafting software, deep algorithm, game development, video editing, graphics rendering and of course gaming, are some of the scenarios that requires GPU processing power, and as well I always recommend to have a computer with a dedicated GPU on it (you never know when you are going to need it)
That’s why Microsoft launched the support for virtual machines with NVidia GPU, however not everything It’s as simple as it seems.
The first big detail that you are going to find out is the missing drivers, this is what you are going to get on the device manager as soon as you create the virtual machine

A Microsoft Hyper-V Video and Basic Display Adapters drivers are pre-installed, but this will not bring the GPU power that we require, of course there are guides and documents on how to setup the drivers for it, but for maximum performance the best and optimal drivers are found in the official NVidia site at

http://www.nvidia.com/Download/index.aspx?lang=en-us

In there the options that we are going to select for the Azure NV6 series are
– Product Type: Tesla
– Product Series: M-Class
– Product: M60
– Operating System: Windows 10 64-bits
– CUDA Toolkit: 8.0
– Language: English (US)

This specific configuration is the one and only that will enable and run the CUDA 8.0 core functionality, CUDA is a parallel computing platform and application programming interface (API) model created by Nvidia. It allows software developers and software engineers to use a CUDA-enabled graphics processing unit (GPU) for general purpose processing – an approach termed GPGPU (General-Purpose computing on Graphics Processing Units). The CUDA platform is a software layer that gives direct access to the GPU’s virtual instruction set and parallel computational elements, for the execution of compute kernels.
And you should always keep an eye and refresh the drivers only from the NVidia site with this specific configuration.
After the drivers installation, your device manager should look like this

Now we are ready to rock and roll!
The first test that I did was to setup CINEBENCH benchmarking software, to check how the performance of the GPU behaves in a virtual machine.
You can get CINEBENCH for free in this link : https://www.maxon.net/en/products/cinebench/

I was impressed with the results, a 70 FPS with OpenGL for a VM, so far so good, however, benchmarking software it’s only that a benchmark, now it is time for a real test, and at this point one of the most demanding GPU software that I can find in the market it’s a video game called DOOM by Bethesda, a masterpiece created by John Carmack.
Now after installing STEAM and set my account I was able not only to play DOOM but also achieving a 55 FPS just 5 FPS below the gaming standard which is 60.

And because we set Windows 10 64 bit as a driver OS instead of the old Server drivers, we were able to enable the VULKAN API which is most likely an OpenGL successor, VULKAN just like the new DirectX, is a lower level API that allows methods and object to interact more directly to the GPU resources rather than a middle tier like the OpenGL and the old DirectX versions, this results in increasing performance and better resource management.

Of course I wouldn’t recommend playing a game over a virtual machine, but besides floating point algorithm, this is a worthy test that any enthusiast will enjoy when dealing with a computer of virtual machine with a GPU.

Leave a Reply