NVIDIA INDEX IMPLEMENTING ADVANCED DATA VISUALIZATION WITH NVIDIA - - PowerPoint PPT Presentation

nvidia index
SMART_READER_LITE
LIVE PREVIEW

NVIDIA INDEX IMPLEMENTING ADVANCED DATA VISUALIZATION WITH NVIDIA - - PowerPoint PPT Presentation

NVIDIA INDEX IMPLEMENTING ADVANCED DATA VISUALIZATION WITH NVIDIA INDEX Alexander Kuhn and Marc Nienhaus, March 29, 2018 NVIDIA INDEX Analyze Large-Scale Data for Faster Discoveries INTERACTIVE SCALABLE CLOUD MASSIVE 2 NVIDIA INDEX 2.0


slide-1
SLIDE 1

Alexander Kuhn and Marc Nienhaus, March 29, 2018

NVIDIA INDEX

IMPLEMENTING ADVANCED DATA VISUALIZATION WITH NVIDIA INDEX

slide-2
SLIDE 2

2

NVIDIA INDEX

Analyze Large-Scale Data for Faster Discoveries INTERACTIVE SCALABLE CLOUD MASSIVE

slide-3
SLIDE 3

3

NVIDIA INDEX 2.0

  • NVIDIA IndeX 2.0 Features:
  • programmable rendering programs (CUDA),

using real-time compiler

  • allows access to scene data,

highly customizable visualization

  • IndeX controls parallelization & data distribution
  • Access through NVIDIA GPU Cloud (NGC)
  • https://ngc.nvidia.com

Overview

slide-4
SLIDE 4

4

VOLUME SHADING USING USER-DEFINED SAMPLE PROGRAMS (‘SHADER’)

slide-5
SLIDE 5

5

NVIDIA INDEX

class NV_IDX_volume_sample_program { NV_IDX_VOLUME_SAMPLE_PROGRAM public: NV_IDX_DEVICE_INLINE_MEMBER void init_instance() { // … } NV_IDX_DEVICE_INLINE_MEMBER int execute( const NV_IDX_sample_info_self& sample_info, float4& output_color) { return NV_IDX_PROG_OK; } };

Example Volume Program (CUDA C++)

volume domain view ray samples

int execute( const float3& sample_pos, float4& color { color = foo(sample_p return NV_IDX_PROG_O } int execute( const float3& sample_pos, float4& color) { color = foo(sample_pos); return NV_IDX_PROG_OK; } int execute( const float3& sample_pos, float4& color) { color = foo(sample_pos); return NV_IDX_PROG_OK; } int execute( const float3& sample_pos, float4& color) { color = foo(sample_pos); return NV_IDX_PROG_OK; } int execute( const float3& sample_pos, float4& color) { color = foo(sample_pos); return NV_IDX_PROG_OK; } int execute( const float3& sample_pos, float4& color) { color = foo(sample_pos); return NV_IDX_PROG_OK; }

slide-6
SLIDE 6

6

NVIDIA INDEX

class NV_IDX_surface_sample_program { NV_IDX_VOLUME_SAMPLE_PROGRAM public: NV_IDX_DEVICE_INLINE_MEMBER void init_instance() { // … } NV_IDX_DEVICE_INLINE_MEMBER int execute( const NV_IDX_sample_info_self& sample_info, float& sample_depth, float4& output_color) { return NV_IDX_PROG_OK; }

};

Example Surface Program (CUDA C++)

  • bject surface

view rays samples

slide-7
SLIDE 7

7

NVIDIA INDEX

Example Data & Shape Objects:

  • NV_IDX_volume

 regular 3D volume

  • NV_IDX_plane

 simple plane object

  • NV_IDX_shape

 simple shape (here: ellipsoid)

Available Scene Access Objects:

  • NV_IDX_state

 main state class

state

  • NV_IDX_scene

 scene reference container

state.scene

  • NV_IDX_ray

 sampling ray

state.scene.ray

  • NV_IDX_camera

 camera object

state.scene.camera

  • NV_IDX_colormap

 colormap reference object

CUDA Programming Interface

slide-8
SLIDE 8

8

NVIDIA INDEX

Example Default IndeX Library Functionality

  • CUDA standard operators
  • Scene object access functions
  • Algebraic operations
  • basic vector & matrix operations
  • transformation functionality
  • Convenience operators
  • gamma operations
  • shading functions

CUDA Programming Interface

slide-9
SLIDE 9

9

NVIDIA INDEX

Real Time Compilation Interface

IndeX Tutorial:

1. Basic Functions and Program Layout

  • volume access & sampling
  • colormapping and modification

2. Extended CUDA Kernel Parameter Support

  • access scene shapes
  • simple shading operations

3. Basic Scene Element Access

  • sampling planes
  • simple shapes (spheres)
slide-10
SLIDE 10

10

LIVE TUTORIAL

slide-11
SLIDE 11

11

NVIDIA INDEX

  • introduction to CUDA sample programming
  • implementing sample programs for Supernova
  • download docker container at:
  • ngc.nvidia.com and try yourself
  • send us your feedback!

akuhn@nvidia.com mnienhaus@nvidia.com https://developer.nvidia.com/index

Wrap Up

STAG BEETLE

WWW.CG.TUWIEN.AC.AT/RESEARCH/PUBLICATIONS/2005/DATASET-STAGBEETLE/

GLOBAL WEATHER SIMULATION

ICON, HTTPS://WWW.MPIMET.MPG.DE/EN/SCIENCE/MODELS/ICON-LEM/

slide-12
SLIDE 12

12

NVIDIA INDEX DOCKER IMAGE AVAILABLE THROUGH NGC REPOSITORY

https://ngc.nvidia.com (requires Chrome or Chromium browser)

slide-13
SLIDE 13

13

APPENDIX

slide-14
SLIDE 14

14

Life Science

(Microscopy, Brain of a Fly)

slide-15
SLIDE 15

15

Climate Research

(Weather Simulation)

slide-16
SLIDE 16

16

NVIDIA INDEX FOR PARAVIEW PLUGIN ON NGC

slide-17
SLIDE 17

17

NVIDIA INDEX FOR PARAVIEW PLUGIN ON NGC

slide-18
SLIDE 18

18

LATEST NVIDIA 2.0 INDEX FEATURES

CUDA programmable advanced visualization

Speed up the discovery process

CUDA programmable data query operations

Better justify observed phenomena

DGX technology optimized NVIDIA IndeX

Accelerate data visualization process

NVIDIA OptiX Technology

Visualize the most complex data structures

Application Layer

Convenience functionalities simplifies the integration of NVIDIA IndeX

Available Q2 2018

slide-19
SLIDE 19

19

RTC TRANSFORMATION HANDLING

World Space Scene Space

Regular Volume (Object Space) Height Field (Object Space) Shapes (Object Space) Meshes (Object Space) Sample Space Sample Space Sample Space

global scene transformation

(M4x4f)

  • bject

transformations

(M4x4f)

  • bject grid

transformations

Sample Space

slide-20
SLIDE 20

20

NVIDIA INDEX

Real Time Compilation Interface

Basic Tipps & Tricks

  • Use CUDA standard functions carefully
  • avoid forced synchs
  • avoid dynamic memory allocations
  • Adapt kernel complextiy
  • avoid recomputations
  • e.g. expensive filtering should move into pre-processing stage
  • only perform lookups & sampling when really required
  • Custom kernel speed up tweeks maybe valuable
  • e.g. discard very low alpha values
  • Currently no save, keep kernels in separate editor
slide-21
SLIDE 21

21

NVIDIA INDEX

  • distributed, parallel rendering framework
  • strong scalability, massive data support
  • interactive, real-time data exploration
  • programmable CUDA sample programs
  • available as:

1. docker container 2. ParaView Plugin

Overview