Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.

Slides:



Advertisements
Similar presentations
Accelerators for HPC: Programming Models Accelerators for HPC: StreamIt on GPU High Performance Applications on Heterogeneous Windows Clusters
Advertisements

Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
Computer Abstractions and Technology
System Simulation Of 1000-cores Heterogeneous SoCs Shivani Raghav Embedded System Laboratory (ESL) Ecole Polytechnique Federale de Lausanne (EPFL)
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
GRAPHICS AND COMPUTING GPUS Jehan-François Pâris
PARALLEL PROCESSING COMPARATIVE STUDY 1. CONTEXT How to finish a work in short time???? Solution To use quicker worker. Inconvenient: The speed of worker.
Acceleration of the Smith– Waterman algorithm using single and multiple graphics processors Author : Ali Khajeh-Saeed, Stephen Poole, J. Blair Perot. Publisher:
Some Thoughts on Technology and Strategies for Petaflops.
11/14/05ELEC Fall Multi-processor SoCs Yijing Chen.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
CUDA Programming Lei Zhou, Yafeng Yin, Yanzhi Ren, Hong Man, Yingying Chen.
The PTX GPU Assembly Simulator and Interpreter N.M. Stiffler Zheming Jin Ibrahim Savran.
A Performance and Energy Comparison of FPGAs, GPUs, and Multicores for Sliding-Window Applications From J. Fowers, G. Brown, P. Cooke, and G. Stitt, University.
Heterogeneous Computing Dr. Jason D. Bakos. Heterogeneous Computing 2 “Traditional” Parallel/Multi-Processing Large-scale parallel platforms: –Individual.
Contemporary Languages in Parallel Computing Raymond Hummel.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
GPGPU overview. Graphics Processing Unit (GPU) GPU is the chip in computer video cards, PS3, Xbox, etc – Designed to realize the 3D graphics pipeline.
GPGPU platforms GP - General Purpose computation using GPU
Lecture 2 : Introduction to Multicore Computing Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Data Partitioning on Heterogeneous Multicore and Multi-GPU Systems Using Functional Performance Models of Data-Parallel Applications Published in: Cluster.
OpenMP in a Heterogeneous World Ayodunni Aribuki Advisor: Dr. Barbara Chapman HPCTools Group University of Houston.
Chapter 2 Computer Clusters Lecture 2.3 GPU Clusters for Massive Paralelism.
CuMAPz: A Tool to Analyze Memory Access Patterns in CUDA
GPU Programming David Monismith Based on notes taken from the Udacity Parallel Programming Course.
Shared memory systems. What is a shared memory system Single memory space accessible to the programmer Processor communicate through the network to the.
Codeplay CEO © Copyright 2012 Codeplay Software Ltd 45 York Place Edinburgh EH1 3HP United Kingdom Visit us at The unique challenges of.
1 3-General Purpose Processors: Altera Nios II 2 Altera Nios II processor A 32-bit soft core processor from Altera Comes in three cores: Fast, Standard,
BY: ALI AJORIAN ISFAHAN UNIVERSITY OF TECHNOLOGY 2012 GPU Architecture 1.
GPUs and Accelerators Jonathan Coens Lawrence Tan Yanlin Li.
By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts.
Multi-Core Architectures
MS Thesis Defense “IMPROVING GPU PERFORMANCE BY REGROUPING CPU-MEMORY DATA” by Deepthi Gummadi CoE EECS Department April 21, 2014.
Programming Concepts in GPU Computing Dušan Gajić, University of Niš Programming Concepts in GPU Computing Dušan B. Gajić CIITLab, Dept. of Computer Science.
Multiprocessing. Going Multi-core Helps Energy Efficiency William Holt, HOT Chips 2005 Adapted from UC Berkeley "The Beauty and Joy of Computing"
GPU Architecture and Programming
A Closer Look At GPUs By Kayvon Fatahalian and Mike Houston Presented by Richard Stocker.
GPU-Accelerated Computing and Case-Based Reasoning Yanzhi Ren, Jiadi Yu, Yingying Chen Department of Electrical and Computer Engineering, Stevens Institute.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Multi-Core Development Kyle Anderson. Overview History Pollack’s Law Moore’s Law CPU GPU OpenCL CUDA Parallelism.
GPUs: Overview of Architecture and Programming Options Lee Barford firstname dot lastname at gmail dot com.
OpenCL Programming James Perry EPCC The University of Edinburgh.
By Dirk Hekhuis Advisors Dr. Greg Wolffe Dr. Christian Trefftz.
Chapter 5: Computer Systems Design and Organization Dr Mohamed Menacer Taibah University
HOW COMPUTERS WORK THE CPU & MEMORY. THE PARTS OF A COMPUTER.
Lecture 8 : Manycore GPU Programming with CUDA Courtesy : SUNY-Stony Brook Prof. Chowdhury’s course note slides are used in this lecture note.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 2 Computer Organization.
Computer Architecture Lecture 24 Parallel Processing Ralph Grishman November 2015 NYU.
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
M211 – Central Processing Unit
My Coordinates Office EM G.27 contact time:
Background Computer System Architectures Computer System Software.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Constructing a system with multiple computers or processors 1 ITCS 4/5145 Parallel Programming, UNC-Charlotte, B. Wilkinson. Jan 13, 2016.
MAHARANA PRATAP COLLEGE OF TECHNOLOGY SEMINAR ON- COMPUTER PROCESSOR SUBJECT CODE: CS-307 Branch-CSE Sem- 3 rd SUBMITTED TO SUBMITTED BY.
Matthew Royle Supervisor: Prof Shaun Bangay.  How do we implement OpenCL for CPUs  Differences in parallel architectures  Is our CPU implementation.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
Prof. Zhang Gang School of Computer Sci. & Tech.
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
CSC235 Computer Organization & Assembly Language
Our Graphics Environment
CS427 Multicore Architecture and Parallel Computing
For Massively Parallel Computation The Chaotic State of the Art
Introduction
Computer Evolution and Performance
Multicore and GPU Programming
Multicore and GPU Programming
Presentation transcript:

Heterogeneous Processing KYLE ADAMSKI

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 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 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 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 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

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 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 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…

OpenCL – 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 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 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 of the common issues with heterogeneous processing The differences between CPU’s vs. GPU’s Heterogeneous Programming Data-parallel computing with GPU’s

Sources 10/HW_Trends_borkar_2015.pdf 10/HW_Trends_borkar_2015.pdf cpu-and-a-gpu/ cpu-and-a-gpu/

Questions