Windows Server 2016 will let you get full access to the GPU inside a virtual machine, using a hardware pass-through setting called Direct Device Assignment, and because Azure runs on Windows Server, you'll get it there as well.
"We leverage this technology primarily for GPUs and also for things like NVMe storage," explained Microsoft's Chris Huybregts at the Nvidia GTC conference. You can only use the GPU with one virtual machine, but that virtual machine gets access to all the features of the GPU, using the standard graphics driver (rather than the virtual GPU driver that Microsoft supplies for RemoteFX GPU virtualisation).
Direct Device Assignment is how the new N-Series VMs on Azure get their GPUs. Designed for running applications that need high-performance graphics or that use the GPU for high-performance parallel computing, they were announced last September and are currently in preview.
When they launch there will be two ranges of N-Series VMs, both with a choice of 6, 12 or 24 Xeon E5 CPU cores and one, two or four GPUs. The NV series uses Nvidia Tesla M60 GPUs and is designed for running visualisation and rendering software, while the NC series uses Nvidia K80 GPUs and is for GPU computing.
"That means the entire GPU will be available in the virtual machine; that includes CUDA, OpenGL, OpenCL and DirectX," Huybregts said. You can run Windows Server or Windows 10 in the VMs, or Linux. "We understand that the world needs to know they can run on Linux – Linux is a first-class citizen for Azure," he promised.
There will be virtual machine images in the Azure Marketplace that are set up with applications ready to use (similar to the Azure Data Science virtual machines that bundle up useful tools for data science modelling like R Server and Python, for both Windows Server and Linux), or you can upload your own image, including the OS and applications you need.
Huybregts wouldn't give any details on how Microsoft will use Grid, Nvidia's own graphics virtualisation technology – something Microsoft has mentioned previously for the N-Series VMs – but he did confirm there's work going on. "If you could see where we're going, you'd see we are working with Nvidia and the industry in general – but we're not talking about that today."
(Nvidia Grid is what AWS offers in its G2 GPU-compute VMs, which use older Nvidia K520 graphics cards and use the Grid K520 drivers, which have to be loaded specifically, making them a little harder to set up.)
He also wouldn't talk about when the N-Series VMs will come out of preview on Azure, or how much they're likely to cost. They're unlikely to be available before Windows Server 2016 is released, which is expected around September 2016.
For comparison, running the Data Science VMs on Azure costs from $0.67 to $9.95 an hour if you use the Xeon E5-based G-Series virtual machines, depending on how many cores you need. Prices for the A-Series VMs with Xeon E5 and high-performance InfiniBand networking start at $1.46 an hour – and AWS G2 virtual machines cost between $0.76 and $2.87 an hour.
Expect N-Series prices to be closer to these ranges than the $0.02 an hour you'll pay for the cheapest A-Series virtual machines on Azure.