SCIENTIFIC VISUALIZATION ON GPU CLUSTERS PETER MESSMER, NVIDIA

Similar documents
SCIENTIFIC VISUALIZATION IN HPC

3D Graphics and OpenGl. First Steps

Introduction to Visualization on Stampede

API Background. Prof. George Wolberg Dept. of Computer Science City College of New York

2.11 Particle Systems

Models and Architectures

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

Spring 2011 Prof. Hyesoon Kim

GeForce3 OpenGL Performance. John Spitzer

CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015

Spring 2009 Prof. Hyesoon Kim

Windowing System on a 3D Pipeline. February 2005

Hardware Accelerated Volume Visualization. Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Graphics Hardware. Instructor Stephen J. Guy

ECP Alpine: Algorithms and Infrastructure for In Situ Visualization and Analysis

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Large Scale Data Visualization. CSC 7443: Scientific Information Visualization

Rendering Objects. Need to transform all geometry then

CSE4030 Introduction to Computer Graphics

Introduction to Computer Graphics with WebGL

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

Direct Rendering of Trimmed NURBS Surfaces

CS4620/5620: Lecture 14 Pipeline

Introduction to 3D Scientific Visualization. Training in Visualization for PRACE Summer of HPC 2013 Leon Kos, University of Ljubljana, Slovenia

Early History of APIs. PHIGS and X. SGI and GL. Programming with OpenGL Part 1: Background. Objectives

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

Graphics Programming

Programming with OpenGL Part 1: Background

OpenGL: Open Graphics Library. Introduction to OpenGL Part II. How do I render a geometric primitive? What is OpenGL

GPU-Based Volume Rendering of. Unstructured Grids. João L. D. Comba. Fábio F. Bernardon UFRGS

Introduction to scientific visualization with ParaView

Chris Sewell Li-Ta Lo James Ahrens Los Alamos National Laboratory

Welcome! Roberto Mucci SuperComputing Applications and Innovation Department

Volume Graphics Introduction

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University

CS427 Multicore Architecture and Parallel Computing

Visualization on BioHPC

GPGPU on Mobile Devices

Graphics Processing Unit Architecture (GPU Arch)

Working with Metal Overview

Visualization and VR for the Grid

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0

PowerVR Hardware. Architecture Overview for Developers

Technology for a better society. hetcomp.com

Portland State University ECE 588/688. Graphics Processors

Parallel Visualization, Data Formatting, Software Overview

An In-Situ Visualization Approach for the K computer using Mesa 3D and KVS

VisIt Libsim. An in-situ visualisation library

From Brook to CUDA. GPU Technology Conference

Insight VisREU Site. Agenda. Introduction to Scientific Visualization Using 6/16/2015. The purpose of visualization is insight, not pictures.

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Graphics Programming. Computer Graphics, VT 2016 Lecture 2, Chapter 2. Fredrik Nysjö Centre for Image analysis Uppsala University

Introduction to Scientific Visualization

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

The Rasterization Pipeline

The Application Stage. The Game Loop, Resource Management and Renderer Design

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Introduction to scientific visualization with ParaView

Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Pipeline Operations. CS 4620 Lecture 14

Interactive HPC: Large Scale In-Situ Visualization Using NVIDIA Index in ALYA MultiPhysics

Mobile Performance Tools and GPU Performance Tuning. Lars M. Bishop, NVIDIA Handheld DevTech Jason Allen, NVIDIA Handheld DevTools

Visualization with ParaView

Scientific Visualization Services at RZG

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

Introduction to Shaders.

Mobile HW and Bandwidth

Computer Graphics and Visualization. Graphics Systems and Models

CSC Graphics Programming. Budditha Hettige Department of Statistics and Computer Science

What is visualization? Why is it important?

Motivation Hardware Overview Programming model. GPU computing. Part 1: General introduction. Ch. Hoelbling. Wuppertal University

Scalar Field Visualization I

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

Bridging the Gap Between High Quality and High Performance for HPC Visualization

Visualization on TeraGrid at TACC

Profiling and Debugging Games on Mobile Platforms

HARNESSING IRREGULAR PARALLELISM: A CASE STUDY ON UNSTRUCTURED MESHES. Cliff Woolley, NVIDIA

Performance Analysis of Sobel Edge Detection Filter on GPU using CUDA & OpenGL

Accelerating Realism with the (NVIDIA Scene Graph)

Today s Agenda. Basic design of a graphics system. Introduction to OpenGL

CS 179: GPU Programming

Copyright Khronos Group Page 1

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

CS451Real-time Rendering Pipeline

Visualization Support at RZG

Module 13C: Using The 3D Graphics APIs OpenGL ES

Enabling In Situ Viz and Data Analysis with Provenance in libmesh

OpenGL on Android. Lecture 7. Android and Low-level Optimizations Summer School. 27 July 2015

Mobile AR Hardware Futures

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI

Surface Graphics. 200 polys 1,000 polys 15,000 polys. an empty foot. - a mesh of spline patches:

Computer graphics 2: Graduate seminar in computational aesthetics

OpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak

CMPE 665:Multiple Processor Systems CUDA-AWARE MPI VIGNESH GOVINDARAJULU KOTHANDAPANI RANJITH MURUGESAN

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse

Lecture 2. Shaders, GLSL and GPGPU

Transcription:

SCIENTIFIC VISUALIZATION ON GPU CLUSTERS PETER MESSMER, NVIDIA

Visualization Rendering

Visualization Isosurfaces, Isovolumes Field Operators (Gradient, Curl,.. ) Coordinate transformations Feature extraction Thresholding Clip, Slice Binning, Resample Streamlines Rendering Line Rendering Compositing Surface Rendering Volume Rendering

Visualization Filtering Field Isosurfaces, Operators (Gradient, Isovolumes Curl,.. ) Feature extraction Feature extraction Thresholding Field Operators Coordinate (Gradient, transformations Curl,.. ) Binning, Resample Streamlines Streamlines Isosurfaces, Isovolumes Clip, Slice Rendering Line Rendering Line Compositing Rendering Surface Rendering Volume Rendering

THE VISUALIZATION PIPELINE Simulation Filtering Rendering Compositing Visualization Simulation: Data as needed in numerical algorithm Filtering: Conversion of simulation data into data ready for rendering Typical operations: binning, down/up-sampling, iso-surface extraction, interpolation, coordinate transformation, sub-selection,.. Sometimes embedded in simulation Rendering: Conversion of shapes to pixels (Fragment processing) Compositing: Combination of independently generated pixels into final frame

PARTICULARITIES IN HPC VIZ Parallelism Remoteness Heterogeneity Images may be subject to copyright

OUTLINE Tools Paraview, Visit, others Rendering Enable HW rendering on Tesla Remote rendering Compositing Delivery In-situ visualization High-level overview. Some parts platform dependent. Check with your sysadmin.

VISUALIZATION APPLICATIONS

PARAVIEW Scalar, vector and tensor field data features Plots: contour, curve, mesh, pseudocolor, volume,.. Operators: slice, iso-surface, threshold, binning,.. Quantitative and qualitative analysis/vis Derived fields, dimension reduction, line-outs Pick & query Scalable architecture Developed by Kitware, open source http://www.paraview.org

PARAVIEW S SCALABLE ARCHITECTURE Client-server-server architecture Server MPI parallel Distributed filtering GPU accelerated, parallel rendering* * requires X server on each node

VISIT Scalar, vector and tensor field data features Plots: contour, curve, mesh, pseudo-color, volume,.. Operators: slice, iso-surface, threshold, binning,.. Quantitative and qualitative analysis/vis Derived fields, dimension reduction, line-outs Pick & query Scalable architecture Open source http://wci.llnl.gov/codes/visit/

VISIT S SCALABLE ARCHITECTURE Client-server architecture Server MPI parallel Distributed filtering (multi-)gpu accelerated, parallel rendering* * requires X server on each node

SOME OTHER TOOLS Wide range of visualization tools Often emerged from specialized application domain Tecplot, EnSight: structural analysis, CFD IndeX: seismic data processing & visualization IDL: image processing Early adopters of visual programming AVS/Express, OpenDX

FURTHER READING Paraview Tutorial: http://www.paraview.org/wiki/the_paraview_tutorial VisIt Manuals/Tutorials: http://wci.llnl.gov/codes/visit/manuals.html

RENDERING

OPENGL: API FOR GPU ACCELERATED RENDERING Primitives: points, lines, polygons Properties: colors, lighting, textures,.. View: camera position and perspective Shaders: Rendering to screen/framebuffer C-style functions, enums See e.g. What Every CUDA Programmer Should Know About OpenGL (http://www.nvidia.com/content/gtc/documents/1055_gtc09.pdf)

A SIMPLE OPENGL EXAMPLE glcolor3f(1.0f,0,0); State-based API (sticky attributes) glbegin(gl_quads); glvertex3f(-1.0f, -1.0f, 0.0f); // The bottom left corner glvertex3f(-1.0f, 1.0f, 0.0f); // The top left corner glvertex3f(1.0f, 1.0f, 0.0f); // The top right corner glvertex3f(1.0f, -1.0f, 0.0f); // The bottom right corner glend(); Drawing glflush(); Render to screen

glcolor3f(1.0f,0,0); glbegin(gl_quads); glvertex3f(-1.0f, -1.0f, 0.0f); glvertex3f(-1.0f, 1.0f, 0.0f); glvertex3f(1.0f, 1.0f, 0.0f); glvertex3f(1.0f, -1.0f, 0.0f); glend(); glflush();? float* vert={-1.0f, -1.0f,..}; float* d_vert; cudamalloc(&d_vert, n); cudamemcpy(d_vert, vert, n, cudamemcpyhosttodevice); renderquad<<<n/128, N>>>(d_vert); flushtoscreen<<<..>>>();

CUDA-OPENGL INTEROP: MAPPING MEMORY OpenGL: Opaque data buffer object (Mention here that this is mainly in legacy OpenGL and more control available in modern OpenGL) Vertex Buffer Object (VBO) User has very limited control CUDA: C-style memory management User has full control CUDA-OpenGL Interop: Map/Unmap OpenGL buffers into CUDA memory space cudagraphicsglregisterbuffer(cuda_vbo, *vbo, flags); cudagraphicsmapresources(1, cuda_vbo, 0);

CAN ALL GPUS SUPPORT OPENGL? GeForce : standard feature set including OpenGL 4.5 Quadro : + certain highly accelerated features (e.g. CAD) Tesla, K20X,m : Requires setting GPU Operation Mode (GOM) to All on Tesla K40, K80: GOM All on by default nvidia-smi -query-gpu=gom.current nvidia-smi q

OPENGL CONTEXT State of an OpenGL instance Incl. viewable surface Interface to windowing system Context creation: platform specific Not part of OpenGL Handled by Xserver in Linux/Unix-like systems New alternative: EGL (currently: OpenGL ES only) GLX: Interaction X<-> OpenGL

OPENGL ON HEADLESS SERVERS Application Application libgles libgl libglx Xlib libgles libgl libegl Xlib OpenGLES OpenGL GLX OpenGL ES OpenGL EGL 3D X Server 3D X Server Driver GPU Current State Driver GPU Current State for OpenGL ES applications

REMOTE RENDERING

X11 Events Commands LOCAL RENDERING Application libgl Xlib GLX OpenGL 2D/3D X Server Driver GPU, monitor attached

X-FORWARDING: THE SIMPLEST FORM OF REMOTE RENDERING libgl Application Xlib X11 Commands X11 Events OpenGL/GLX On remote system: export DISPLAY=59.151.136.110:0.0 2D/3D X Server Driver Network GPU, monitor attached

SERVER-SIDE RENDERING + REMOTE VIZ APPLICATION Application libgl Xlib OpenGL GLX X11 Events 2D/3D X Server X11 Cmds Client Driver GPU Network Driver GPU, monitor attached

Scraper SERVER-SIDE RENDERING + SCRAPING Application libgl Xlib OpenGL GLX X11 Events 2D/3D X Server X11 Cmds Images Client Driver GPU Network Driver GPU, monitor attached

NVFBC/NVIFR CAPTURE/ENCODING WITH NVFBC/NVIFR Application libgl Xlib GLX X11 Events X11 Cmds H.264 OpenGL Images 2D/3D X Server Client Driver GPU https://developer.nvidia.com/grid-app-game-streaming https://developer.nvidia.com/nvidia-video-codec-sdk Network Driver GPU, monitor attached

GLX FORKING WITH INTERPOSER LIBRARY Application libgl VirtualGL Xlib OpenGL Images GLX X11 Events Proxy X Server X11 Cmds Images 3D X Server Client App Driver GPU Network Driver GPU, monitor attached

EXAMPLE OF REMOTING SOLUTIONS TurboVNC + VirtualGL + Open source solution + Compressed image transport + Remote GPU accelerates OpenGL http://www.virtualgl.org NICE DCV + Commercial grade product + H264 encoded video stream http://www.nice-software.com/products/dcv

PARALLEL VISUALIZATION

PARALLEL VISUALIZATION Domain decomposition Parallelism at multiple levels Filtering Rendering - Both supported by VisIt & Paraview - Heavy lifting already done! - Typically biggest challenge: Setup in parallel environment - Both tools provide support for most common cases - Both VisIt & Paraview MPI parallel -> need custom build

PARALLEL COMPOSITING WITH ICET Each node renders fraction of image Sort last compositing Highly scalable Widely used (Paraview, VisIt.. ) http://icet.sandia.gov

IN-SITU VISUALIZATION

LEGACY WORKFLOW Sim Sim Sim File system pressure Long time-to-science Viz Viz Viz Time

PIPELINED IN-SITU ANALYSIS Sim Sim Sim Reduced file system consumption Early detection of faulty runs Reduced Viz Viz Viz Time

DIFFERENT VISUALIZATION SCENARIOS 1) Legacy workflow Compute GPU Filesystem Viz GPU Separate compute & viz system Communication via filesystem HPC System Viz System 2) Partitioned HPC system Different nodes for viz & compute Communication via High Perf Network Compute GPU Network HPC System Viz GPU 3) Co-Processing Compute on GPU, viz on CPU Compute and visualization on same GPU Compute +Viz nodes HPC System

SUPPORT FOR IN-SITU VISUALIZATION Paraview: Catalyst VisIt: LibSim Instrument application to expose data Paraview: Adaptor LibSim: Data access callbacks Potential for interactive steering S5815, today, 3:30: Programming Pointers to Optimize your In-Situ Visualization Pipeline S5710, Fri 9:30: In-Situ Data Analysis and Visualization: ParaView, Calalyst and VTK-m

SUMMARY Visualization is more than rendering Filtering often expensive component Fast rendering can enable new applications (interactive supercomputing) Tesla systems can be used for rendering On some systems requires GOM=All ON Xserver or EGL Remote visualization Supported by common tools Take advantage of available hardware (H264 encoder) Parallel Rendering Use IceT for compositing In-Situ Visualization Supported by common tools

THANK YOU