21
Alexander Kuhn and Marc Nienhaus, March 29, 2018 NVIDIA INDEX IMPLEMENTING ADVANCED DATA VISUALIZATION WITH NVIDIA INDEX

CUDA Kernel COMPONENTS ENABLING USER-DEFINED DATA …on-demand.gputechconf.com/gtc/2018/presentation/s8705-implementing... · NVIDIA INDEX FOR PARAVIEW PLUGIN ON NGC. 17 NVIDIA INDEX

  • Upload
    lamdien

  • View
    241

  • Download
    0

Embed Size (px)

Citation preview

Alexander Kuhn and Marc Nienhaus, March 29, 2018

NVIDIA INDEXIMPLEMENTING ADVANCED DATA VISUALIZATION WITH NVIDIA INDEX

2

NVIDIA INDEXAnalyze Large-Scale Data for Faster Discoveries

INTERACTIVE SCALABLE

CLOUD MASSIVE

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

4

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

5

NVIDIA INDEX

class NV_IDX_volume_sample_program{

NV_IDX_VOLUME_SAMPLE_PROGRAM

public: NV_IDX_DEVICE_INLINE_MEMBERvoid init_instance() {

// …}

NV_IDX_DEVICE_INLINE_MEMBERint 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_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;

}

int execute(

const float3&

sample_pos,

float4& color)

{

color = foo(sample_pos);

return NV_IDX_PROG_OK;

}

6

NVIDIA INDEX

class NV_IDX_surface_sample_program{

NV_IDX_VOLUME_SAMPLE_PROGRAM

public: NV_IDX_DEVICE_INLINE_MEMBERvoid init_instance() {

// …}

NV_IDX_DEVICE_INLINE_MEMBERint 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++)

object surface

view rays samples

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

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

9

NVIDIA INDEXReal 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)

10

LIVE TUTORIAL

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!

[email protected]

[email protected]

https://developer.nvidia.com/index

Wrap Up

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

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

12

NVIDIA INDEX DOCKER IMAGE AVAILABLE THROUGH NGC REPOSITORY

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

13

APPENDIX

14

Life Science(Microscopy, Brain of a Fly)

15

Climate Research(Weather Simulation)

16

NVIDIA INDEX FOR PARAVIEW PLUGIN ON NGC

17

NVIDIA INDEX FOR PARAVIEW PLUGIN ON NGC

18

LATEST NVIDIA 2.0 INDEX FEATURES

CUDA programmable advanced visualizationSpeed up the discovery process

CUDA programmable data query operationsBetter justify observed phenomena

DGX technology optimized NVIDIA IndeXAccelerate data visualization process

NVIDIA OptiX TechnologyVisualize the most complex data structures

Application LayerConvenience functionalities simplifies the integration of NVIDIA IndeX

Available Q2 2018

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)

object

transformations(M4x4f)

object grid

transformations

Sample Space

20

NVIDIA INDEXReal 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

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