Visualization Toolkit: Improving Rendering and Compute on GPUs GTC, San Jose, CA April, 2016 Robert Maynard
Kitware, Inc. • Founded in 1998 by five former GE Research employees • 115 current employees; 41 with PhDs Privately held, profitable from creation, no debt • • Rapidly Growing: >30% in 2011 • Offices • 2011 Small Business – Clifton Park, NY Administration’s Tibbetts Award – Carrboro, NC • HPCWire Readers and – Santa Fe, NM Editor’s Choice • Inc’s 5000 List since – Lyon, France 2008
Business Model: Open Source • Open-source Software – Normally BSD-licensed – Collaboration platforms • Collaborative Research and Development • Technology Integration • Services, support, and consulting • Training and webinars
Overview of Software Process • Openly developed, reusable frameworks – Open-source frameworks – Developed openly – Cross-platform compatibility – Tested and verified – Contribution model – Supported by Kitware experts • Liberally-licensed to facilitate research
The Visualization Toolkit • Founded in 1993 as example code for “The Visualization Textbook”. • Used in many projects developed all over the world: – ParaView, VisIt – Osirix, 3D Slicer – Mayavi, MOOSE
The Visualization Pipeline • A sequence of algorithms that operate on data objects to generate geometry Filter Mapper Actor Render on Data Data screen Source Filter Mapper Actor Data Data
VTK Update vtkCommonCore • NVIDIA and Kitware collaboration vtkRenderingCore vtkVolume • Major rewrite of VTK’s rendering code OpenGL OpenGL2 OpenGL OpenGL2 – Geometry and Volume rendering – Supports desktop and embedded systems – Take advantage of modern programmable GPU: migration from fixed pipeline to buffers and GLSL – Recast interaction with data pipelines to take full advantage of batching for improved transfer
VTK 7.X • New minimum OpenGL version – OpenGL 3.2, OpenGL ES 3.0 • Large Volume support • Tested on Android and iOS • Single code base for all platforms • Multi-touch interaction supported
Benchmarking: Old vs New • Looking at static scenes – Time to first render – Average time of rotated subsequent renders • Added some new benchmarking tools • Aim to provide systematic comparison
Time to Render For First Frame (K2200) 16 14 12 10 Time (s) 8 VTK 6 6 VTK 7 4 2 0 1 million 5 million 20 million 30 million Triangles
Time to Render Subsequent Frames(K2200) 3.5 3 2.5 Time (s) 2 VTK 6 1.5 VTK 7 1 0.5 0.0025333 0.00711968 0.010502 0.000806384 0 1 million 5 million 20 million 30 million Triangles
Time to Render For First Frame (K2200) 25 20 15 Time (s) VTK 6 10 VTK 7 5 0 10 million 50 million 100 million 500 million 1000 million Voxels
Time to Render Subsequent Frames (K2200) 0.02 0.018 0.016 0.014 0.012 Time (s) 0.01 VTK 6 0.008 VTK 7 0.006 0.004 0.002 0 10 million 50 million 100 million 500 million 1000 million Voxels
TL;DR It Is Fast • Geometry rendering about 100 Gmes faster – IniGal frame/updated input ten Gmes faster – Memory footprint about half for single large geometry Volume rendering twice as fast • – Improved capability to run across systems Capable of rendering much larger systems • Other advanced rendering techniques • – Glyphs, impostors, Gaussian splaRng for data
VTK Point Rendering Work • Hierarchical LOD • View Frustum Culling • Spatial Randomization • Post Render Screen Space Point Filling • 960M renders about 1billion points/second for a 200M point dataset • TTFR ~1sec for 200M points • Goal is 30fps/1Billion Points
VTK Point Cloud Work • Point Cloud Algorithmic Efforts – Modeling – Cleaning – Segmentation – Registration – Geometry – Fitting – Surface reconstruction – Subsampling / LOD
ParaView is an open-source, multi-platform, data analysis and visualization application for analyzing extremely large datasets using distributed memory computing resources
ParaView 5.X Features • New Rendering is the default – OpenGL 3.2, OpenGL ES 3.0 • Supports EGL on HPC machines • Faster Remote Image Transfer – More work still to come
NVIDIA IndeX Plugin • NVIDIA IndeX is a scalable volume renderer NVIDIA IndeX Plugin that provides interactive performance on GPU clusters and supercomputers • ParaView IndeX Plugin is now in beta NVIDIA IndeX • Data: 3D structured grids • Fields: Scalar float, 8, 16, 32bit u-integers • Overlay of opaque ParaView geometries (e.g. streamlines) • Supports client-server mode via MPI • Free plugin, requires commercial IndeX license
Computation On Node 125 PB/s VisualizaGon Node Memory 4.5 PB/s Getting faster on Summit Off Node VisualizaGon Interconnect (Largest Cross-Sectional Bandwidth) 24 TB/s Same bandwidth on Summit Storage Post Hoc 1.4 TB/s VisualizaGon
What is it? SimulaGon SimulaGon A set of tools for in situ Separate MPI analysis and visualizaGon Why use it? Brief answer – one soluGon to reduced relaGve IO performance on the road to Disk Disk exascale Storage Storage More details – provide flexible analysis opGons and beber usage of computaGonal resources to reduce scienGsts’ VisualizaGon VisualizaGon Gme to insight into given In Situ In Transit problems
Simulation Augmented # Create the reader and set the filename. reader = sm.sources.Reader(FileNames=path) Script Export script in view = sm.CreateRenderView() repr = sm.CreateRepresentation(reader, view) input deck. reader.UpdatePipeline() dataInfo = reader.GetDataInformation() pinfo = dataInfo.GetPointDataInformation() arrayInfo = pInfo.GetArrayInformation( "displacement9") Output Processed Data Polygonal Output Rendered Images Series Data with Field Data Live Visualization
Other Catalyst Export Options • Output to Cinema – Static vs Spherical Camera Θ φ
VTK-m A single place for the analysis and visualization community to collaborate, contribute, and leverage massively threaded algorithms
VTK-m Architecture Make it easier for simulation codes to take advantage these parallel visualization and analysis tasks on a wide range of current and next- generation hardware. Filters Post Processing DataModel Worklets In-Situ ExecuGon Arrays Data Parallel Algorithms
is not a replacement for Algorithm SimulaGon
is not a replacement for Algorithm Filter SimulaGon
Reader Filter Algorithm Filter SimulaGon Filter Rendering
Reader Filter Algorithm Filter SimulaGon Filter Rendering
VTK-m Use Case • Convert a traditional visualization pipeline into Catalyst Live GPU pipeline to provide computational monitoring of simulation results Live Per Timestep SimulaGon Format VisualizaGon Format
33
Thank You! Checkout out: Robert Maynard Kitware @ www.kitware.com VTK @ www.vtk.org robert.maynard@kitware.com VTK-m @ m.vtk.org @robertjmaynard PyFR @ www.pyfr.org Other Presentations: S6633 - Navigating the In-Situ Visualization Landscape S6352 - Adapting the Visualization Toolkit for Many-Core Processors with the VTK-m Library S6329 - Petascale Computational Fluid Dynamics with Python on GPUs Please complete the Presenter Evaluation sent to you by email or through the GTC Mobile App. Your feedback is important!
Recommend
More recommend