GPU rendering in the cloud

Andres Meira
5 min readOct 28, 2016

I’ve recently returned to do some visualizations and was amazed to find out the power of GPU rendering with new engines such as Corona, Octane and FStorm. Instead of 4 or 8 CPU cores, it is now possible to use thousands of CUDA cores in a GPU to do real-time rendering. All the post production tricks we used to employ to achieve photo-realism are now obsolete — it’s now possible to simply hit render !

However, whilst my laptop has a decent mobile GPU (GTX 960M), it really isn’t on par with proper workstation GPUs that cost a thousand dollars and more. This is when I realized I could be offloading the GPU work to the cloud. Azure now offers a new series of Virtual Machine (server in the cloud) called N-Series. This is only in preview but if you, like I did, subscribe to the waiting list you’ll get access soon.

Not only can you utilize these GPUs for your rendering, but you can work in your virtual server’s desktop, thousands of miles away, and it feels like you are working locally. Another benefit is you will be working from a remote server in a datacenter with super fast internet connection, so downloading textures / uploading to youtube etc will all be much faster.

Cost

So the first thought is how much do these things cost ? wouldn’t it be easier just to buy a few 1080 Nvidia GPUs ? Here are the 3 available instances you can provision in Azure:

I chose the NV24, obviously. These M60 Tesla Nvidia GPUs are very powerful, not Pascal architecture (yet), but pretty good. Using this instance I was able to create a very respectable 8 minutes rendering time in this benchmark for Fstorm — on par with 2 GTX 980 Tis. Not bad considering I was working from an old laptop !

At $2.92 per hour, it is important to turn off the VM (virtual machine) when you are not using it to avoid further cost. However it’s not bad considering the cost of buying upfront a workstation with this sort of power.

Setting up

Getting started. Actually it was pretty straightforward. After receiving an email from the Azure N-series team (I was pretty excited) explaining that I had been granted access to the VMs, I simply entered my Azure portal and created a new Windows Server 2016. This OS is great because it has a very improved Remote Desktop Connection protocol that works super smooth with Windows 10 (the OS on my laptop).

Once there this is what you need to create, making sure to select ‘HDD’ disk type for access to these VMs:

In “Size”, be sure to select the NV instances not the NC instance which are for deep learning and other compute-type work.

I live in Mexico City so costs are in MXN (that’s not USD!)

The rest of the settings you can leave as is. I chose to add a static IP to make future connections more straightforward, but that’s optional. After a few minutes or so its up and running!

Getting in

Ok now I am ready to turn my laptop into nothing more than a remote terminal client. I type remote into my start button and it brings up Remote Desktop Connection.

Here I just add the ip with port 3389, ie x.x.x.x:3389, and put in my user name that I used when provisioning my N-Series server. It should open up to a lovely desktop in full screen that feels and looks like you are working locally. This of course is dependent on the quality of your internet connection, but mine isn’t great and everything runs smoothly.

After installing the NVidia Grid drivers that the Azure folk sent me in the intro email, I get this nice Device Manager window:

These GPUs are completely available to me through this VM, it is as if they were on my laptop — sometimes I totally forget I am working in a remote desktop.

Rendering

So, the real question is how well do they work ? Pretty good, actually. I installed my license of 3dsmax and added FStorm 0.36a (free as its in beta). From there I loaded up the free benchmark scene :

With this much Ram and CPUs I can easily keep multiple 3dsmax instances open simultaneously. The Fstorm render settings show again a lovely sight:

Using the FStorm RealTime window for constant retouching of materials and lighting is a pleasure. It’s super fast — I believe that the Windows 2016 server GPU is used to help the Remote Desktop protocol to work more efficiently.

Next steps

For now I am pleased. I have my own fast rendering machine which goes wherever I do. I can do high quality rendering from my laptop in a Starbucks Cafe anywhere around the world.

I strongly believe this is the future of 3d workstations — why invest in an expensive machine which will become obsolete in a year, when you can have pixar-level performance that is streamed to you wherever you are. Well, when I say pixar-level, perhaps it’s not quite there. But as soon as Azure upgrades to the newest Tesla GPUs then yeah we’re good.

--

--