Brilliant Speedup for Volume Rendering using Intel® Open VKL

Get the Latest on All Things CODE

author-image

By

Story at a Glance

  • Volume rendering is important to scientific visualization—e.g., large-scale medical scans, fluid dynamics, cosmological simulations—and visual effects such as clouds, smoke, and fire.
  • Intel® Open Volume Kernel Library (Intel® OpenVKL) is a collection of high-performance, volume-computation kernels designed to improve volume rendering functionality and performance.
  • It supports a broad set of volume types, providing a uniform set of useful APIs for rendering.
  • The latest 1.3.0 release supports multiple new features including VDB volume data layouts and improved memory efficiency and performance for particle volumes.
  • Intel OpenVKL ships free with two example applications, standalone or as part of the Intel® oneAPI Rendering Toolkit.

Those of us working in visualization know that rendering technologies in software and utilization of hardware has advanced significantly over the past decade. This has enabled increasingly higher-fidelity and better-performing rendering. Intel is squarely at the forefront driving visualization innovation with an open ecosystem in mind. As part of this team, we’re working constantly to push the boundaries in this space.

I’m the project lead for the Intel Open Volume Kernel Library (Intel Open VKL), an open source component of the Intel oneAPI Rendering Toolkit and the oneAPI specification, where oneAPI’s open, cross-architecture, programming approach is advancing performant, productive development across multiple vendors’ architectures. 

Brass Tacks for Volume Rendering

Volume rendering is important across multiple domains. In scientific visualization, it can be used to understand complex measured or simulated data sets ranging from large-scale medical scans to complex computational fluid dynamics or cosmological simulations. In film and VFX, it is used to render volumetric effects such as clouds, smoke, or fire.

Intel Open VKL is a collection of high-performance volume-computation kernels targeted at volume rendering applications. Rendering and ray tracing experts can use Open VKL to improve volume rendering functionality and performance through a diverse set of supported volumetric data structures as well as performance-optimized traversal and sampling algorithms.

Recent new features in v1.3.0 include support for:
 

  • More performant-packed VDB volume data layouts
  • Improved memory efficiency and performance for particle volumes
  • A new Intel® AVX-512 8-wide CPU device mode that can provide performance gains across all volume types
  • Support for multiple vendors’ CPUs (Note that down the road it will support GPUs as well (details near end of blog).
     

The volume kernel library is built with open source software such as the Intel® Implicit SPMD Program Compiler (Intel® ISPC), which generates efficient, vectorized code; and Intel® Embree, a library of ray-tracing kernels. The library additionally understands data stored with OpenVDB and can access it without conversion or duplication.

Integrating Open VKL into your renderer is simple and is a great way to enable lightning fast vectorized code in your pipeline.

Features

Support for a broad set of volume types make Open VKL useful across many application areas—simple dense structured grids, sparse volumes (including VDB), fully unstructured meshes, particle-based volumes, and more.

For all of these volume types, Open VKL provides a uniform set of useful APIs for rendering (Figure 1).

The fundamental API is point sampling. Here Open VKL provides scalar, vector-wide, and stream-wide variants. The hit iterator APIs can be used to extract surfaces from volumetric data; and interval iterators can be used to traverse a ray through a volume, efficiently skipping empty space.

Figure 1. Open VKL advanced features

Open VKL in Action

In August, we released the Intel® Open VKL plugin for RenderMan*. This open source plugin allows RenderMan users to take advantage of Open VKL to provide improved volume rendering performance.

See the plugin in action where Open VKL accelerates volume rendering of VDB volumes by 1.5x – 6.1x.

The Intel® Open VKL plugin for RenderMan* improves volume rendering performance in RenderMan.

Additionally, we were excited to collaborate with Fabio Sciedlarczyk on his “Summon” scene (which is the last workload shown in the above video). You can see the fully rendered scene below.

“Summon”, Rendered with Intel OpenVKL plugin for RenderMan. Scene courtesy Fabio Rossi Sciedlarczyk.

More Open VKL Examples

Open VKL ships with two example applications:
 

  • vklExamples is an interactive application that allows you to experiment with supported volume types and algorithms. 
  • vklTutorial is a small and instructive program showing how to use the Open VKL API.

Try it Out & Join the Community

Intel Open VKL is freely available and distributed via the Apache 2.0 license and can be downloaded from GitHub. Developers and content creators are invited to join the OpenVKL community on Github to use the library, collaborate, and provide feedback on how to improve it. I encourage you to give it a try in your own projects and let us know any improvements or features you need.

oneAPI Multiarchitecture/Multivendor Hardware Support

Intel Open VKL is currently optimized for CPU platforms, including Intel® processors with SSE, and Intel® AVX, AVX-2 and AVX-512 instruction sets. The library also works on x86 compatible processors and supports ARM processors with support for the NEON instruction set. Support for upcoming Intel® Data Center GPUs and industry-standard GPUs are planned in the future.

Featured Software

Download Intel Open VKL standalone or as part of the Intel® oneAPI Rendering Toolkit, a suite of advanced open source libraries, or Intel® Open VKL plugin for RenderMan.

Discover More Related Content

Technical Resources

On-demand Webinars