How future tablets can run high-end desktop apps

Viewport applications could combine cloud GPU power with native apps

You can already get a version of Photoshop for Android and iPad, but it only has a fraction of the features in the Windows and Mac versions.

Partly that's because a touch screen doesn't give you the fine control you need for complex editing, but it's also because the ARM processor isn't powerful enough to run all the processing intensive filters. On a Mac or PC, those features use both the CPU and the GPU to run faster.

Now that Nvidia has the VGX technology that lets multiple virtual machines use one Nvidia graphics card both for displaying the screen and running GPU calculations (like hardware accelerating a browser like Firefox or Internet Explorer), running a whole Windows desktop is only the first step. Why not just run part of the application in the cloud, inside a native Android or iOS application?

That's called a 'viewport application' and Nvidia VGX product manager Will Wade explained to TechRadar how these applications would work.

First you have an iOS or Android application that has the familiar interface with menus and toolbars. "Rendering this piece is easy," so you can do that using the graphics processor on the tablet. But the main screen of the program, where you use the features that need more processing and graphics power runs in the cloud, on a virtual machine with a virtual GPU that's more powerful than the tablet; what you see in the app is a like a porthole (or a viewport) showing something running elsewhere.

"If you have a high end application like AutoCAD or Autodesk or Adobe, you just remote that part of the app. If you're running on a server then you're really running the exact right computer function on the exact right hardware. You only remote the viewport because that's what the GPU does really well."

Obviously there are drawbacks; you can only use a viewport application when you're online, and you have to have a fairly fast connection. Nvidia is recommending around one megabyte/second for streaming a Windows desktop, although one of the engineers is getting a good enough connection by tethering his iPhone as a modem.

The Kepler-powered VGX cards are faster at getting information from the frame buffer ready to send to a remote system than the graphics cards in a server today; add the time it takes to get across the network and Nvidia says it's about the same time as the graphics processor in a console putting images up on screen).

But the cloud will have to be fast as well; it's one thing to wait for an image to display but if you're tweaking an effect pixel by pixel you need the app to respond quickly. The GeForce GRID-powered gaming clouds like Gaikai that stream games to tablets claim to have only 5 milliseconds of latency, but that's expensive to build.

It's less work for the virtual graphics card in the cloud to render and send an image than for a real graphics card

Because you're using GPU and CPU time on the cloud every time you run the application (and storage and power), you'd probably have to pay a monthly fee rather than buying the application the way you do today. And it's a lot of work to change the application so that it runs on a server but responds to taps on the interface on your tablet.

Even so, Nvidia VP Jeff Brows told TechRadar that software companies like Adobe are keen to create these combined applications using virtual GPUs in the cloud.

"There are a number of software vendors like Adobe that have talked about providing hosted applications or services via the cloud and they're going to need GPU behind them. This technology is going to be key for them to get the economics to where they need to be."

Pushing the idea of cloud apps, Nvidia CEO Jen-Hsun Huang said this week that "The idea of buying an application in a box is weird to me. Tomorrow, it's just wrong." Maybe in a few years the idea of running an application all on the same device will seem odd too.