Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ray-Cast Rendering in VTK-m

Similar presentations


Presentation on theme: "Ray-Cast Rendering in VTK-m"— Presentation transcript:

1 Ray-Cast Rendering in VTK-m
Scientific Achievement An implementation of ray cast rendering in the VTK-m visualization framework performs across the GPU, CPU, and Xeon Phi architectures of DOE HPC systems. Significance and Impact Rendering is the quintessential operation for visualization: It provides the imagery needed to communicate information and provides a much more compact representation than the original data. Research Details The VTK-m software framework enables a single implementation to work on different hardware Single implementation cuts development/support time VTK-m can support new devices: future proofs rendering Comparison with industry standards from Intel (OSPRay renderer) and NVIDIA (OptiX renderer) show our hardware-agnostic code has comparable performance An example of ray-cast rendering in VTK-m. M. Larsen et al., “Ray Tracing within a Data Parallel Framework”, Proc. IEEE Pacific Visualization Symp., pp , 2015. K. Moreland et al., “VTK-m: Accelerating the Visualization Toolkit for Massively Threaded Architectures, IEEE Computer Graphics and Applications, pp , 2016. Rendering large 3D structures is a critical component of scientific visualization. Our large scale scientific visualization tools like ParaView and VisIt must render billions of elements on HPC systems. Fast rendering is essential. For interactive visualization, a rendering must complete in less than 100ms to be usably responsive to users. For in situ visualization, which is visualization that happens inside of a simulation, extra time spent for rendering takes precious compute cycles from the simulation. Our work implements an efficient rendering system within the VTK-m framework. VTK-m is a toolkit designed to help developers build scientific visualization algorithms on computer processors that require many parallel threads like GPU and Xeon Phi. In addition to providing the building blocks for scientific visualization algorithms, VTK-m makes algorithms written in it to be device portable. This device portability means that an algorithm need only be written once in VTK-m, and that single implementation can be run on different types of hardware and run efficiently. This device portability is what makes the VTK-m rendering unique. Typically, a rendering system will be designed to work on a specific system. For example, a GPU rendering implementation will only work on that brand of GPU. In contrast, the VTK-m rendering has a single implementation that works on many types of devices: GPU, CPU, and Xeon Phi. This is made possible with a generic device adapter within the VTK-m framework. With a simple switch of the device backend, the VTK-m code is reconfigured and recompiled for a new device. This portability makes developers more productive and eases future support. As support of the VTK-m framework continues in the future, changes to address new hardware (e.g. adding new device adapters) are automatically applied to the ray-cast rendering code implemented in the framework. This effectively “future proofs” the algorithm. You no longer need to rewrite the algorithm to address a new platform. The rendering system is a ray-cast type of renderer. Ray-cast rendering traces the rays of light that hit your eyes into the image, find the geometry these rays intersect, follows reflected, refracted, and scattered rays, and eventually blends the result to determine the color for each pixel. Ray-cast rendering is known for its precise rendering and good scaling behavior for large amounts of data to be rendered. The benefits of having a ray-cast implementation in VTK-m are two-fold. The first benefit is that it provides a lightweight and portable rendering system for use in HPC visualization systems. Although many similar rendering systems exist, they are primarily tied to a single type of processor, dedicated hardware, and/or special OS support, none of which can be expected uniformly across all DOE HPC systems. HPC applications needing rendering required duplicative implementations of the rendering system. Our VTK-m ray-cast rendering provides an alternative that simplifies porting by requiring only one implementation. The second benefit is that the rendering implementation in VTK-m provides a good mechanism to test a key underlying hypothesis of the VTK-m project: that our approach for encapsulating device-specific code enables the development of a single algorithm implementation that ports efficiently to different parallel platforms. The reason most existing rendering systems only work on a specific type of hardware is that they are heavily optimized to use that hardware. Because so many of these dedicated rendering systems exist, this gives us a good opportunity to test our general solution to the “can’t beat” industry standard solutions. One such industry standard is the OSPRay rendering system designed by Intel and heavily optimized to work specifically with their processors. Another such industry standard is the OptiX rendering system designed by NVIDIA and likewise heavily optimized to work on their processors. We compared our VTK-m ray caster to these 2 systems on their preferred processors and found that our implementation does in fact provide comparative performance. Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation, for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000.


Download ppt "Ray-Cast Rendering in VTK-m"

Similar presentations


Ads by Google