Visualization Toolkit: Improving Rendering and Compute on GPUs - - PowerPoint PPT Presentation
Visualization Toolkit: Improving Rendering and Compute on GPUs - - PowerPoint PPT Presentation
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,
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
– Clifton Park, NY – Carrboro, NC – Santa Fe, NM – Lyon, France
- 2011 Small Business
Administration’s Tibbetts Award
- HPCWire Readers and
Editor’s Choice
- Inc’s 5000 List since
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
Source Data Data Filter Filter Render on screen Data Data Mapper Mapper Actor Actor
VTK Update
- NVIDIA and Kitware collaboration
- Major rewrite of VTK’s rendering code
– 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
vtkCommonCore
vtkRenderingCore
OpenGL OpenGL2
vtkVolume
OpenGL OpenGL2
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)
2 4 6 8 10 12 14 16 1 million 5 million 20 million 30 million Time (s) Triangles VTK 6 VTK 7
Time to Render Subsequent Frames(K2200)
0.000806384 0.0025333 0.00711968 0.010502 0.5 1 1.5 2 2.5 3 3.5 1 million 5 million 20 million 30 million Time (s) Triangles VTK 6 VTK 7
Time to Render For First Frame (K2200)
5 10 15 20 25 10 million 50 million 100 million 500 million 1000 million Time (s) Voxels VTK 6 VTK 7
Time to Render Subsequent Frames (K2200)
0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02 10 million 50 million 100 million 500 million 1000 million Time (s) Voxels VTK 6 VTK 7
- 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
TL;DR It Is Fast
- 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 Rendering Work
- Point Cloud Algorithmic Efforts
– Modeling – Cleaning – Segmentation – Registration – Geometry – Fitting – Surface reconstruction – Subsampling / LOD
VTK Point Cloud Work
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
that provides interactive performance on GPU clusters and supercomputers
- ParaView IndeX Plugin is now in beta
- 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
NVIDIA IndeX NVIDIA IndeX Plugin
Node Memory 4.5 PB/s
Interconnect (Largest Cross-Sectional Bandwidth) 24 TB/s
Storage 1.4 TB/s Computation 125 PB/s Post Hoc VisualizaGon Off Node VisualizaGon On Node VisualizaGon Getting faster on Summit Same bandwidth on Summit
What is it? A set of tools for in situ analysis and visualizaGon Why use it? Brief answer – one soluGon to reduced relaGve IO performance on the road to exascale More details – provide flexible analysis opGons and beber usage of computaGonal resources to reduce scienGsts’ Gme to insight into given problems
Separate MPI
Disk Storage
VisualizaGon
SimulaGon
In Situ In Transit
Disk Storage
VisualizaGon
SimulaGon
Simulation
Polygonal Output with Field Data Script Export Augmented script in input deck. Rendered Images
# Create the reader and set the filename. reader = sm.sources.Reader(FileNames=path) view = sm.CreateRenderView() repr = sm.CreateRepresentation(reader, view) reader.UpdatePipeline() dataInfo = reader.GetDataInformation() pinfo = dataInfo.GetPointDataInformation() arrayInfo = pInfo.GetArrayInformation( "displacement9")
Output Processed Data Series 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
In-Situ
ExecuGon
Data Parallel Algorithms
Arrays
Post Processing
Worklets
DataModel
Filters
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.
Algorithm SimulaGon
is not a replacement for
Filter SimulaGon
is not a replacement for
Algorithm
Reader Filter Filter Filter Rendering Algorithm SimulaGon
Reader Filter Filter Filter Rendering Algorithm SimulaGon
VTK-m Use Case
- Convert a traditional visualization pipeline into Catalyst Live GPU pipeline to provide
computational monitoring of simulation results
Live Per Timestep
VisualizaGon Format SimulaGon Format
33
Thank You!
Robert Maynard
robert.maynard@kitware.com
@robertjmaynard
Please complete the Presenter Evaluation sent to you by email or through the GTC Mobile App. Your feedback is important!
Checkout out: Kitware @ www.kitware.com VTK @ www.vtk.org VTK-m @ m.vtk.org 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