Duksu Kim. Professional Experience Senior researcher, KISTI High performance visualization

Similar documents
Deformable and Fracturing Objects

Scheduling in Heterogeneous Computing Environments for Proximity Queries

Ph. D. Dissertation. Parallel Proximity Computation on Heterogeneous Computing Systems for Graphics Applications

Introduction to Parallel and Distributed Computing. Linh B. Ngo CPSC 3620

GRAPHICS PROCESSING UNITS

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Parallel Computing: Parallel Architectures Jin, Hai

Introduction to GPU hardware and to CUDA

GPU for HPC. October 2010

Portland State University ECE 588/688. Graphics Processors

GPU Programming. Lecture 1: Introduction. Miaoqing Huang University of Arkansas 1 / 27

CS 590: High Performance Computing. Parallel Computer Architectures. Lab 1 Starts Today. Already posted on Canvas (under Assignment) Let s look at it

GPU Fundamentals Jeff Larkin November 14, 2016

GPU Programming Using NVIDIA CUDA

Multi Agent Navigation on GPU. Avi Bleiweiss

RACBVHs: Random Accessible Compressed Bounding Volume Hierarchies

GPU ACCELERATED SELF-JOIN FOR THE DISTANCE SIMILARITY METRIC

GPU programming. Dr. Bernhard Kainz

NVIDIA GTX200: TeraFLOPS Visual Computing. August 26, 2008 John Tynefield

Parallel Processing SIMD, Vector and GPU s cont.

GPGPU LAB. Case study: Finite-Difference Time- Domain Method on CUDA

Serial. Parallel. CIT 668: System Architecture 2/14/2011. Topics. Serial and Parallel Computation. Parallel Computing

Scalable Multi Agent Simulation on the GPU. Avi Bleiweiss NVIDIA Corporation San Jose, 2009

Fast continuous collision detection among deformable Models using graphics processors CS-525 Presentation Presented by Harish

Fast BVH Construction on GPUs

Computing on GPUs. Prof. Dr. Uli Göhner. DYNAmore GmbH. Stuttgart, Germany

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

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

CS8803SC Software and Hardware Cooperative Computing GPGPU. Prof. Hyesoon Kim School of Computer Science Georgia Institute of Technology

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

High Performance Computing on GPUs using NVIDIA CUDA

Accelerating image registration on GPUs

High performance 2D Discrete Fourier Transform on Heterogeneous Platforms. Shrenik Lad, IIIT Hyderabad Advisor : Dr. Kishore Kothapalli

Lecture 25: Board Notes: Threads and GPUs

A Parallel Access Method for Spatial Data Using GPU

CPU-GPU Heterogeneous Computing

Introduction to parallel computing

INFOMAGR Advanced Graphics. Jacco Bikker - February April Welcome!

Finite Element Integration and Assembly on Modern Multi and Many-core Processors

WHY PARALLEL PROCESSING? (CE-401)

Out-of-Core Proximity Computation for Particle-based Fluid Simulations

A General Discussion on! Parallelism!

Introduction to Multicore architecture. Tao Zhang Oct. 21, 2010

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

HiPANQ Overview of NVIDIA GPU Architecture and Introduction to CUDA/OpenCL Programming, and Parallelization of LDPC codes.

Introduction to CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono

GPU Computing: Development and Analysis. Part 1. Anton Wijs Muhammad Osama. Marieke Huisman Sebastiaan Joosten

CME 213 S PRING Eric Darve

G P G P U : H I G H - P E R F O R M A N C E C O M P U T I N G

Multi-Processors and GPU

The future is parallel but it may not be easy

Introduction to GPGPU and GPU-architectures

GPU Computation Strategies & Tricks. Ian Buck NVIDIA

Large Scale Parallel Monte Carlo Tree Search on GPU

Heterogeneous platforms

GPUs and GPGPUs. Greg Blanton John T. Lubia

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

The Uintah Framework: A Unified Heterogeneous Task Scheduling and Runtime System

GPU Task-Parallelism: Primitives and Applications. Stanley Tzeng, Anjul Patney, John D. Owens University of California at Davis

Chapter 6. Parallel Processors from Client to Cloud. Copyright 2014 Elsevier Inc. All rights reserved.

ECE 8823: GPU Architectures. Objectives

Lecture 11 - GPU Ray Tracing (1)

Hardware/Software Co-Design

Tesla Architecture, CUDA and Optimization Strategies

Parallel Programming for Graphics

Lecture 1: Introduction and Computational Thinking

Data Partitioning on Heterogeneous Multicore and Multi-GPU systems Using Functional Performance Models of Data-Parallel Applictions

N-Body Simulation using CUDA. CSE 633 Fall 2010 Project by Suraj Alungal Balchand Advisor: Dr. Russ Miller State University of New York at Buffalo

Scientific Computing on GPUs: GPU Architecture Overview

Introduction to CUDA Programming

CUDA PROGRAMMING MODEL Chaithanya Gadiyam Swapnil S Jadhav

Hybrid Implementation of 3D Kirchhoff Migration

Outline Marquette University

Cross Teaching Parallelism and Ray Tracing: A Project based Approach to Teaching Applied Parallel Computing

ET International HPC Runtime Software. ET International Rishi Khan SC 11. Copyright 2011 ET International, Inc.

High Performance Computing Systems

Lecture 2: CUDA Programming

B. Tech. Project Second Stage Report on

Multipredicate Join Algorithms for Accelerating Relational Graph Processing on GPUs

Row Tracing with Hierarchical Occlusion Maps

CSL 860: Modern Parallel

Improving Performance of Machine Learning Workloads

A Hardware-Software Integrated Solution for Improved Single-Instruction Multi-Thread Processor Efficiency

Modern Processor Architectures. L25: Modern Compiler Design

Tesla GPU Computing A Revolution in High Performance Computing

High-Order Finite-Element Earthquake Modeling on very Large Clusters of CPUs or GPUs

Parallel Systems. Project topics

High Performance Computing. Leopold Grinberg T. J. Watson IBM Research Center, USA

Simultaneous Solving of Linear Programming Problems in GPU

INTRODUCTION TO OPENCL TM A Beginner s Tutorial. Udeepta Bordoloi AMD

RACBVHs: Random-Accessible Compressed Bounding Volume Hierarchies. Tae-Joon Kim, Bochang Moon, Duksu Kim, Sung-Eui Yoon, Member, IEEE

arxiv: v1 [physics.comp-ph] 4 Nov 2013

Fast Tridiagonal Solvers on GPU

Numerical Algorithms on Multi-GPU Architectures

HYPERDRIVE IMPLEMENTATION AND ANALYSIS OF A PARALLEL, CONJUGATE GRADIENT LINEAR SOLVER PROF. BRYANT PROF. KAYVON 15618: PARALLEL COMPUTER ARCHITECTURE

B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes

Recent Advances in Heterogeneous Computing using Charm++

Threading Hardware in G80

Parallel Architectures

Introduction to GPU computing

Transcription:

Duksu Kim Assistant professor, KORATEHC Education Ph.D. Computer Science, KAIST Parallel Proximity Computation on Heterogeneous Computing Systems for Graphics Applications Professional Experience Senior researcher, KISTI 2014.07 2018.02 High performance visualization Awards The Spotlight Paper, IEEE TVCG (Sept., 2013) Distinguished Paper Award, Pacific Graphics 2009 CUDA Coding Contest 2nd place, NVIDIA Korea 2015 Best programming award, NVIDIA Korea 2010 Student stipend award, ACM symposium on Interactive 3D Graphics and Games, 2009 System Programming (CPH341), Fall 2018 / Instructor: Duksu Kim, VHPC Lab., KOREATECH 1

KSC 2018 Tutorial Background on Heterogeneous Computing Duksu Kim High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 2

Outline Parallel Computing Architectures Multi-core CPU and GPU Heterogeneous Parallel Computing Heterogeneous computing system Heterogeneous parallel algorithm Tools for Heterogeneous Computing High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 3

Parallel Computing Architecture Flynn s Taxonomy Single core processor SISD Single instruction stream Single data stream Vector processor SIMD Single instruction stream Multiple data stream Not covered MISD Multiple instruction stream Single data stream MIMD Multiple instruction stream Multiple data stream Multi-core processor High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 4

Parallel Computing Architecture Flynn s Taxonomy MIMD Multiple Instruction, Multiple Data 여러개의명령어를각각의데이터에적용 A set of independent processors E.g., Multi-core CPUs ( up to 64 cores) Thread-level parallelism High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 5

Parallel Computing Architecture Flynn s Taxonomy SIMD Single Instruction, Multiple Data 하나의명령어를여러개의데이터에적용 Data Parallelism control unit n data items n ALUs x[1] x[2] x[n] ALU 1 ALU 2 ALU n for (i = 0; i < n; i++) x[i] += y[i]; High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 6

Parallel Computing Architecture Flynn s Taxonomy SIMD Single Instruction, Multiple Data 하나의명령어를여러개의데이터에적용 Data Parallelism E.g., 4 ALUs, 15 data Round ALU 1 ALU 2 ALU 3 ALU 4 1 X[0] X[1] X[2] X[3] 2 X[4] X[5] X[6] X[7] 3 X[8] X[9] X[10] X[11] 4 X[12] X[13] X[14] High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 7

Parallel Computing Architecture Flynn s Taxonomy SIMD Vector Processors Work with a vector (or data array) Typical examples of SIMD architecture E.g., MXX/SSE/AVX(x86), XeonPhi, GPU (SIMT) High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 8

Parallel Computing Architecture SIMT The architecture of GPU is called SIMT Rather than SIMD Single Instruction, Multiple Threads A group of threads is controlled by a control unit E.g. 32 threads (= warp) Each thread has its own control context Different with traditional SIMD Divergent workflow among threads in a group is allowed With a little performance penalty (e.g., work serialization) High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 9

Parallel Computing Architecture VS Multi-core CPU GPU High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 10

CPU vs GPU General Processing Unit Focus on the performance of a core Clock frequency, cache, branch prediction, Etc. Single/Multi-core 1 ~ 32 cores SISD (or MIMD) Single instruction, Single Data Graphics Processing Unit Focus on parallelization Many core Increasing the # of cores More than hundreds of cores SIMT Single instruction, Multiple Threads threads data a thread High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 11

CPU vs GPU Allocate more to Cache Control Optimized for Latency Sequential code Allocate more to Functional units Bandwidth Optimized for Throughput Streaming code High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 12

The difference between CPU and GPU CPU Strength High performance processing core Efficient irregular workflow handling Branch prediction Efficient handling for random memory access pattern Well-organized cache hierarchy Large memory space Weakness A small number of cores (up to 32) More space for controls Lower performance than GPU In a perspective of FLOPS High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 13

The difference between CPU and GPU GPU Strength A massive number of cores But, less powerful than CPU core Much higher performance than CPU In a perspective of FLOPS Weakness Small memory space High bandwidth memory = expensive Performance penalty for irregular workflow Weak for random memory access pattern High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 14

CPU Tasks with irregular workflow and random memory access pattern Large memory space GPU Compute-intensive and regular streaming tasks High performance Hierarchical traversal Primitive-level tasks Acceleration algorithms on graphics applications High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 15

Outline Parallel Computing Architectures Multi-core CPU and GPU Heterogeneous Parallel Computing Heterogeneous computing system Heterogeneous parallel algorithm Tools for Heterogeneous Computing High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 16

Heterogeneous Computing System A computing system consisting of more than one type of computing resources Examples A desktop PC having both multi-core CPUs and GPUs A multi-gpu system consisting of different types of GPUs High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 17

Heterogeneous Parallel Algorithm Use multiple heterogeneous computing resources at once for solving a problem Advantage Fully utilize all available computing resources Achieve high performance High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 18

Issues on Heterogeneous Algo. How to distribute workload to available resources Workload balance How to reduce communication overhead In this tutorial, we will learn how prior works have solved these issues for proximity computation and rendering. High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 19

Outline Parallel Computing Architectures Multi-core CPU and GPU Heterogeneous Parallel Computing Technical issues Tools for Heterogeneous Computing High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 20

APIs for using Multi-core CPU Pthreads (POSIX threads) 함수라이브러리 Low-level API 사용자가제어 스레드생성, 분배등 세밀한제어가능 (flexible) 구현이복잡함 처음부터병렬알고리즘작성필요 OpenMP 지시어 (directive) 기반 컴파일러가전처리및병렬코드생성 High-level API 컴파일러및런타임의제어 구현이간편함 지시어만추가하여 serial 코드를병렬화가능 제한적제어기능 But enough! Windows API, Intel TBB, Etc. High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 21

APIs for using GPUs CUDA Only support GPUs from Nvidia Highly optimized for Nvidia GPUs More control functions for Nvidia GPUs OpenCL Support most GPUs (e.g., Nvidia, AMD) Can utilize multiple GPUs with a same code Efficiency is not guaranteed Shader languages, OpenACC, Etc. High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 22

Multi-core CPUs + GPUs High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 23

Summary Heterogeneous systems are all around! E.g., multi-core CPUs + GPUs With heterogeneous parallel algorithm, We can greatly improve the performance of our application To design efficient heterogeneous parallel Algo., Understand characteristics of devices and tasks Two common issues Workload balance Communication overhead High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 24

Any Questions? bluekdct@gmail.com http://hpc.koreatech.ac.kr High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 25

Heterogeneous Computing on Proximity Computation KSC 2018 Tutorial Duksu Kim High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 1

Proximity Computation Compute relative placement or configuration of two objects Collision detection Distance computation Neighbor search Basic operations in various applications Graphics, simulations, robotics, Etc. High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 2

Proximity Computation in App. Motion planning Realistic rendering Particle-based Sim. Collision detection Others Ray tracing Others Neighbor search Others [Jia 2010] [Liangjun 2008] [Our in-house render] [Our in-house simulator] High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 3

Proximity Computation Acceleration Various acceleration techniques Acceleration hierarchies Culling algorithms Specialize algorithms for a target application Approximation algorithms Achieve several orders of magnitude performance improvement High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 4

Example: Acceleration Hierarchy for Proximity computation Collision Detection with BVH Bounding Volume Hierarchy (BVH) Organize bounding volumes as a tree Leaf nodes have triangles High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 5

Example: Acceleration Hierarchy for Proximity computation Collision Detection with BVH Hierarchy traversal A BV overlap test X Dequeue B C Y Z (A,X) Collision test pair queue High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 6

Example: Acceleration Hierarchy for Proximity computation Collision Detection with BVH Hierarchy traversal A BV overlap test X B C Y Z Dequeue Refine (B,Y) (B,Z) (C,Y) (C,Y) Collision test pair queue High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 7

Example: Acceleration Hierarchy for Proximity computation Collision Detection with BVH Hierarchy traversal Primitive-level test At leaf nodes, exact collision tests between two triangles Solving equations High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 8

Hierarchy-based Acceleration Algo. Widely used in many applications to improve the performance by reducing search space Two common task types Hierarchical traversal Primitive-level test High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 9

Hierarchy-based Acceleration Algorithms Two Common Task Types Hierarchical traversal Many branches Irregular workflow Random memory access pattern Primitive-level test Compute-intensive work Regular memory access pattern A set of tasks (streaming task) High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 10

In previous session, CPU Tasks with irregular workflow and random memory access pattern Large memory space GPU Compute-intensive and regular streaming tasks High performance Hierarchical traversal Primitive-level tasks Acceleration algorithms on graphics applications High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 11

HPCCD: Hybrid Parallel Continuous Collision Detection using CPUs and GPUs Duksu Kim, Jae-Pil Heo, JaeHyuk Huh, John Kim, Sung-Eui Yoon Computer Graphics Forum (Pacific Graphics), 2009 Received a distinguished paper award at the conference System Programming (CPH341), Fall 2018 / Instructor: Duksu Kim, VHPC Lab., KOREATECH 12

HPCCD Observation High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 13

HPCCD Approach Workload Distribution Hierarchical traversal tasks Initial task CPUs Results GPUs Primitive tests High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 14

HPCCD Approach Reduce Communication Overhead Identify disjoint tasks Remove synchronization in the main loop of the algorithm A B Optimize data communication between CPU and GPU Accessed nodes are disjoint Please see the paper for the details High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 15

HPCCD Results Testing Environment One quad-core CPU (Intel i7 CPU, 3.2 GHz ) Two GPUs (NVIDIA GeForce GTX285) Run eight CPU threads by using Intel s hyper threading technology Compare the performance over using a single CPU-core High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 16

HPCCD Results 94K triangles 10.4 X speed-up 23ms (43 FPS) 146K triangles 13.6 X speed-up 54ms (19 FPS) 252K triangles 12.5 X speed-up 54ms (19 FPS) High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 17

HPCCD Results 94K triangles High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 18

Scheduling in Heterogeneous Computing Environments for Proximity Queries Duksu Kim, Jinkyu Lee, Junghwan Lee, Insik Shin, John Kim, Sung-Eui Yoon IEEE Transactions on Visualization and Computer Graphics, Sept., 2013 Selected as the Spotlight Paper for the issue System Programming (CPH341), Fall 2018 / Instructor: Duksu Kim, VHPC Lab., KOREATECH 19

Scheduling in Heterogeneous Computing Environments for Proximity Queries Observation HPCCD = Manual workload distribution No guarantee to efficient utilization of computing resource High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 20

Scheduling in Heterogeneous Computing Environments for Proximity Queries Approach Overview Initial task Results Hierarchical traversal tasks & Primitive tests Optimizationbased Scheduler Task queue Result collector Computing resource 1 (CPU or GPU)... Computing resource n High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 21

Scheduling in Heterogeneous Computing Environments for Proximity Queries Optimization-based Scheduling Expected running time model Optimization formulation Iterative LP solver Design an accurate performance model Predict how much computation time is required to finish jobs on a resource Important to achieve the optimal scheduling result High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 22

Scheduling in Heterogeneous Computing Environments for Proximity Queries Performance Model Performance relationship between jobs and resources is complex Resource 1 Processor architecture Job type 1... Memory Execution model Job type n Communication Resource 2 Processor architecture Memory Execution model Communication High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 23

Scheduling in Heterogeneous Computing Environments for Proximity Queries Performance Model Abstract the complex relationship as an expected running time model Job type 1... Job type n Expected Running Time Resource 1 Processor architecture Memory Execution model Communication Resource 2 Processor architecture Memory Execution model Communication High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 24

Scheduling in Heterogeneous Computing Environments for Proximity Queries Performance Model Running time is linearly increased as the number of jobs is increased High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 25

Scheduling in Heterogeneous Computing Environments for Proximity Queries Performance Model Running time is linearly increased as the number of jobs is increased Each computing resource requires a specific amount of setup cost High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 26

Scheduling in Heterogeneous Computing Environments for Proximity Queries Performance Model Inter-device data transfer time depends on the pair of devices Data transfer time is linearly increased as the number of jobs is increased High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 27

Scheduling in Heterogeneous Computing Environments for Proximity Queries Expected Running Time Model T() : Expected running time on computing resource i for processing n jobs of job types j that are generated from computing resource k Setup time Processing time Data transfer time High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 28

Scheduling in Heterogeneous Computing Environments for Proximity Queries Optimization-based Scheduling Expected running time model Optimization formulation Iterative LP solver Formulate an optimization problem Based on the expected running time model Need to represent the scheduling problem as a form of optimization problem High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 29

Scheduling in Heterogeneous Computing Environments for Proximity Queries Optimization Formulation Minimize the makespan (L) problem Computing resource CPU 1 CPU 2 GPU 1 GPU 2 Processing time Processing time Processing time Processing time Makespan (L) Time High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 30

Scheduling in Heterogeneous Computing Environments for Proximity Queries Optimization Formulation Calculate the optimal job distribution with the expected running time Resource i Rest time for completing already assigned jobs Expected processing time 1 Processing time for jobs will be assigned 1 The expected processing time of computing resources is equal or smaller than the makespan High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 31

Scheduling in Heterogeneous Computing Environments for Proximity Queries Optimization Formulation Calculate the optimal job distribution with the expected running time 1 2 1 2 The expected processing time of computing resources is equal or smaller than the makespan There are no missing or duplicated jobs High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 32

Scheduling in Heterogeneous Computing Environments for Proximity Queries Optimization Formulation Calculate the optimal job distribution with the expected running time Job distribution 1 2 3 1 2 3 The expected processing time of computing resources is equal or smaller than the makespan There are no missing or duplicated jobs Each job is atomic High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 33

Scheduling in Heterogeneous Computing Environments for Proximity Queries Optimization-based Scheduling Expected running time model Optimization formulation Iterative LP solver NP-hard Problem! High computational cost Jobs are dynamically generated at runtime Optimization process takes long time for interactive or real-time applications High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 34

Scheduling in Heterogeneous Computing Environments for Proximity Queries Optimization-based Scheduling Expected running time model Optimization formulation Iterative LP solver Designed an iterative LP solving algorithm to handle the piece-wise condition Positive floating-point numbers Please see the paper for the details 35 High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 35

Scheduling in Heterogeneous Computing Environments for Proximity Queries Results Tested with various applications Simulations (Continuous collision detection) Motion planning (Discrete collision detection) Global illumination (Ray-Triangle intersection) High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 36

Scheduling in Heterogeneous Computing Environments for Proximity Queries Results FPS Continuous collision detection Ours Work stealing Fracturing simulation (252K Tri.) Use different GPUs (high heterogeneity) +GTX285 +Tesla2075 +GTX480 +GTX580 For conservative comparison, we did manual tuning to get the best performance for tested methods except for ours High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 37

Scheduling in Heterogeneous Computing Environments for Proximity Queries Results FPS Motion planning (137K Tri., 50K samples) Ours Round-robin Work stealing FPS Use different GPUs Global illumination (436K Tri., 80M rays) Ours Work stealing Round-robin For conservative comparison, we did manual tuning to get the best performance for tested methods except for ours Use different GPUs High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 38

Out-of-Core Proximity Computation for Particle-based Fluid Simulations Duksu Kim, Myung-Bae Son, Young J. Kim, Jeong-Mo Hong, Sung-Eui Yoon High Performance Graphics, 2014 System Programming (CPH341), Fall 2018 / Instructor: Duksu Kim, VHPC Lab., KOREATECH 39

OOCNNS Particle-based Fluid Simulation Neighbor search Performance bottleneck - Takes 60~80% of simulation computation time Compute force ε Move particles ε-nearest Neighbor (ε-nn) High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 40

OOCNNS Observation GPU shows much higher performance than CPU But, for a large scale simulation, The device memory on a GPU is not enough to load whole grid data and store lists of neighbors for all particles CPU has relatively large memory space More than hundreds of GBs High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 41

OOCNNS Approach Out-of-core Algorithm Main memory (CPU side) GPU - Sub-grid(Block) data - Particle data Device memory Results ε-nn High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 42

OOCNNS Approach Boundary Region Required data in adjacent blocks Inefficient to handle in out-of-core manner Multi-core CPUs handles the boundary region CPU (main) memory contain all required data Ratio of boundary region is usually much smaller than inner region High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 43

OOCNNS Approach Hierarchical Work Distribution a b Workload tree - # of particles in the block - # of neighbors in the block c a b c Front nodes d d How to determine the block size? Block size < GPU memory Please see the paper for the details High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 44

OOCNNS Results NVIDIA mapped memory Tech - Map CPU memory space into GPU memory address space Map-GPU Ours Up to 65.6 M Particles Maximum data size: 13 GB High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 45

OOCNNS Results 15.8 M Particles Maximum data size: 6 GB Up to 32.7 M Particles Maximum data size: 16 GB High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 46

OOCNNS Results Map-GPU Up to 26 X Our method A CPU core Up to 8.4 X Up to 51 X 12 CPU cores 12 CPU cores +One GPU Up to 6.3 X High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 47

Summary We have learned how prior work improve the performance of the proximity computation with heterogeneous parallel algorithms Hints for designing a heterogeneous parallel Algo. Understand characteristics of tasks and resources Computational and Spatial perspectives Generally, Hierarchical work maps to CPU-like architectures Compute-intensive work maps to GPU-like architectures To achieve an optimal performance, Formulate performance model Design a dynamic work distribution algorithm High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 48

Any Questions? bluekdct@gmail.com http://hpc.koreatech.ac.kr High Performance, Heterogeneous Parallel Computing (HPC) Lab., KOREATECH 49