News | RenderMan XPU: Development Update

RenderMan XPU: Development Update

Max Liani, Senior Lead Engineer at Pixar, will present a RenderMan XPU project update during GTC 2018 in San Jose.  Max will discuss the project goals and technical challenges, and recent results.  RenderMan XPU is in active development, targeting release following the delivery of RenderMan 22. The specific release schedule for RenderMan XPU has not yet been announced.

The RenderMan XPU project is addressing the challenge of rendering Pixar-scale production assets on systems with a mix of CPU and GPU capabilities. From a single set of assets, RenderMan XPU produces film-quality renderings by seamlessly using all available compute cores concurrently. RenderMan XPU is a single renderer that can operate on a variety of systems, from render farm machines with mid-range CPUs only all the way up to workstations or servers having many-core CPUs and multiple extreme GPUs. 

Scene Complexity & Artist Dexterity

Demands on artists and tools continue to evolve, and scene complexity grows. Film, television, and other formats call for more realism as well as more fantastic fictional realms. With tighter production schedules, maximizing artist productivity is essential. Artists require both greater interactivity and finer grained control when dealing with huge, high quality assets. Artists are also more productive when render previews in their tools accurately reflect the look of the final frames coming off the farm.

In this context, we present an update on RenderMan XPU. The mission of XPU is to automatically leverage available CPU and GPU compute power to provide artists with optimum performance and flexibility on production scenes, all from within the art tools that they are already using. RenderMan XPU is in active development at Pixar, and while an external release date has not yet been set, it will be available sometime after the commercial release of RenderMan 22 – which itself delivers important new interactive capabilities.

RenderMan Today: Versatility at Scale

At Pixar, each of our productions is more complex than the last, with unique technical innovations required to allow our artists to create the richness and detail that define each of our films. Our artists demand speed and flexibility -- requiring the ability to tweak lighting and shading at the very last moment to enhance an image in service of the story and the Director's vision. Many studios are familiar with these demanding trends.

Today it is common in VFX and animation to have to deal with over-modeled geometry, huge numbers of textures, sprawling shading networks, and massive datasets with large numbers of lights. Every part of the scene must be editable so artists can enhance a shot at any time up to final render, all in service of enhancing the story.

Rendered by XPU, a massive scene from Coco (without shaders and lights).

For example, on Coco the average shot took 27GB of memory with outliers requiring 70GB or more. There were shots with millions of point lights. RenderMan has always been inspired by these technical challenges and is focused on providing high quality results, at any scale, with the most adaptable versatility, while responding to the constantly evolving artistic landscape. 

Today: Pixar's Internal GPU Raytracing Tools

Over the past several years, and predating the RenderMan XPU project, Pixar’s internal tools team developed a GPU-based ray tracer, built on CUDA and Optix. An application called Flow was built around that renderer to deliver a real-time shading system to our artists. To date, Flow has helped artists shade hundreds of assets across several feature films like Coco and The Incredibles 2.

The Flow system is engineered so that the GPU renderer shares as much core shading logic as possible with the final renders coming from RenderMan, making it far easier for us to keep the two renderers in sync. However, exact matching is difficult since RenderMan has features and resources beyond what Flow is currently able to deliver on the GPU only.

Our artists love Flow and the interactivity it gives them. They love it so much that they continually push the limits of the GPU hardware by loading more geometry, more textures, and requesting more rendering capabilities.

GPU and CPU Evolution

Artists of today have two very capable pieces of silicon at their desks, the CPU and the GPU, and both have been evolving rapidly. CPU systems are more capable than ever with large numbers of general purpose cores for arbitrary threading, wider instruction widths for SIMD operations, with huge memory, storage, and networking options. There have been remarkable waves of development in GPU raw performance and available local memory. Technologies like NVIDIA RTX and more general GPU programming models begin to offer direct crossover support for high end algorithms. 

XPU delivers identical pixels from both CPUs and GPUs.

Our vision is to take advantage of the advanced aspects of both processor types, automatically leveraging them when they are available but still producing professional results when they are not. We employ a confluence of these technologies to take advantage of RenderMan’s innovation at scale on CPUs and artist savvy GPU rendering techniques honed on projects like Flow.

RenderMan XPU: The RenderMan of the Future

We believe that the renderer of the future must support the GPU and the CPU simultaneously, with both playing vital roles. When the two are combined together, the promise of real-time production path tracing can be fulfilled more quickly. RenderMan XPU is our name for the simultaneous use of the two pieces of silicon.

There are two main uses cases that we must fulfill -- rendering quickly on the artist desktop and rendering quickly on farms. That render farm may be on a set of desktops at night, a rented rack with specialty GPUs, a dedicated on-premises CPU-based datacenter, or in the cloud on a set of economically provisioned instances. In the latter two cases, a GPU with capacity to handle the complexity of production assets may not be available. We must be able to produce the same picture on a CPU based farm that we do on an artist workstation with a highly capable CPU and multiple GPUs, from the same assets.

XPU rendering: Common Codebase and Sophisticated Scalability

Creating the same perceptual image on CPU and GPU in a maintainable codebase requires a significant amount of code to be shared. We are building on the many techniques and insights learned from the internal Flow project at Pixar. For our materials, we derive high performance CPU and GPU code from a common base via templating and specialization. For the patterns that drive the materials, we rely on OSL and LLVM so that the same OSL code will run on both pieces of hardware. We are working with both NVIDIA and Intel to optimize OSL along these lines. Furthermore, we are developing shared ray tracing Integrator code between the CPU and GPU.

XPU can handle a massive amount of textures, well exceeding hardware cache (Total textures size: 280GB).

Scalability and performance are the primary criteria driving development of each aspect of RenderMan XPU. For example, we are implementing novel data compression techniques so that we can fit more complex scenes into GPU memory. We have implemented a new texture subsystem to facilitate paging large amounts of texture data in and out of the GPU for scenes that require more memory than is on the card. Textures will be dynamically loaded onto the GPU as the ray tracer needs them. No scene analysis or texture pre-loading is required.

RenderMan XPU: Experience Counts

RenderMan XPU is a new approach to production rendering, though not everything that you will see in RenderMan XPU is new. A key aspect of RenderMan as a production renderer is the flexibility that it offers to artists throughout the studio pipeline. This flexibility is provided by RenderMan integration into artist facing applications such as Maya, Katana, and Houdini. RenderMan XPU will plug directly in to our existing artist applications. Studios using RenderMan will be able to easily move to XPU without having to retrain artists, re-lookdev their assets, re-light shots, or produce special variant assets.

For the last thirty years, RenderMan has been a vibrant, versatile, evolving rendering solution always focused on scale and quality. RenderMan XPU derives from that solid background in real production. There are remarkable new ray tracing innovations from our own R&D team and industry partners combined with proven techniques from internal real-time artist tools developed at Pixar and across other Disney studios and labs. These efforts will result in a cross-silicon renderer suitable for the film industry that will work within the tools and workflows that artists know.

RenderMan XPU is still a work in progress. It is exciting work at an exciting juncture in computer graphics and we are looking forward to artists using it every day in production. As mentioned previously, the release date for XPU has not been announced, but will follow after the release of RenderMan 22.

NEWS | RenderMan 26 is here!