High Fidelity, High Performance Computing Visualization

High Fidelity, High Performance Computing Visualization

Loading
Loading Social Plug-ins...
Language: English
Save to myLibrary Download PDF
Go to Page # Page of 42

Description: Trend 1: Increasing Data Size: Problem- Able to measure and model increasingly complex phenomena, Big data outgrowing peripheral memory, Performance Implications, Less practical to move the data over a WAN, Security issues when moving proprietary data out of the data center, Interactivity is key for scene understanding but harder to achieve. Image Quality Implications- Increased spatial and / or temporal resolution (more to look at), Can be more challenging to interpret visually. Trend 2: Increasing Shading Complexity - Improved illumination effect(shadows) needed to aid in scene understanding, Volumetric effects are also increasingly common (e.g., oil and gas applications), Difficult to compute efficiently in OpenGL* but intrinsic to ray tracing / ray casting.

Our Focus- High performance high fidelity rendering in software, improve performance for existing apps, enable new apps with higher fidelity and performance, Enable efficient usage of compute cluster resources, general purpose rendering on compute nodes, lower cost, reduce I/O, flexible resource allocation, in-situ / interactive rendering, Enable scalable performance from workstation to cluster, Large data, large data, large data. Rendering is a Highly Parallel Workload- Rendering exhibits substantial task and data parallelism, Pixels can be rendered independently of one another, Tiles of pixels are commonly rendered on different hardware threads, Vectorization can be exploited within a pixel or across pixels. Renderin ...Please navigate Paper pages for more details.

 
Author: Jim Jeffers (Fellow) | Visits: 1296 | Page Views: 1466
Domain:  High Tech Category: Displays Subcategory: Graphics 
Upload Date:
Link Back:
Short URL: https://www.wesrch.com/electronics/pdfEL1NAB7V3CXAB
Loading
Loading...



px *        px *

* Default width and height in pixels. Change it to your required dimensions.

 
Contents:
High Fidelity, High Performance Computing
Visualization Enabled on Intel® Architecture
Jim Jeffers
Principal Engineer, Manager, Parallel Visualization
Engineering, Intel Corporation
BIGS003

Agenda
• Rendering Markets and Trends

• Intel’s High Fidelity Visualization Solutions Overview
• Professional Rendering Solution – Embree [Available Today]

• Technical Computing Rendering Architecture [Coming Soon]
• Wrap-Up
• Q&A

2

Agenda
• Rendering Markets and Trends

• Intel’s High Fidelity Visualization Solutions Overview
• Professional Rendering Solution – Embree [Available Today]

• Technical Computing Rendering Architecture [Coming Soon]
• Wrap-Up
• Q&A

3
3

Rendering Markets

PC and Workstation Graphics Professional Rendering
• gaming, CAD, engineering, ... • film, architecture, automotive, ...
• small to medium data size
• simple / pre-baked shading • photorealism is key
• high texture mapping
• universally ray tracing
* on GPU
• universally OpenGL
next talk
– Intel® Xeon® E3 Processor
4

*Bedroom scene from the DreamWorks Animation movie
“Peabody & Sherman” rendered with a prototype path tracer
based on the Intel Embree kernels.
Presented with permission of Dreamworks Animation*.

Technical Computing Rendering
• scientific visualization, CAD, ...
• typically very large data
• simple shading
• minimal texture mapping
• OpenGL, some ray tracing

this talk

Trend 1: Increasing Data Size
Problem
• Able to measure and model increasingly complex phenomena
• Big data outgrowing peripheral memory
Performance Implications
• Less practical to move the data over a WAN
• Security issues when moving proprietary data out of the data center
• Interactivity is key for scene understanding but harder to achieve
Image Quality Implications
• Increased spatial and / or temporal resolution (more to look at)
• Can be more challenging to interpret visually

5

Corollary: Workflow Moving into Data Center…

Instruments Simulation

Old:
New:

6

Data Center

File I/O

Filtering

Geometry

Rendering

Display

Data Center

Workstation

Workstation

OpenGL

Trend 2: Increasing Shading Complexity
• Improved illumination effects (shadows)
needed to aid in scene understanding
• Volumetric effects are also increasingly
common (e.g., oil and gas applications)

• Difficult to compute efficiently in OpenGL*
but intrinsic to ray tracing / ray casting
Data: Florida International University

7

Render Method and Target Architecture

Data Size
< GPU
Memory

(many existing
apps in this space)

Data Size
> GPU
Memory

OpenGL or
Ray Tracing

OpenGL*

Advanced
Shading

Ray Tracing

Ray Tracing

Increasing Image Quality

8

Increasing Data Size

Simple
Shading

Render Method and Target Architecture

Data Size
< GPU
Memory

(many existing
apps in this space)

Data Size
> GPU
Memory

OpenGL or
Ray Tracing

OpenGL*

Advanced
Shading

OpenGL

Ray Tracing

Ray Tracing

Intel® Iris™ Pro
Graphics GPU

Xeon or
Intel® Xeon Phi™

Ray Tracing

Intel® Xeon®

Intel Xeon or
Intel Xeon Phi

Increasing Image Quality

9

Increasing Data Size

Simple
Shading

Agenda
• Rendering Markets and Trends

• Intel’s High Fidelity Visualization Solutions Overview
• Professional Rendering Solution – Embree [Available Today]

• Technical Computing Rendering Architecture [Coming Soon]
• Wrap-Up
• Q&A

10

Our Focus
• High performance high fidelity rendering in software
- improve performance for existing apps
- enable new apps with higher fidelity and performance

• Enable efficient usage of compute cluster resources
- general purpose rendering on compute nodes
- lower cost, reduce I/O, flexible resource allocation, in-situ / interactive
rendering

• Enable scalable performance from workstation to cluster
• Large data, large data, large data

11

Data: Max-Planck Institute for Biophysical Chemistry

What We Are Building and Delivering

Professional Rendering

Technical Computing Rendering

Application

Application

Renderer

OpenGL* Renderer

Embree Kernel Library

OpenGL

Intel® Xeon® processor + Intel® Xeon Phi™
coprocessor
Bedroom scene from the DreamWorks Animation movie
“Peabody & Sherman” rendered with a prototype path tracer
based on the Intel Embree kernels.
Presented with permission of Dreamworks Animation*.

12

SWR
Intel Xeon

OSPRay
Renderer
GLuRay
OSPRay + Embree

Intel Xeon + Intel Xeon
Phi

Rendering is a Highly Parallel Workload



Pixels can be rendered independently
of one another



Tiles of pixels are commonly rendered
on different hardware threads



13

Rendering exhibits substantial task
and data parallelism

Vectorization can be exploited within a
pixel or across pixels

Rendering on Intel® Architectures
Performance (Example: Ray Tracing)





Ray tracing often operates on hierarchical data structures
Traversal requires fine grained data-dependent branching
High utilization challenging on very wide vector architectures
Favors many cores, single-threaded performance, large register
files, 4 - 16 wide vectors [Wald et al. 2014]

Memory




14

Large data rendering often requires large memory
Intel® Xeon Phi™ coprocessor scales to 16GB
Intel® Xeon® processor to 256GB+
Shared memory systems to multiple TB (SGI* UV* 2000*)

Intel® SPMD Program Compiler (Intel® SPC)



Single program multiple data programming model



Not an auto-vectorizing compiler



Code looks serial but keywords explicitly denote which variables are parallel



Code need not be rewritten for different ISAs or vector widths



Backends for Intel SSE, AVX, IMCI instruction sets



Language-level support for task parallelism



15

Large subset of C89 with features from C99 and C++

https://ispc.github.io

Intel® Streaming SIMD Extensions (Intel® SSE); Intel® Advanced Vector Extensions (Intel® AVX); Intel® Initial Many Core Instructions (Intel® IMCI)

Task Parallelism in Intel® SPC
/* Called by the C++ code to render an image. */
export void renderImage(uniform int* uniform pixels,
const uniform Vec2i imageSize,
const uniform Camera& camera)
{
/* Image dimensions in
uniform int tileCountX
uniform int tileCountY
uniform int tileCount

tiles. */
= (imageSize.x + TILE_WIDTH - 1) / TILE_WIDTH;
= (imageSize.y + TILE_HEIGHT - 1) / TILE_HEIGHT;
= tileCountX * tileCountY;

/* Render tiles of pixels on different threads. */
launch[tileCount] renderTile(pixels, imageSize, camera);
/* Wait until all tiles have been rendered. */
sync;
}

16

Vectorization in Intel® SPC
/* Render a tile of pixels in the image. */
task void renderTile(uniform int* uniform pixels,
const uniform Vec2i &imageSize,
const uniform Camera& camera)
{
/* Tile extents in image coordinates. */
uniform int x0, y0, x1, y1; computeTileExtents(imageSize, x0, y0, x1, y1);
/* Render pixels across SIMD lanes. */
foreach (y = y0 ... y1, x = x0 ... x1) {
varying Vec3f color = renderPixel(x, y,
varying unsigned int r = (unsigned int)
varying unsigned int g = (unsigned int)
varying unsigned int b = (unsigned int)
pixels[y * imageSize.x + x] = (b