Visualization Toolkit: Improving Rendering and Compute on GPUs - - PowerPoint PPT Presentation

visualization toolkit improving rendering and compute on
SMART_READER_LITE
LIVE PREVIEW

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,


slide-1
SLIDE 1

Robert Maynard

GTC, San Jose, CA April, 2016

Visualization Toolkit: Improving Rendering and Compute on GPUs

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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
slide-4
SLIDE 4

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
slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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
slide-9
SLIDE 9

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
slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14
  • 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

slide-15
SLIDE 15
  • 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

slide-16
SLIDE 16
  • Point Cloud Algorithmic Efforts

– Modeling – Cleaning – Segmentation – Registration – Geometry – Fitting – Surface reconstruction – Subsampling / LOD

VTK Point Cloud Work

slide-17
SLIDE 17

ParaView is an open-source, multi-platform, data analysis and visualization application for analyzing extremely large datasets using distributed memory computing resources

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20
slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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

slide-24
SLIDE 24

Other Catalyst Export Options

  • Output to Cinema

– Static vs Spherical Camera

Θ φ

slide-25
SLIDE 25

VTK-m

A single place for the analysis and visualization community to collaborate, contribute, and leverage massively threaded algorithms

slide-26
SLIDE 26

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.

slide-27
SLIDE 27

Algorithm SimulaGon

is not a replacement for

slide-28
SLIDE 28

Filter SimulaGon

is not a replacement for

Algorithm

slide-29
SLIDE 29

Reader Filter Filter Filter Rendering Algorithm SimulaGon

slide-30
SLIDE 30

Reader Filter Filter Filter Rendering Algorithm SimulaGon

slide-31
SLIDE 31

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

slide-32
SLIDE 32
slide-33
SLIDE 33

33

slide-34
SLIDE 34

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