An Analytical Model for a GPU. Overview SVM Kernel Behavior: Need for other metrics.

Slides:



Advertisements
Similar presentations
Instruction Level Parallelism and Superscalar Processors
Advertisements

Computer architecture
A Complete GPU Compute Architecture by NVIDIA Tamal Saha, Abhishek Rawat, Minh Le {ts4rq, ar8eb,
Optimization on Kepler Zehuan Wang
Chapter 2 Operating System Overview Operating Systems: Internals and Design Principles, 6/E William Stallings.
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
Threads - Definition - Advantages using Threads - User and Kernel Threads - Multithreading Models - Java and Solaris Threads - Examples - Definition -
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, March 22, 2011 Branching.ppt Control Flow These notes will introduce scheduling control-flow.
Fall 2001CS 4471 Chapter 2: Performance CS 447 Jason Bakos.
PRASHANTHI NARAYAN NETTEM.
Sunpyo Hong, Hyesoon Kim
© David Kirk/NVIDIA and Wen-mei W. Hwu, 2007 ECE 498AL, University of Illinois, Urbana-Champaign 1 ECE 498AL Lectures 7: Threading Hardware in G80.
CuMAPz: A Tool to Analyze Memory Access Patterns in CUDA
BY: ALI AJORIAN ISFAHAN UNIVERSITY OF TECHNOLOGY 2012 GPU Architecture 1.
GPU Programming with CUDA – Optimisation Mike Griffiths
CUDA Performance Considerations (1 of 2) Patrick Cozzi University of Pennsylvania CIS Spring 2012.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE 498AL, University of Illinois, Urbana-Champaign 1 CS 395 Winter 2014 Lecture 17 Introduction to Accelerator.
CUDA Optimizations Sathish Vadhiyar Parallel Programming.
GPU Architecture and Programming
Process by Dr. Amin Danial Asham. References Operating System Concepts ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, and GREG GAGNE.
(1) Kernel Execution ©Sudhakar Yalamanchili and Jin Wang unless otherwise noted.
CUDA - 2.
Computer Organization and Architecture Tutorial 1 Kenneth Lee.
CUDA Performance Considerations (1 of 2) Patrick Cozzi University of Pennsylvania CIS Spring 2011.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE 498AL, University of Illinois, Urbana-Champaign 1 ECE 498AL Lectures 8: Threading Hardware in G80.
Some key aspects of NVIDIA GPUs and CUDA. Silicon Usage.
GPU-based Computing. Tesla C870 GPU 8 KB / multiprocessor 1.5 GB per GPU 16 KB up to 768 threads () up to 768 threads ( 21 bytes of shared memory and.
Multithreaded Programing. Outline Overview of threads Threads Multithreaded Models  Many-to-One  One-to-One  Many-to-Many Thread Libraries  Pthread.
Floating Point Numbers & Parallel Computing. Outline Fixed-point Numbers Floating Point Numbers Superscalar Processors Multithreading Homogeneous Multiprocessing.
CENTRAL PROCESSING UNIT. CPU Does the actual processing in the computer. A single chip called a microprocessor. Composed of an arithmetic and logic unit.
CUDA All material not from online sources/textbook copyright © Travis Desell, 2012.
Introduction to CUDA CAP 4730 Spring 2012 Tushar Athawale.
Synchronization These notes introduce:
CS/EE 217 GPU Architecture and Parallel Programming Lecture 17: Data Transfer and CUDA Streams.
An Integrated GPU Power and Performance Model (ISCA’10, June 19–23, 2010, Saint-Malo, France. International Symposium on Computer Architecture)
Sunpyo Hong, Hyesoon Kim
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
An Overview of Parallel Processing
GPU Performance Optimisation Alan Gray EPCC The University of Edinburgh.
Equalizer: Dynamically Tuning GPU Resources for Efficient Execution Ankit Sethia* Scott Mahlke University of Michigan.
1 ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 28, 2013 Branching.ppt Control Flow These notes will introduce scheduling control-flow.
Fast and parallel implementation of Image Processing Algorithm using CUDA Technology On GPU Hardware Neha Patil Badrinath Roysam Department of Electrical.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Page 1 2P13 Week 1. Page 2 Page 3 Page 4 Page 5.
CS 179: GPU Computing LECTURE 2: MORE BASICS. Recap Can use GPU to solve highly parallelizable problems Straightforward extension to C++ ◦Separate CUDA.
1 ITCS 4/5145 Parallel Programming, B. Wilkinson, Nov 12, CUDASynchronization.ppt Synchronization These notes introduce: Ways to achieve thread synchronization.
Performance modeling in GPGPU computing Wenjing xu Professor: Dr.Box.
GPU ProgrammingOther Relevant ObservationsExperiments GPU kernels run on C blocks (CTAs) of W warps. Each warp is a group of w=32 threads, which are executed.
Address – 32 bits WRITE Write Cache Write Main Byte Offset Tag Index Valid Tag Data 16K entries 16.
Sathish Vadhiyar Parallel Programming
Parallel Computing Lecture
Chapter 4 Data-Level Parallelism in Vector, SIMD, and GPU Architectures Topic 17 NVIDIA GPU Computational Structures Prof. Zhang Gang
Lecture 2: Intro to the simd lifestyle and GPU internals
Recitation 2: Synchronization, Shared memory, Matrix Transpose
Operating Systems (CS 340 D)
Presented by: Isaac Martin
CMPT 886: Computer Architecture Primer
Symmetric Multiprocessing (SMP)
CS/EE 217 – GPU Architecture and Parallel Programming
Operating Systems (CS 340 D)
©Sudhakar Yalamanchili and Jin Wang unless otherwise noted
General Purpose Graphics Processing Units (GPGPUs)
Warp Scheduling.
Chapter 2 Operating System Overview
Process Management -Compiled for CSIT
Synchronization These notes introduce:
Operating System Overview
6- General Purpose GPU Programming
Threads -For CSIT.
CIS 6930: Chip Multiprocessor: Parallel Architecture and Programming
Presentation transcript:

An Analytical Model for a GPU

Overview

SVM Kernel Behavior: Need for other metrics

Degree of Parallelism zGPU Architecture yEach SM executes multiple warps in a time-sharing fashion while one or more are waiting for memory values xHiding the execution cost of warps that are executed concurrently. yHow many memory requests can be serviced and how many warps can be executed together while one warp is waiting for memory values.

MWP and CWP zMemory Warp: yThe warp that is waiting for memory values zMemory Warp waiting period: yThe time period from right after one warp sent memory requests until all the memory requests from the same warp are serviced. zCWP (Computation Warp Parallelism) yrepresents the number of warps that the SM processor can execute during one memory warp waiting period plus one. zMWP (Memory Warp Parallelism) yrepresents the maximum number of warps per SM that can access the memory simultaneously during memory warp waiting period

Relationship between MWP and CWP: CWP > MWP What is getting hidden? Total execution time (a) 8 warps (b) 4 warps

What is going on here?

Relationship between MWP and CWP: MWP > CWP Total execution time (a) 8 warps (b) 4 warps

Relationship between MWP and CWP: MWP > CWP Total execution time (8 warps)

Not Enough Warps Running

CPI PTX instruction set

Model

Example Blocks: 80 Threads: blocks per SM