Coping with Complexity: CPUs, GPUs and Real-world Applications

Similar documents
Next Generation GPU Architecture Code-named Fermi

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

Performance Evaluation of NAS Parallel Benchmarks on Intel Xeon Phi

GPU System Architecture. Alan Gray EPCC The University of Edinburgh

HPC with Multicore and GPUs

Optimizing a 3D-FWT code in a cluster of CPUs+GPUs

Stream Processing on GPUs Using Distributed Multimedia Middleware

Introduction to GPU Programming Languages

HETEROGENEOUS HPC, ARCHITECTURE OPTIMIZATION, AND NVLINK

Introduction to GPGPU. Tiziano Diamanti

GPU File System Encryption Kartik Kulkarni and Eugene Linkov

Computer Graphics Hardware An Overview

Optimizing GPU-based application performance for the HP for the HP ProLiant SL390s G7 server

High Performance Matrix Inversion with Several GPUs

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

Overview on Modern Accelerators and Programming Paradigms Ivan Giro7o

Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga

Accelerating Simulation & Analysis with Hybrid GPU Parallelization and Cloud Computing

NVIDIA GeForce GTX 580 GPU Datasheet

Introduction to Cloud Computing

Writing Applications for the GPU Using the RapidMind Development Platform

Introduction to GP-GPUs. Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1

Evaluation of CUDA Fortran for the CFD code Strukti

Experiences on using GPU accelerators for data analysis in ROOT/RooFit

Case Study on Productivity and Performance of GPGPUs

In-Memory Databases Algorithms and Data Structures on Modern Hardware. Martin Faust David Schwalb Jens Krüger Jürgen Müller

Graphical Processing Units to Accelerate Orthorectification, Atmospheric Correction and Transformations for Big Data

Retargeting PLAPACK to Clusters with Hardware Accelerators

Clustering Billions of Data Points Using GPUs

Turbomachinery CFD on many-core platforms experiences and strategies

Parallel Programming Survey

GPUs for Scientific Computing

GeoImaging Accelerator Pansharp Test Results

Parallel Algorithm Engineering

Managing Adaptability in Heterogeneous Architectures through Performance Monitoring and Prediction

CSE 6040 Computing for Data Analytics: Methods and Tools

NVIDIA Tools For Profiling And Monitoring. David Goodwin

OpenCL Optimization. San Jose 10/2/2009 Peng Wang, NVIDIA

Architectures and Platforms

NVIDIA CUDA Software and GPU Parallel Computing Architecture. David B. Kirk, Chief Scientist

Performance Measurement of a High-Performance Computing System Utilized for Electronic Medical Record Management

Direct GPU/FPGA Communication Via PCI Express

Design and Optimization of OpenFOAM-based CFD Applications for Hybrid and Heterogeneous HPC Platforms

Lecture 3: Modern GPUs A Hardware Perspective Mohamed Zahran (aka Z) mzahran@cs.nyu.edu

Packet-based Network Traffic Monitoring and Analysis with GPUs

Parallel Computing. Benson Muite. benson.

GPGPU for Real-Time Data Analytics: Introduction. Nanyang Technological University, Singapore 2

FPGA-based Multithreading for In-Memory Hash Joins

Performance Evaluations of Graph Database using CUDA and OpenMP Compatible Libraries

Multi-GPU Load Balancing for In-situ Visualization

GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications

OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

Hardware-Aware Analysis and. Presentation Date: Sep 15 th 2009 Chrissie C. Cui

Home Exam 3: Distributed Video Encoding using Dolphin PCI Express Networks. October 20 th 2015

~ Greetings from WSU CAPPLab ~

Keys to node-level performance analysis and threading in HPC applications

big.little Technology Moves Towards Fully Heterogeneous Global Task Scheduling Improving Energy Efficiency and Performance in Mobile Devices

Implementation of Stereo Matching Using High Level Compiler for Parallel Computing Acceleration

Texture Cache Approximation on GPUs

Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming

Binary search tree with SIMD bandwidth optimization using SSE

Trends in High-Performance Computing for Power Grid Applications

GPU Architectures. A CPU Perspective. Data Parallelism: What is it, and how to exploit it? Workload characteristics

FLOATING-POINT ARITHMETIC IN AMD PROCESSORS MICHAEL SCHULTE AMD RESEARCH JUNE 2015

Accelerating BIRCH for Clustering Large Scale Streaming Data Using CUDA Dynamic Parallelism

Auto-Tunning of Data Communication on Heterogeneous Systems

GPU Performance Analysis and Optimisation

High Performance GPGPU Computer for Embedded Systems

GPU Hardware and Programming Models. Jeremy Appleyard, September 2015

Embedded Systems: map to FPGA, GPU, CPU?

Experiences With Mobile Processors for Energy Efficient HPC

COSCO 2015 Heterogeneous Computing Programming

The High Performance Internet of Things: using GVirtuS for gluing cloud computing and ubiquitous connected devices

L20: GPU Architecture and Models

ACCELERATING SELECT WHERE AND SELECT JOIN QUERIES ON A GPU

The Future Of Animation Is Games

Network Traffic Monitoring & Analysis with GPUs

MapGraph. A High Level API for Fast Development of High Performance Graphic Analytics on GPUs.

Power-Aware High-Performance Scientific Computing

Building an Inexpensive Parallel Computer

Chapter 1 Computer System Overview

Data Center and Cloud Computing Market Landscape and Challenges

Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association

Chapter 2 Parallel Architecture, Software And Performance

Cloud Data Center Acceleration 2015

A GPU COMPUTING PLATFORM (SAGA) AND A CFD CODE ON GPU FOR AEROSPACE APPLICATIONS

Accelerating variant calling

ICRI-CI Retreat Architecture track

Motivation: Smartphone Market

Performance of Software Switching

ultra fast SOM using CUDA

Intro to GPU computing. Spring 2015 Mark Silberstein, , Technion 1

Transcription:

Coping with Complexity: CPUs, GPUs and Real-world Applications Leonel Sousa, Frederico Pratas, Svetislav Momcilovic and Aleksandar Ilic 9 th Scheduling for Large Scale Systems Workshop Lyon, France July 201 1

Motivation Commodity computers = Heterogeneous systems Multi-core General Purpose Processors (CPUs) Graphics Processing Units (GPUs) Special accelerators, co-processors, FPGAs, mobile and wearable systems Significant computing power Not yet fully exploited for efficient collaborative computing Heterogeneity makes it really difficult! Applications, devices, interconnects, systems Performance modeling and load balancing for efficient computing I is variable 2

Outline Multi-module Applications Node: CPU+GPU platform Load Balancing Performance modeling General (FP) Applications Device: multicore CPUs Performance modeling 3

Outline Multi-module Applications Node: CPU+GPU platform Load Balancing application- and hardware-specific Performance modeling General (FP) Applications Device: multicore CPUs Performance modeling hardware-specific

Outline Multi-module Applications Node: CPU+GPU platform Load Balancing Performance modeling General (FP) Applications Device: multicore CPUs Performance modeling 6

VDRAM GigaThread Host Interface VDRAM System Agent (DRAM Controller, PCIe...) VDRAM VDRAM VDRAM VDRAM Node: CPU+GPU platform CORE 0 Cache L2 Cache Graphics Processing Cluster SM Raster Engine SM SM CORE 1 Cache L2 Cache Ring interconnect SM CORE 2 Cache L2 Cache L3 Cache Graphics Processing Cluster Raster Engine SM SM SM CORE 3 Cache L2 Cache SM Multi-core CPU (Master) Replication of identical cores Memory hierarchy: private and shared caches Programming: OpenMP, Pthreads, OpenCL GPUs/Accelerators (distant workers) Large number of simple cores Complex memory hierarchy: global/local/shared Programming: CUDA, OpenCL Unified L2 Cache SM SM SM SM SM SM SM SM Raster Engine Raster Engine 7

VDRAM GigaThread Host Interface VDRAM System Agent (DRAM Controller, PCIe...) VDRAM VDRAM VDRAM VDRAM Node: CPU+GPU platform CORE 0 Cache L2 Cache Graphics Processing Cluster SM SM Raster Engine SM SM CORE 1 Cache L2 Cache SM SM Raster Engine Ring interconnect SM Unified L2 Cache SM CORE 2 Cache L2 Cache L3 Cache Graphics Processing Cluster Raster Engine SM SM SM SM SM SM Raster Engine CORE 3 CORE 0 CORE 1 CORE 2 CORE 3 GPU 0 Interconnection Buses GPU 1 Cache L2 Cache SM GPU 2 SM Multi-core CPU (Master) Replication of identical cores Memory hierarchy: private and shared caches Programming: OpenMP, PThreads, OpenCL GPUs/Accelerators (distant workers) Large number of simple cores Complex memory hierarchy: global/local/shared Programming: CUDA, OpenCL Configuration: Maxeler data-flow engines Collaborative CPU+GPU execution Architectural diversity and programmability Code parallelization on a per device basis Integration into a single unified environment (OpenCL, StarPU, StarSs, CHPS, ) 8

Node: CPU+GPU platform CORE 0 CORE 1 CORE 2 CORE 3 Interconnection Buses GPU vs. CPU performance: GPU usually much faster, but not for all problems Performance might differ by orders of magnitude Accurate performance modeling is required! GPU_F (NVIDIA GTX580) GPU 0 GPU_T (NVIDIA GTX285) GPU 1 1 CPU Core (Intel i7 950) GPU 2 Full models with MKL/CUBLAS (column-based 1D dgemm) 9

Node: CPU+GPU platform CORE 0 CORE 1 CORE 2 CORE 3 Interconnection Buses GPU vs. CPU performance: GPU usually much faster, but not for all problems Performance might differ by orders of magnitude GPUs are connected via PCI Express Bidirectional lines Asymmetric bandwidth (in different directions) GPU 0 GPU 1 GPU 2 10

Node: CPU+GPU platform CORE 0 CORE 1 CORE 2 CORE 3 Interconnection Buses GPU vs. CPU performance: GPU usually much faster, but not for all problems Performance might differ by orders of magnitude GPUs are connected via PCI Express Bidirectional lines Asymmetric bandwidth (in different directions) GPU 0 GPU 1 GPUs are co-processors CPU Core/Thread initiates all data-transfers and GPU kernel calls Core is usually completely devoted (underused) GPU 2 11

Node: CPU+GPU platform CORE 0 CORE 1 CORE 2 CORE 3 Interconnection Buses GPU vs. CPU performance: GPU usually much faster, but not for all problems Performance might differ by orders of magnitude GPUs are connected via PCI Express Bidirectional lines Asymmetric bandwidth (in different directions) GPU 0 GPU 1 GPUs are co-processors CPU Core/Thread initiates all data-transfers and GPU kernel calls Core is usually completely devoted (underused) GPU 2 GPUs do not benefit from paging Limited global memory! 12

Outline Multi-module Applications - Divisible Load Applications - H.26/AVC Video Encoding (inter-prediction mode) Node: CPU+GPU platform Load Balancing Performance modeling General (FP) Applications Device: multicore CPUs Performance modeling 13

Divisible Load Processing Discretely Divisible Load (DDL) Applications Computations divisible into pieces of arbitrary sizes (integers) Fractions independently processed in parallel with no precedence constraints N Applicable to a wide range of scientific problems Linear algebra, digital signal and image processing, database applications State of the art approaches in Heterogeneous Distributed Computing Assume symmetric bandwidth and an one-port model for communication links Limited memory: only input load size is considered; exceeding load simply redistributed Computation/communication time is not always a linear/affine function of the #chunks Single-level load balancing solutions 1

Divisible Load Processing Single-Module Applications Input Data Kernel CPU GPU Output Data Multi-module Applications Input M1 M1 CPU GPU Out/Input Data M2 CPU GPU Output M2 M1: load balancing, modeling M2: load balancing, modeling repartitioning 15

Divisible Load Processing Single-Module Applications Input Data Kernel CPU GPU Output Data Multi-module Applications Input M1 M1 CPU GPU Output M1 Output M2 M2 CPU GPU Input M2 M3 CPU GPU Output M3 Data-dependencies, multiple input/output buffers, shared access to data buffers 16

Divisible Load Processing H.26/AVC Video Encoding R* modules max. 6% on GPU (8.5% CPU) Dijkstra algorithm ME+INT+SME min. 9% on GPU (92% CPU) Load balancing and modeling d i CF ME MV m d i d i SF INT RF d i Adaptive real-time video encoding for HD sequences: SME MV s d i - Multi-module load balancing - Simultaneous inter-prediction load balancing - Communication minimization (shared data buffers) 17

Outline Multi-module Applications - Divisible Load Applications - H.26/AVC Video Encoding (inter-prediction mode) Node: CPU+GPU platform Load Balancing - FEVES - Framework for Efficient parallel Video Encoding on heterogeneous Systems Performance modeling General (FP) Applications Device: multicore CPUs Performance modeling 18

FEVES: General Layout UNIFIED FRAMEWORK Load Balancing Performance Characterization FEVES: Unified CPU+GPU encoding framework for collaborative inter-loop video encoding (extendable) organized in several functional blocks FRAMEWORK CONTROL Video Coding Manager Framework control provides the key functionality interacts with other blocks Video Coding Manager orchestrates collaborative execution Parallel Modules (CPU, GPU, ) Data Access Management invokes respective implementations of Parallel Modules automatic Data Access Management between DRAM and local memories Heterogeneous Devices Multi-core CPUs GPU1 GPU2 GPU3 DRAM Load Balancing with online Performance Characterization provides multi-module workload distributions for collaborative processing * A. Ilic, S. Momcilovic, N. Roma and L. Sousa., FEVES: Framework for Efficient Parallel Video Encoding on Heterogeneous Systems, in ICPP-201 19

Iterative phase Initialization FEVES: Framework Control UNIFIED FRAMEWORK Load Balancing Performance Characterization FRAMEWORK CONTROL Video Coding Manager Framework Control 1 Detect available devices (number, type, capabilities) 2 Instantiate respective Parallel Modules (CPU+GPU) 3 Configure Video Coding and Data Access Manager Equidistant partitioning for ME, INT and SME 5 Execute and record execution/transfer time 6 Initial Performance characterization for each device/module speeds and asymmetric bandwidth of PCIe links Parallel Modules (CPU, GPU, ) Heterogeneous Devices Multi-core CPUs GPU1 GPU2 Data Access Management GPU3 DRAM for each frame do 1 Determine load distributions with Load Balancing based on Performance Characterization 2 Execute modules with Video Coding Manager, Data Access Management and Parallel Modules 3 Record execution and transfer times and update Performance characterization * A. Ilic, S. Momcilovic, N. Roma and L. Sousa., FEVES: Framework for Efficient Parallel Video Encoding on Heterogeneous Systems, in ICPP-201 20

FEVES: Video Coding Manager UNIFIED FRAMEWORK Load Balancing Performance Character. FRAMEWORK CONTROL Video Coding Manager Parallel Modules Data Access Management Heterogeneous Devices DRAM Video Coding Manager orchestrates collaborative CPU+GPU video encoding automatically configured according to detected device capabilities (initialization phase), e.g., the amount of supported concurrency between computation and communication for GPU devices invokes highly optimized CPU and GPU implementations for the Library of Parallel Modules (SSE/AVX, Fermi/Kepler ) allows automatic Data Access Management between DRAM and local memories Collaborative Video Encoding orchestration Module executions and respective data transfers are invoked in a predefined order to ensure correctness of encoding In respect to inherent data-dependencies in H.26/AVC encoding several synchronization points are defined: t 1 reflects the dependency of SME module on the outputs of ME and INT modules t 2 marks the completion of SME module and beginning of R* processing t tot encoding of a current frame is completed (R* modules executed on single fastest device, e.g., GPU1) * A. Ilic, S. Momcilovic, N. Roma and L. Sousa., FEVES: Framework for Efficient Parallel Video Encoding on Heterogeneous Systems, in ICPP-201 21

FEVES: Data Access Management RF GPU i CF SF MV ME τ 1 τ 2 τ tot CF ME ME MV SME INT SF(RF) SME CF SME SF(RF-1) SME ** SF(RF) SME MV SME SME MV MC SF(RF) SME+1 H D s i-1 H D m i-1 m i-1 m i m i m i s i H D H D** H D produced s s H D D H i-1 i-1 s i-1 l i-1 l l l l i-1 i-1 σ i-1 i-1 l σ i i r l l i i l l i i l i i s s s i i i H D H D H D** D H s i-1 H D produced m i-1 m i-1 m i-1 m i m i m i m i s i H D UNIFIED FRAMEWORK Load Balancing Performance Character. FRAMEWORK CONTROL Video Coding Manager Parallel Modules Heterogeneous Devices Data Access Management DRAM s i-1 s i-1 D H MV SME produced s i s i H D RF Data Access Management for automatic data transfers and device memory management functionality strictly depends on the decisions from the Load Balancing block (load distributions) simultaneously tracks the state of several input/output buffers: current frame (CF), interpolated sub-frame (SF), motion vectors from ME (MV ME) and SME (MV SME), reference frame (RF) determines on the size of data transfers, their order, and exact position within the respective buffer provides communication minimization when several modules access to the same shared buffer * A. Ilic, S. Momcilovic, N. Roma and L. Sousa., FEVES: Framework for Efficient Parallel Video Encoding on Heterogeneous Systems, in ICPP-201 22

FEVES: Load Balancing UNIFIED FRAMEWORK Load Balancing Performance Character. Performance Characterization (updated at runtime) CPU Core FRAMEWORK CONTROL Video Coding Manager Parallel Modules Data Access Management GPU 1 Heterogeneous Devices DRAM performs R* modules GPU i accelerator/ distant worker Load Balancing based on linear programming to determine: cross-device load distributions for ME, INT and SME modules amount of data transfers across different devices for shared buffers communication minimization minimizes total collaborative CPU+GPU video encoding time communication minimization * A. Ilic, S. Momcilovic, N. Roma and L. Sousa., FEVES: Framework for Efficient Parallel Video Encoding on Heterogeneous Systems, in ICPP-201 23

Performance [fps] Performance [fps] FEVES: Experimental results Real-time video encoding for full HD (1080p) video sequences 60 60 50 0 30 CPU_N GPU_F SysNF SysHK CPU_H GPU_K SysNFF 50 0 30 CPU_N GPU_F SysNF SysHK CPU_H GPU_K SysNFF 20 10 20 10 0 0 32x32 6x6 128x128 256x256 1 2 3 5 6 7 8 Search Area Size [pixels] Number of Reference Frames Scalable over both search area (SA) size and the number of reference frames (RF) Highly optimized parallel modules (CPU_H 1.7x faster than CPU_N; GPU_K 2x than GPU_F) Real-time encoding on SysHK: for 6x6 SA size (1 RF) and up to RFs for 32x32 SA Average speedup on SysNFF: 5x vs. CPU_N and 2.2x vs. GPU_F Devices Heterogeneous Systems CPU_N Intel Nehalem i7 950 SysNF CPU_N + GPU_F CPU_H Intel Haswell i7 770K SysNFF CPU_N + 2xGPU_F GPU_F NVIDIA Fermi GTX580 SysHK CPU_H + GPU_K GPU_K NVIDIA Kepler GTX780Ti * A. Ilic, S. Momcilovic, N. Roma and L. Sousa., FEVES: Framework for Efficient Parallel Video Encoding on Heterogeneous Systems, in ICPP-201 2

Time [ms] FEVES: Experimental results 60 1RF 2RF 3RF RF 5RF 0 20 0 Real- me video encoding 0 5 10 15 20 25 30 35 0 5 50 55 60 65 70 75 80 85 90 95 100 Frame Number Real-time video encoding for 1080p Rolling Tomatoes sequence (first 100 frames) Real-time encoding for up to RFs for 32x32 SA on SysHK (Intel i7 770K + NVIDIA GTX780Ti) Load Balancing capable of efficiently coping with increasing problem complexity Dynamic Performance Characterization allows adaptation to the current state of the platform * A. Ilic, S. Momcilovic, N. Roma and L. Sousa., FEVES: Framework for Efficient Parallel Video Encoding on Heterogeneous Systems, in ICPP-201 25

Outline What? Where? How? Applications Systems and Devices Modeling and Load Balancing Multi-module Applications - Divisible Load Applications - H.26/AVC Video Encoding (inter-prediction mode) Node: CPU+GPU platform Load Balancing - FEVES - Framework for Efficient parallel Video Encoding on heterogeneous Systems Performance modeling General (FP) Applications Device: multicore CPUs Performance modeling 26

Outline What? Where? How? Applications Systems and Devices Modeling and Load Balancing Multi-module Applications - Divisible Load Applications - H.26/AVC Video Encoding (inter-prediction mode) Node: CPU+GPU platform Load Balancing - FEVES - Framework for Efficient parallel Video Encoding on heterogeneous Systems Performance modeling General (FP) Applications Device: multicore CPUs Cache-aware Roofline Model - Performance and Total Performance 27

Original Roofline Model Multi-cores: Powerful cores and memory hierarchy (caches and DRAM) Performance: Computations (flops) and communication (bytes) overlap in time Original Roofline Model* (state of the art) MEMORY-BOUND REGION COMPUTE-BOUND REGION Intel 3770K (Ivy Bridge) * Williams, S., Waterman, A. and Patterson, D., Roofline: An insightful visual performance model for multicore architectures, 28 Communications of the ACM (2009)

Performance [GFlops/s] Original Roofline Model: Hands On Multi-cores: Powerful cores and memory hierarchy (caches and DRAM) f 128 6 32 16 8 2 1 0.5 0.25 b APP-D (data traffic from DRAM) Peak DRAM LLC bandwidth MAD (Maximum Performance Fp) ADD/MUL Intel 3770K (Ivy Bridge) 0.125 0.0078125 0.03125 0.125 0.5 2 8 32 128 512 208 8192 Opera onal Intensity [Flops/DRAM Byte] I=16 APP-D I=(Σf ι )/(Σb ι ) I is constant * Williams, S., Waterman, A. and Patterson, D., Roofline: An insightful visual performance model for multicore architectures, 29 Communications of the ACM (2009)

Original Roofline Model: Hands On Multi-cores: Powerful cores and memory hierarchy (caches and DRAM) f APP-L3 (data fits in L3) b I 1 =f 1 /b 1 Intel 3770K (Ivy Bridge) * Williams, S., Waterman, A. and Patterson, D., Roofline: An insightful visual performance model for multicore architectures, 30 Communications of the ACM (2009)

Original Roofline Model: Hands On Multi-cores: Powerful cores and memory hierarchy (caches and DRAM) f APP-L3 (data fits in L3) b=0 I 1 =f 1 /b 1 I 2 =(f 1 +f 2 )/b 1 Intel 3770K (Ivy Bridge) * Williams, S., Waterman, A. and Patterson, D., Roofline: An insightful visual performance model for multicore architectures, 31 Communications of the ACM (2009)

Original Roofline Model: Hands On Multi-cores: Powerful cores and memory hierarchy (caches and DRAM) f APP-L3 (data fits in L3) b=0 I 1 =f 1 /b 1 I 2 =(f 1 +f 2 )/b 1 Intel 3770K (Ivy Bridge) I i =(Σf i )/b 1 I is variable * Williams, S., Waterman, A. and Patterson, D., Roofline: An insightful visual performance model for multicore architectures, 32 Communications of the ACM (2009)

Original Roofline Model: Hands On Multi-cores: Powerful cores and memory hierarchy (caches and DRAM) f APP- (data fits in ) b I 1 =f 1 /b 1 I 2 =(f 1 +f 2 )/b 1 Intel 3770K (Ivy Bridge) I i =(Σf i )/b 1 I is variable * Williams, S., Waterman, A. and Patterson, D., Roofline: An insightful visual performance model for multicore architectures, 33 Communications of the ACM (2009)

Original Roofline Model: Hands On Multi-cores: Powerful cores and memory hierarchy (caches and DRAM) Fixed I - unexpected performance for different $ levels b Does not achieve maximum attainable performance Intel 3770K (Ivy Bridge) I varies with the problem size. Memory bound becomes compute bound. I 1 =f 1 /b 1 I 2 =(f 1 +f 2 )/b 1 I i =(Σf i )/b 1 I is variable * Williams, S., Waterman, A. and Patterson, D., Roofline: An insightful visual performance model for multicore architectures, 3 Communications of the ACM (2009)

Cache-aware Roofline Model Multi-cores: Powerful cores and memory hierarchy (caches and DRAM) Performance: Computations (flops) and communication (bytes) overlap in time Intel 3770K (Ivy Bridge) filling the pipeline 35

Cache-aware Roofline Model Memory bandwidth variation Performance variation 36

Cache-aware Roofline Model Memory bandwidth Performance variation 37

Cache-aware Roofline Model Memory bandwidth Performance variation 38

Cache-aware Roofline Model Memory bandwidth Performance variation 39

Performance [GFlops/s] Cache-aware Roofline Model Memory bandwidth Performance variation 128 6 32 16 8 2 L2 Core L3 Core Peak bandwidth ( C) DRAM LLC DRAM Core MAD (Maximum Performance Fp) ADD/MUL 1 0.5 0.25 0.125 0.0078125 0.03125 0.125 0.5 2 8 32 128 512 208 8192 Opera onal Intensity [Flops/Byte] 0

Cache-aware Roofline Model Cache-aware Roofline Model* [proposed] Intel 3770K (Ivy Bridge) Insightful single plot model - Shows performance limits of multicores - Redefined OI: flops and bytes as seen by core - Constructed once per architecture Considers complete memory hierarchy - Influence of caches and DRAM to performance Applicable to other types of operations - not only floating-point Useful for: - Application characterization and optimization - Architecture development and understanding * Ilic, A., Pratas, F. and Sousa, L., Cache-aware Roofline Model: Upgrading the Loft, IEEE Computer Architecture Letters, 2013 1

Cache-aware Roofline Model Insightful single plot model - Shows performance limits of multicores - Redefined OI: flops and bytes as seen by core - Constructed once per architecture Cores (AVX MAD) Intel 3770K (Ivy Bridge) Considers complete memory hierarchy - Influence of caches and DRAM to performance Applicable to other types of operations - not only floating-point Total Cache-aware Roofline Model - Includes all transitional states (traversing the memory hierarchy and filling the pipeline) - Single-plot modeling for different types of compute and memory operations Useful for: - Application characterization and optimization - Architecture development and understanding 2

Cache-aware Roofline Model Insightful single plot model - Shows performance limits of multicores - Redefined OI: flops and bytes as seen by core - Constructed once per architecture Cores (AVX ADD/MUL) Intel 3770K (Ivy Bridge) Considers complete memory hierarchy - Influence of caches and DRAM to performance Applicable to other types of operations - not only floating-point Total Cache-aware Roofline Model - Includes all transitional states (traversing the memory hierarchy and filling the pipeline) - Single-plot modeling for different types of compute and memory operations Useful for: - Application characterization and optimization - Architecture development and understanding 3

Cache-aware Roofline Model Insightful single plot model - Shows performance limits of multicores - Redefined OI: flops and bytes as seen by core - Constructed once per architecture Cores (SSE) Considers complete memory hierarchy - Influence of caches and DRAM to performance Applicable to other types of operations - not only floating-point Total Cache-aware Roofline Model - Includes all transitional states (traversing the memory hierarchy and filling the pipeline) - Single-plot modeling for different types of compute and memory operations Useful for: - Application characterization and optimization - Architecture development and understanding

Cache-aware Roofline Model Insightful single plot model - Shows performance limits of multicores - Redefined OI: flops and bytes as seen by core - Constructed once per architecture Cores (DBL) Considers complete memory hierarchy - Influence of caches and DRAM to performance Applicable to other types of operations - not only floating-point Total Cache-aware Roofline Model - Includes all transitional states (traversing the memory hierarchy and filling the pipeline) - Single-plot modeling for different types of compute and memory operations Useful for: - Application characterization and optimization - Architecture development and understanding 5

Performance [GFlops/s] Cache-aware Roofline Model: Hands On 128 6 I=16 MAD (Maximum Performance Fp) ADD/MUL 32 16 8 2 1 0.5 0.25 APP-D 0.125 0.0078125 0.03125 0.125 0.5 2 8 32 128 512 208 8192 Opera onal Intensity [Flops/DRAM Byte] Peak DRAM LLC bandwidth f APP-D (data traffic from DRAM) b I=(Σf ι )/(Σb ι ) I is constant Intel 3770K (Ivy Bridge) * Ilic, A., Pratas, F. and Sousa, L., Cache-aware Roofline Model: Upgrading the Loft, IEEE Computer Architecture Letters, 2013 6

Cache-aware Roofline Model: Hands On APP-L3 (fits in L3) f b I=(Σf ι )/(Σb ι ) I is constant Intel 3770K (Ivy Bridge) * Ilic, A., Pratas, F. and Sousa, L., Cache-aware Roofline Model: Upgrading the Loft, IEEE Computer Architecture Letters, 2013 7

Cache-aware Roofline Model: Hands On APP-L3 (fits in L3) f b I=(Σf ι )/(Σb ι ) I is constant Intel 3770K (Ivy Bridge) * Ilic, A., Pratas, F. and Sousa, L., Cache-aware Roofline Model: Upgrading the Loft, IEEE Computer Architecture Letters, 2013 8

Cache-aware Roofline Model: Hands On APP-L3 (fits in L3) f b I=(Σf ι )/(Σb ι ) I is constant Intel 3770K (Ivy Bridge) * Ilic, A., Pratas, F. and Sousa, L., Cache-aware Roofline Model: Upgrading the Loft, IEEE Computer Architecture Letters, 2013 9

Cache-aware Roofline Model: Hands On APP- (fits in ) f b I=(Σf ι )/(Σb ι ) I is constant Intel 3770K (Ivy Bridge) * Ilic, A., Pratas, F. and Sousa, L., Cache-aware Roofline Model: Upgrading the Loft, IEEE Computer Architecture Letters, 2013 50

Cache-aware Roofline Model: Hands On APP- (fits in ) Achieves maximum attainable performance is always memory bound. f b I=(Σf ι )/(Σb ι ) I does not vary. The performance tends to the cache level ceiling. Intel 3770K (Ivy Bridge) I is constant * Ilic, A., Pratas, F. and Sousa, L., Cache-aware Roofline Model: Upgrading the Loft, IEEE Computer Architecture Letters, 2013 51

Performance [GFlops/s] Performance [GFlops/s] Practical Example: Dense Matrix Multiplication 1) Basic implementation: All matrices stored in row-major order. 128 6 32 16 8 2 1 0.5 Cache-aware Roofline Model 0.25 0.0078125 0.0625 0.5 32 256 208 1638 131072 108576 8388608 Opera onal Intensity [Flops/Byte] 1 application is in the compute bound region mainly limited by DRAM can be optimized to hit higher cache levels 128 6 32 16 8 2 1 0.5 Original Roofline Model 1 0.25 0.0078125 0.0625 0.5 32 256 208 1638 131072 108576 8388608 Opera onal Intensity [Flops/DRAM Byte] application is in the memory bound region mainly limited by DRAM can be optimized up to the slanted part of the model 52

Performance [GFlops/s] Performance [GFlops/s] Practical Example: Dense Matrix Multiplication 1) Basic implementation: All matrices stored in row-major order. 2) Transposition: One matrix is transposed into column-major Cache-aware Roofline Model Original Roofline Model 128 6 128 6 32 2 32 2 16 16 8 1 8 1 2 2 1 1 0.5 0.5 0.25 0.25 0.0078125 0.0625 0.5 32 256 208 1638 131072 108576 8388608 0.0078125 0.0625 0.5 32 256 208 1638 131072 108576 8388608 Opera onal Intensity [Flops/Byte] Opera onal Intensity [Flops/DRAM Byte] application is in the compute bound region almost hits L3 can be further optimized to hit higher cache levels application is in the memory bound region performance hits the roof of the model the model suggests that the optimization process is finished 53

Performance [GFlops/s] Performance [GFlops/s] Practical Example: Dense Matrix Multiplication 1) Basic implementation: All matrices stored in row-major order 2) Transposition: One matrix is transposed into column-major 3) Blocking for L3: All matrices are blocked to efficiently exploit L3 ) Blocking for L2: Second level of blocking to efficiently exploit L2 5) Blocking for : Data is further blocked to exploit Cache-aware Roofline Model Original Roofline Model 128 128 6 3,, 5 6 32 2 32 2 16 16 8 1 8 1 2 2 1 1 0.5 0.5 0.25 0.25 0.0078125 0.0625 0.5 32 256 208 1638 131072 108576 8388608 0.0078125 0.0625 0.5 32 256 208 1638 131072 108576 8388608 Opera onal Intensity [Flops/Byte] Opera onal Intensity [Flops/DRAM Byte] performance is further improved breaking the cache level ceilings towards the roof optimization process finished 5

Performance [GFlops/s] Performance [GFlops/s] 128 Practical Example: Dense Matrix Multiplication 1) Basic implementation: All matrices stored in row-major order 2) Transposition: One matrix is transposed into column-major 3) Blocking for L3: All matrices are blocked to efficiently exploit L3 ) Blocking for L2: Second level of blocking to efficiently exploit L2 5) Blocking for : Data is further blocked to exploit 6) Intel MKL: Highly optimized implementation 6 32 16 8 2 1 0.5 Cache-aware Roofline Model 6 3,, 5 6 2 32 2 1 0.25 0.0078125 0.0625 0.5 32 256 208 1638 131072 108576 8388608 Opera onal Intensity [Flops/Byte] 128 16 8 2 1 0.5 Original Roofline Model 1 6 3,, 5 optimizations suggested by the cache-aware model 0.25 0.0078125 0.0625 0.5 32 256 208 1638 131072 108576 8388608 Opera onal Intensity [Flops/DRAM Byte] 6 is able to achieve near theoretical performance moves to the compute bound region (shift in operational intensity) * Ilic, A., Pratas, F. and Sousa, L., Cache-aware Roofline Model: Upgrading the Loft, IEEE Computer Architecture Letters, 2013 55

Cache-aware Roofline Models: Use Cases Application Characterization single core quad-core Online Monitoring milc tonto LU factorization * Ilić, A., Pratas, F. and Sousa, L., Beyond the Roofline: Power, Energy and Efficiency Modeling for Multicores (submitted) * Antão, D., Taniça, L., Ilić, A., Pratas, F., Tomás, P., and Sousa, L., Monitoring Performance and Power for Application 56 Characterization with Cache-aware Roofline Model, PPAM 13

Roundup and Conclusions What? Where? How? Applications Systems and Devices Modeling and Load Balancing Multi-module Applications - Divisible Load Applications - H.26/AVC Video Encoding (inter-prediction mode) Node: CPU+GPU platform Load Balancing - FEVES - Framework for Efficient parallel Video Encoding on heterogeneous Systems Performance modeling General (FP) Applications Device: multicore CPUs Cache-aware Roofline Model - Performance and Total Performance 57

On-going and Further Work Porting and extending load balancing algorithms Highly heterogeneous systems (CPU+GPU+FPGA), embedded systems Power- and energy-efficient computing (DVFS) Cache-aware Roofline modeling: Future Power, energy, efficiency Extending for other device architectures (mainly GPUs) Scheduling and load balancing for general applications Introduce all these techniques and algorithms in the OS Automatic approach: by identifying the characteristics of the applications To have support for the different approaches and user provides additional information Multiple performance modeling and load balance strategies for different architectures, and solutions for all applications 58

Additional readings A. Ilic, F. Pratas and L. Sousa, Cache-aware Roofline Model: Upgrading the loft, IEEE Computer Architecture Letters, 2013 A. Ilic, S. Momcilovic, N. Roma and L. Sousa, FEVES: Framework for Efficient Parallel Video Encoding on Heterogeneous Systems, ICPP 1 S. Momcilovic, A. Ilic, N. Roma and L. Sousa, Dynamic load balancing for real-time video encoding on heterogeneous systems, IEEE Transactions on Multimedia, 201 S. Momcilovic, A. Ilic, N. Roma and L. Sousa, Collaborative Inter-Prediction on CPU+GPU Systems, ICIP 1 D. Antão, L. Taniça, A. Ilic, F. Pratas, P. Tomás and L. Sousa, Monitoring performance and power for application characterization with Cache-aware Roofline Model, PPAM 13 59

Thank you for your attention! Questions? 60