Heterogeneous Processing KYLE ADAMSKI Overview What is heterogeneous

  • Slides: 17
Download presentation
Heterogeneous Processing KYLE ADAMSKI

Heterogeneous Processing KYLE ADAMSKI

Overview • What is heterogeneous processing? • Why it is necessary • Issues with

Overview • What is heterogeneous processing? • Why it is necessary • Issues with heterogeneity • CPU’s vs. GPU’s • Heterogeneous Programming • Data-parallel computing with GPU’s

What is Heterogeneous Processing? • Helps meet performance requirements for todays software • Uses

What is Heterogeneous Processing? • Helps meet performance requirements for todays software • Uses variety of computational units for processing General-purpose processor (GPP) • Special-purpose processors • Digital Signal Processors (DSP) • Graphics Processing Unit (GPU) (Most Popular) • Co-Processor • Field-Programmable Gate Array (FPGA) • • Consists of processors with different instruction set architectures

What is Heterogeneous Processing? Cont… • Demand due to need for high-performance • Considered

What is Heterogeneous Processing? Cont… • Demand due to need for high-performance • Considered parallel computing or multi-core systems • Parallel - Calculations are carried out simultaneously • Multi-core – A single computing component with two or more central processing units • Also considered Hybrid Computing

Why it is necessary • Bypasses physical barriers of minimum CPU size • Bypasses

Why it is necessary • Bypasses physical barriers of minimum CPU size • Bypasses Memory-wall issue • CPU improved at a rate of 55% annually while memory speed 10% • Reduces energy consumption • Better performance-per-dollar ratio than CPU’s • Reduces latency

Issues with heterogeneity • Computation elements may have different instruction set architectures • Different

Issues with heterogeneity • Computation elements may have different instruction set architectures • Different elements may interpret memory in different ways • Library and OS services may not be uniformly available to elements • Additional translation for language features • Different cache structures • Multiple ways of interconnecting • Multiple compilers

CPU’s vs. GPU’s

CPU’s vs. GPU’s

CPU’s vs. GPU’s • GPU’s take data and perform same operations over and over

CPU’s vs. GPU’s • GPU’s take data and perform same operations over and over very quickly, whereas CPU’s skip all over • CPU’s have a few cores, GPU’s have hundreds Allows GPU’s to handle thousands of threads simultaneously • Allows GPU to be more power and cost efficient • • CPU’s better for general purpose performance

Heterogeneous Programming • Faster processing but difficult to develop for • Programmers need to

Heterogeneous Programming • Faster processing but difficult to develop for • Programmers need to consider how to program in parallel • Requires hardware specific code incorporated in application code Increases complexity • Decreases portability • • Balancing application workload • Different processing speeds

Heterogeneous programming cont… • Easier with programming building blocks Programming libraries • Higher-order functions

Heterogeneous programming cont… • Easier with programming building blocks Programming libraries • Higher-order functions • • Microsoft Accelerator Higher-level data parallel programming system • Code written once and then executed on three different targets • Library used from any language that supports linking with a C calling interface under Windows •

Heterogeneous programming cont…

Heterogeneous programming cont…

Heterogeneous programming cont… • Open. CL – Open Computing Language Framework for writing programs

Heterogeneous programming cont… • Open. CL – Open Computing Language Framework for writing programs that execute across heterogeneous platforms • Developed by Apple •

Data-parallel computing with GPU’s • Difficult to program for • Requires older techniques Explicit

Data-parallel computing with GPU’s • Difficult to program for • Requires older techniques Explicit data placement • Data movement • • Compute Unified Device Architecture (CUDA) Created by Nvidia • Parallel computing platform and programming model for their GPU’s • Limited to Nvidia hardware • Allows more control of the GPU •

Field-programmable gate array • Configurable after manufacturing • Configured using hardware description language •

Field-programmable gate array • Configurable after manufacturing • Configured using hardware description language • Supports high-speed irregular operations • Processing XML queries in real-time over high-speed networks • Contains logic blocks with interconnects that allow the blocks to be wired together

Summary • What is heterogeneous processing • Why heterogeneous processing is necessary • Some

Summary • What is heterogeneous processing • Why heterogeneous processing is necessary • Some of the common issues with heterogeneous processing • The differences between CPU’s vs. GPU’s • Heterogeneous Programming • Data-parallel computing with GPU’s

Sources • http: //epic. hpi. unipotsdam. de/pub/Home/Trends. And. Concepts. II 20 10/HW_Trends_borkar_2015. pdf •

Sources • http: //epic. hpi. unipotsdam. de/pub/Home/Trends. And. Concepts. II 20 10/HW_Trends_borkar_2015. pdf • http: //blogs. nvidia. com/2009/12/whats-the-difference-between-acpu-and-a-gpu/ • http: //queue. acm. org/detail. cfm? id=2000516

Questions

Questions