Marcus D. Hanwell Robert Maynard
GTC, San Jose, CA March, 2015
1
Visualization Toolkit: Faster, Better, Open Scientific Rendering and Compute
Faster, Better, Open Scientific Rendering and Compute GTC, San - - PowerPoint PPT Presentation
Visualization Toolkit: Faster, Better, Open Scientific Rendering and Compute GTC, San Jose, CA March, 2015 Marcus D. Hanwell Robert Maynard 1 Accelerating Visualization with Partnerships NVIDIA and Kitware collaborate to bring advances
Marcus D. Hanwell Robert Maynard
GTC, San Jose, CA March, 2015
1
Visualization Toolkit: Faster, Better, Open Scientific Rendering and Compute
Accelerating Visualization with Partnerships
advances in scientific visualization
– In-site visualization – Advanced rendering
2
Kitware, Inc.
– Clifton Park, NY – Carrboro, NC – Santa Fe, NM – Lyon, France
Administration’s Tibbetts Award
Editor’s Choice
2008
Kitware’s customers & collaborators
Over 75 academic institutions including…
Technology
Over 50 government agencies and labs including…
(NSF)
Projects Agency (DARPA)
Over 100 commercial companies in fields including…
Kitware: Core Technologies
5
Business Model: Open Source
– Normally BSD-licensed – Collaboration platforms
6
Overview of Software Process
– Open-source frameworks – Developed openly – Cross-platform compatibility – Tested and verified – Contribution model – Supported by Kitware experts
7
The Visualization Toolkit
code for “The Visualization Textbook”.
developed all over the world:
– ParaView, VisIt – Osirix, 3D Slicer – Mayavi, MOOSE
8
Going From Data to Visualization
9
VTK Visualizations
10
HPC Visualization Large Displays and Virtual Reality Mobile Visualization Interactive Medical Application and Visualization
VTK Architecture
– Compiled C++ core (faster algorithms) – Interpreted applications (rapid development) – Interpreted layer generated automatically
11
C++ core Interpreter
The Visualization Pipeline
data objects to generate geometry
12
Source Data Data Filter Filter Data Data Mapper Mapper Actor Actor
Render on screen
VTK Organization
– Rendering API uses OpenGL backend – Core rendering does not link to/use OpenGL
13
Basic Library Hierarchy
14
vtkRenderingCore
OpenGL OpenGL2
vtkFreeType
OpenGL OpenGL2
Legacy Rendering
– Optionally uses some extensions
– Virtual functions, switches, …
15
Polygonal Rendering Rewrite
– OpenGL 2.1, OpenGL ES 2.0
– Use VBOs, VAOs, shaders, “new” OpenGL
16
Volume Rendering Rewrite
– Works well on Linux, Mac, and Windows – Uses less extensions, more core GL 2.1+
17
Removing Old Calls
– vtkPolyData needs packed triangles
18
Performance Improvements
– Previously large systems CPU bound
19
Performance: Old vs New
– Time to first render – Average time of rotated subsequent renders
– Memory errors/limits – Only possible to compare smaller geometries
20
Benchmarking Tools (Polygonal)
21
Time For First Frame (K6000)
2 4 6 8 10 12 14 16 1 million 5 million 20 million 30 million Time (s) Triangles Legacy Rewrite
22
Time for Subsequent Frames (K6000)
0.5 1 1.5 2 2.5 3 3.5 1 million 5 million 20 million 30 million Time (s) Triangles Legacy Rewrite
23
Rendering Speeds
– Not possible to compare above this
– Same on Windows, and Mac
24
Comparison of Cards (Rewrite)
25
0.5 1 1.5 2 2.5 3 3.5 1 2 3 5 10 20 30 50 100 200 Triangles per Second (B) Number of Triangles (M) K2200 K5200 K6000
Benchmarking Tools (Volume)
26
Time For First Frame (K40c)
27
5 10 15 20 25 10 million 50 million 100 million 500 million 1000 million Time (s) Voxels Legacy Rewrite
Time for Subsequent Frames (K40c)
28
0.002 0.004 0.006 0.008 0.01 0.012 0.014 10 million 50 million 100 million 500 million 1000 million Time (s) Voxels Legacy Rewrite
Mobile/Embedded
29
Custom Rendering
– Glyphing, impostors, composite data – Offer a reasonable starting point
30
Porting/Using New Rendering
– VTK_RENDERING_BACKEND=OpenGL2 – Compile time option, with possible link change – vtkRenderingOpenGL -> vtkRendering${VTK_RENDERING_BACKEND}
31
VTK-m Project Goals
collaborate, contribute, and leverage massively threaded algorithms.
concurrent algorithms by using data parallel algorithms
VTK-m Project Goals
advantage these parallel visualization and analysis tasks on a wide range of current and next-generation hardware.
VTK-m Architecture
In-Situ
Execution
Data Parallel Algorithms
Arrays
Post Processing
Worklets
DataModel
Filters
– EAVL, Oak Ridge National Laboratory – DAX, Sandia National Laboratory – PISTON, Los Alamos National Laboratory
VTK-m Arbitrary Composition
Array Handle and Dynamic Array Handle. –Allows for efficient in-situ integration –Allows for reduced data transfer
Control Environment Execution Environment
Transfer
Control Environment Execution Environment
VTK-m Arbitrary Composition
Point Arrangement Cells Coordinates Explicit Logical Implicit Structured Strided
Separated
Unstructured Strided
Separated
arrangements that exactly match their original data –In effect, this allows for hybrid and novel mesh types
functor()
Functor Mapping Applied to Topologies
[Baker, et al. 2010]
functor()
Functor Mapping Applied to Topologies
[Baker, et al. 2010]
What We Have So Far
– Core Types – Statically and Dynamically Typed Arrays – Device Interface (Serial, Cuda, TBB under development) – Basic Worklet and Dispatcher
What We Have So Far
– gcc (4.8+), clang, msvc (2010+), icc, and pgi
2 x Intel Xeon CPU E5-2620 v3 @ 2.40GHz + NVIDIA Tesla K40c Data: 1024^3 (floats)
17.28 30.2 1.514 0.524 5 10 15 20 25 30 35
Marching Cubes
VTK-m Cuda [No Transfer] VTK-m Cuda VTK-m Serial VTK Serial
2 x Intel Xeon CPU E5-2620 v3 @ 2.40GHz + NVIDIA Tesla K40c Data: 1024^3 (floats)
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 256^3 512^3 756^3 1024^3 Time (s) Triangles No Transfer Transfer
Future Directions
43
Coprocessing/In-situ
– Process data in place using VTK-m – Visualize and analyze using VTK
and analytics in science to all
44
Thank You!
Marcus D. Hanwell
Robert Maynard
45
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 and VTK @ www.vtk.org