from Geographic Source Data Tim Woodard Chief Technology Officer - - PowerPoint PPT Presentation

from geographic source data
SMART_READER_LITE
LIVE PREVIEW

from Geographic Source Data Tim Woodard Chief Technology Officer - - PowerPoint PPT Presentation

Run-Time Scene-Graph Construction from Geographic Source Data Tim Woodard Chief Technology Officer Diamond Visionics www.dvcsim.com GPU Technology Conference 2016 Three-Headed Monster 2 Evolution of Simulation 3 Source to Scene Pipeline


slide-1
SLIDE 1

Run-Time Scene-Graph Construction from Geographic Source Data

Tim Woodard Chief Technology Officer Diamond Visionics www.dvcsim.com

GPU Technology Conference 2016

slide-2
SLIDE 2

Three-Headed Monster

2

slide-3
SLIDE 3

Evolution of Simulation

3

slide-4
SLIDE 4

Source to Scene Pipeline

4

Scene Graph

Pre-computed LODs

slide-5
SLIDE 5

Pilot Expectations

5

https://vimeo.com/113736724

slide-6
SLIDE 6

Hardware Parallelism

6

slide-7
SLIDE 7

Software Serialization

7

slide-8
SLIDE 8

Source to Scene Pipeline

8

Scene Graph

Pre-computed LODs

slide-9
SLIDE 9

 Defer commitment to as late as possible

 Pre-compiling data results in expansion and loss of abstraction  Pre-compiling makes changing data and/or rendering fidelity costly  Pre-compiling does not

 Use data structures that are memory-friendly

 Not always obvious, can go against academic guidelines

 Use parallelism effectively

 Minimal locking of shared resources

 Eliminate driver overhead

Slaying the Beast

9

slide-10
SLIDE 10

OpenGL Rendering

Scene Graph

// Display lists

glNewList(list_id,GL_COMPILE); // ...Call draw commands glEndList(); // Draw display list with one command glCallList(list_id);

slide-11
SLIDE 11

OpenGL Rendering

11

slide-12
SLIDE 12

Vulkan FTW!

12

From: www.khronos.org/vulkan

slide-13
SLIDE 13

CL is OpenGL extension which offers much of what Vulkan provides

Greatly reduces driver overhead

Until Vulkan, Command List

// Example of a state command typedef struct { GLuint header; float scale; float bias; } PolygonOffsetCommandNV; // Example of a draw command typedef struct { GLuint header; GLenum mode; GLuint count; GLuint instanceCount; GLuint first; GLuint baseInstance; } DrawArraysInstancedCommandNV;

char tokens[]; // ... Pack state and draw commands into tokens array // Initialize token buffer glGenBuffers(1, &token_id); glNamedBufferDataEXT(token_id, sizeof(tokens), tokens, ...); // Draw tokens glDrawCommandsNV(GL_TRIANGLES, id, offsets, sizes, num_tokens);

slide-14
SLIDE 14

Results

14

 Going from K6000 to M6000, saw 100% performance improvement  Test scene, 5.66M polygons, full-scene shadows  Became CPU-bound

 Modern OpenGL, CPU times dropped from 9.8 to 7.2ms

(see GTC 2015 talk)

 Better scene graph organization: 7.2 to 4.5ms!

GPU times about the same, so GPU-bound.

 Able to increase fidelity NOW  Ready for Pascal!

slide-15
SLIDE 15

Hardware Consolidation

15

slide-16
SLIDE 16

16

Integration with NVIDIA WaveWorks

slide-17
SLIDE 17

NVIDIA WaveWorks Integration

17

Related talks:

  • S6138 - GPU-Driven Rendering in Vulkan and OpenGL
  • S6817 - High-Performance, Low-Overhead Rendering with

OpenGL and Vulkan

  • S6818 - Vulkan and NVIDIA: The Essentials

Exhibit hall: PNY and Concurrent

Tim Woodard timw@dvcsim.com

Thank you!

Please complete the Presenter Evaluation sent to you by email

  • r through the GTC Mobile App. Your feedback is important!