At the Web 2.0 Summit in San Francisco this week, NVIDIA announced a GPU-powered 3D Web platform. Called the NVIDIA RealityServer, it consists of Tesla GPUs, rendering software and a Web service environment, all integrated into a platform designed to deliver photorealistic image streams via a cloud computing model. The new offering is yet another example of how the company intends to push its high-end GPUs into CPU territory.
The basic idea behind RealityServer is to do all the heavy computation lifting of image rendering on the server side, such that photorealistic 3D content can be delivered interactively across the Web. That means mass-market devices from smart phones to desktops and everything in between can be used to do high-end imaging. Applications include architectural design, product design, manufacturing and apparel styling, as well as HPC visual applications in such areas as oil and gas, medical diagnostics, and scientific research. As a result, potential users span the entire population: consumers, artists, product designers, doctors, architects, engineers, and scientists.
The big emphasis here is on photorealistic images. Generating such content is extremely compute intensive since the software must calculate the effects of light bouncing off the objects in a scene. Rendering a single photorealistic frame for a complex image can take a whole day on a typical CPU-based workstation. So unless one happens to own a deskside HPC machine (which may themselves contain NVIDIA GPUs), client-side processing is usually not able to deliver this interactive user experience.
Significantly, NVIDIA is not yet claiming this can be used to deliver photorealistic animation. For that to happen, presumably gamers and graphics animators will have to wait until GPU horsepower increases to the point where real-time photorealistic animation is practical. Theoretically, someone could build a big enough GPU cluster to do this today (or with Fermi GPUs next year), but computing 60 photorealistic frames per second is not likely to be economically feasible in the near term.
The critical 3D software component of RealityServer is iray, a photorealistic rendering technology developed by mental images, an NVIDIA subsidiary the company bought two years ago. The iray software is essentially a GPU-accelerated rendering mode of its flagship mental ray product. The iray software uses global illumination, which requires a lot more computational horsepower than garden variety ray-tracing (which usually only approximates global illumination or just uses direct illumination). True global illumination, however, blends the effect of direct and indirect light and will produce a much more refined image, almost indistinguishable from a photograph. Rolf Herken, founder, CEO and CTO of mental images, characterized iray as “the first physically correct renderer.”
In this case, the quality of the image is dependent on the fidelity of the input data rather than the algorithm. The feature that makes this practical in a cloud environment is iray’s ability to scale across many GPUs. According to the iray FAQ (PDF), the software scales “completely linearly on a local system, almost linearly on RealityServer across multiple machines.”
The RealityServer software itself encompasses the iray renderer as well as the rest of the software stack that turns 3D imaging into a Web service. OpenGL is also supported for situations where iray computation would be too slow to deliver interactive rendering. As one might suspect, RealityServer includes support for standard CAD and digital content creation formats and can run under both Linux or Windows.
The hardware environment for RealityServer is NVIDIA’s new Tesla RS platform, which comes in medium (8-31 GPUs), large (32-99 GPUs), and extra-large (100-plus GPUs) configurations. The Tesla device was presumably used since the high-end graphics chip and the larger memory capacity is specifically aimed at big GPU computing workloads. The smallest RS configuration is aimed at workgroups (for example, a group of collaborating architects), while the largest configuration is designed for thousands of concurrent users. This is only a general guideline, since some applications, like medical or oil & gas imaging, require multiple GPUs per user, while others, such as online entertainment, can support many users with a just single GPU.
NVIDIA is pointing interested parties who want to build RealityServer GPU server infrastructure to its OEM partners (which include HPC vendors Colfax, Appro, and Penguin Computing), but is not indicating which manufacturers are actually offering these configurations today. The RealityServer software itself will be available on Nov. 30, when a developer edition will be made available free of charge, including the right to deploy non-commercial applications. No mention was made of licensing RealityServer or iray for commercial applications.
As far as who will end up offering RealityServer infrastructure, NVIDIA is hoping public cloud providers, like for example Amazon, will be interested in adding this capability into their offerings. Private GPU clouds are also on the table, and frankly, are the more likely scenario in the short term, since I’m guessing a critical mass of RealityServer applications will need to be developed for the big cloud providers to be interested. In the NVIDIA press release, there were a handful of comments from some initial RealityServer customers, including mydeco.com, SceneCaster, and Wichita State University’s Virtual Reality Center at the National Institute for Aviation Research. Undoubtably, there is more low-hanging fruit out there waiting to be picked.
The ease of developing these RealityServer applications will likely portend the success of the business in general. Users, of course, may be squeamish about locking their software to a specific vendor’s platform, but with no competing offering currently on the market, the choice may become simple. And if NVIDIA supports RealityServer efforts in the same manner it is using to develop the CUDA ecosystem, the company may indeed have a winning model for GPU computing in the cloud.