34
An Analytical Model for a GPU Architecture with Memory-level and Thread-level Parallelism Awareness Sunpyo Hong, Hyesoon Kim

Sunpyo Hong, Hyesoon Kim

  • Upload
    ula

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

An Analytical Model for a GPU Architecture with Memory-level and Thread-level Parallelism Awareness. Sunpyo Hong, Hyesoon Kim. Outline. Background Model Results Conclusion. Overview of GPU Architecture. PC. Streaming Multiprocessor. Streaming Multiprocessor. Streaming Multiprocessor. - PowerPoint PPT Presentation

Citation preview

Page 1: Sunpyo Hong, Hyesoon Kim

An Analytical Model for a GPU Architecture with Memory-level and Thread-level Parallelism Awareness

Sunpyo Hong, Hyesoon Kim

Page 2: Sunpyo Hong, Hyesoon Kim

Outline

Background

Model

Results

Conclusion

2

Page 3: Sunpyo Hong, Hyesoon Kim

Overview of GPU Architecture

Software-managed cache

SIMD Execution Unit inside SM

StreamingMultiprocessor

StreamingMultiprocessor

StreamingMultiprocessor

Interconnection Network

Global Memory (Device memory)

PC

I-Cache

Decoder

Shared Memory

Stream Processor

Stream Processor

Stream Processor

Stream Processor

3

SIMD Execution Unit

Page 4: Sunpyo Hong, Hyesoon Kim

T T T T T T T T

SP

SP

SP

SP

SIMD Execution Unit

T T T T

Warp Warp is the basic unit of execution

A group of threads (e.g. 32 threads for the Tesla GPU architecture)

Warp Execution

One warp

Sources ready

4

One warp One warp

Inst 1Inst 2Inst 3

Sources ready Sources ready T T T T T T T T

Finite number of streaming processors

Programmer specifies the # threads

Page 5: Sunpyo Hong, Hyesoon Kim

Occupancy Shows how many warps are assigned to the SM

Warps are assigned at block granularity

Programmer specifies the number of threads per block

SMRegisters

100% Occupancy

5

Shared Memory

Register requirements per block

Shared memory requirements per block

Only one block is allocated

SMRegisters

Shared Memory

Page 6: Sunpyo Hong, Hyesoon Kim

Higher Occupancy Better processor utilization

Hide the memory latency

6

Warp 1

Warp 2

C M C M C M C M

C M C M C M C M

Processor is not utilized

Warp 3

Warp 4

Warp 5

C M C M C M C M

C M C M C M C M

C M C M C M C MBetter utilization !

Page 7: Sunpyo Hong, Hyesoon Kim

High Occupancy = High Performance ?

Programmers try to optimize programs for occupancy

7

Increase in occupancy

Performance improvement

Page 8: Sunpyo Hong, Hyesoon Kim

High Occupancy ≠ High Performance

Programmers try to optimize programs for occupancy

8

No performance improvement from increased occupancy

Increase in occupancy

No performance improvement

Page 9: Sunpyo Hong, Hyesoon Kim

Motivation of the Work Propose analytical model that can estimate performance

Why ?

Optimizing for occupancy may not have impact on the performance

Occupancy does not consider the application behavior

To understand the GPU performance and bottlenecks

Prediction for faster performance simulation

Other benefits

9

Page 10: Sunpyo Hong, Hyesoon Kim

Outline

Background

Model

Results

Conclusion

10

Page 11: Sunpyo Hong, Hyesoon Kim

How is Performance Determined ?

C MNo Parallelism

Infinite Parallelism

Finite Parallelism(Two)

C M C M C

C MC M

C MC M

M

C MC M

C

M

C

M

Saved cycles

Saved cycles

Memory accesses can be overlapped between warps

Performance significantly depends on the memory-level parallelism

11

Performance can be predicted by knowing the amount of memory-level parallelism

Additional Cycles

Page 12: Sunpyo Hong, Hyesoon Kim

MWP Memory Warp Parallelism

Metric of memory-level parallelism

1 12 2

3 34 4

MWP=4 Four warps are overlapped during memory accesses

12

Tightly coupled with DRAM system

Memory latency, bandwidth, memory access type

Maximum number of warps that can overlap memory accesses

Page 13: Sunpyo Hong, Hyesoon Kim

Memory Access Type

Coalesced memory access type

13

One memory transaction

Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Thread 6 Thread N

Addr 1 Addr 2 Addr 3 Addr 4 Addr 5 Addr 6 Addr N

Thread 2 Thread 3 Thread 4 Thread NThread 1

Multiple memory transactions

Addr 1 Addr 10 Addr 2 Addr 20 Addr N

One warp generates a memory request

Uncoalesced memory access type

- More processing cycles for the uncoalesced case

One warp

Page 14: Sunpyo Hong, Hyesoon Kim

Memory System Model

SM

SM

SM

MemoryCore

BandwidthDeparture delay

Warp2

Warp2Warp3

Warp1

Each SM has a simple queue and consumes an equal bandwidth

TIMEMemory Latency

Warp1

Warp3

14

MWP is determined by #Active SMs, #Active warps, Bandwidth, Types of memory accesses (Coalesced, Uncoalesced)

Coalesced

Departure delay

Uncoalesced

Page 15: Sunpyo Hong, Hyesoon Kim

CWP

1 1 32 42

34

CWP = 4

MWP = 2

MemoryWaiting period

Computation Warp Parallelism

Analogous concept to MWP

15

Number of warps that execute instructions during one memory access period

Three scenarios can occur depending on the MWP and CWP relationship

Page 16: Sunpyo Hong, Hyesoon Kim

(1) When MWP ≤ CWP

1 1 3 5 72 4 6 82

34

56

78

MWP=2, N = 8 (Number of warps)

CWP=4

2 Computation + 4 Memory

Computation cycles are hidden by memory waiting periods

Overall performance is dominated by the memory cycles

16

(MWP=2, N = 8)

Page 17: Sunpyo Hong, Hyesoon Kim

(2) When MWP > CWP

1 1

3

5

7

2

4

6

8

23

45

67

8

8 Computation + 1 Memory

Memory accesses are mostly hidden due to high MWP

Overall performance is dominated by the computation cycles

17

MWP=8 N = 8 (Number of warps)

(MWP=8, N = 8)

Page 18: Sunpyo Hong, Hyesoon Kim

(3) Not Enough Warps

1 1 1 1 1 1 1 12 2 2 2 2 2 2 2

MWP is limited by the number of active warps per SM

Two warps

18

Idle cycles

Increasing the number of warps will increase the processor utilization

The analytical model is inside the paper

Page 19: Sunpyo Hong, Hyesoon Kim

Outline

Background

Model

Results

Conclusion

19

Page 20: Sunpyo Hong, Hyesoon Kim

Evaluation Methodology

20

GPU Model 8800GTX FX5600 8800GT GTX280Number of SMs 16 16 14 30

(SP) Processor Cores 128 128 112 240

Processor Clock 1.35 GHz 1.35GHz 1.5 GHz 1.3 GHz

Memory Size 768 MB 1.5 GB 512 MB 1 GB

Memory Bandwidth 86.4 GB/s 76.8 GB/s 57.6 GB/s 141.7 GB/s

Computing Version 1 1 1.1 1.3

Micro benchmarks are devised to obtain the memory parameters Memory latency, departure delay

Merge benchmarks Execution time, CPI compared

Model inputs Number of instructions, memory type, thread/block configuration,

memory parameters

Evaluated Systems

Page 21: Sunpyo Hong, Hyesoon Kim

Micro Benchmarks

Parameters FX5600 GTX280 Memory latency 420 450 Departure delay uncoalesced 10 40

Departure delay coalesced 4 4

Memory Model Parameters

21

Coalesced

Uncoalesced

Coalesced, uncoalesced memory types

Ratio of memory to computation instructions is varied

Page 22: Sunpyo Hong, Hyesoon Kim

Merge Benchmarks

Merge benchmark performance estimation

The prediction closely follows the actual execution

Two types of execution behavior are predicted

22

Page 23: Sunpyo Hong, Hyesoon Kim

CPI Comparison

23

CPI comparison between the model and the actual execution

GTX2808800GTOverall 13.3 % error

Page 24: Sunpyo Hong, Hyesoon Kim

Outline

Background

Model

Results

Conclusion

24

Page 25: Sunpyo Hong, Hyesoon Kim

Conclusions Introduced MWP, CWP metrics that determine the performance

Simplified the complex memory operations

25

Prediction For Micro benchmarks, the prediction error is 5.4% For Merge benchmarks, the prediction error is 13.3%

First analytical model that calculates the execution cycles for GPU

Future research Help providing more systematic approaches for optimizing GPGPU

applications

Better understanding of the performance aspects of the GPU architecture

Page 26: Sunpyo Hong, Hyesoon Kim

Thank you

26

Page 27: Sunpyo Hong, Hyesoon Kim

Questions ?

27

Page 28: Sunpyo Hong, Hyesoon Kim

Backup Slides

28

Page 29: Sunpyo Hong, Hyesoon Kim

We are currently developing more systematic approach By using the metrics that we proposed in this work

Calculated CPI value indicates how optimized the code is CPI per warp near 4 is the upper-bound

The model provides the upper limit of # of active warps for a given application that fully utilizes the processor resources

Increasing the # of warps when N is smaller than MWP, CWP

Trade-off More register allocation vs. More computation instructions

Traditionally, if the optimization on the thread decreases the occupancy, that optimization is unlikely to be performed

However, if the model predicts that higher occupancy does not improve the performance, then that optimization can be applied without performance degradation

Programming

29

Page 30: Sunpyo Hong, Hyesoon Kim

Limitations of the Model Cache misses

Current analytical model does not consider cache miss penalties

Divergent branches Double counting the number of instructions in both path Provides the upper limit for the execution time

30

Graphics Applications Not modeling texture cache, texture processing

Data transfer time between CPU and GPU The analytical work models the GPU kernel execution only

Considers total average execution time No time-phase behavior

Page 31: Sunpyo Hong, Hyesoon Kim

Micro benchmarks Exact number of instructions for different arithmetic intensity is known

How to use the model (I)

31

Inputs to the model Thread/block configuration

Register/shared memory usage

Number of Instructions

Memory access type

Programmer specifies in the source codeAvailable in the CUDA compiler output (.cubin file)Source code analysisPTX file (compiler output)

Merge benchmarks Source and PTX (virtual ISA) analysis Currently, GPU emulator is available Dynamic number of PTX instructions is calculated

Page 32: Sunpyo Hong, Hyesoon Kim

How to use the model (II)

32

Inputs to the model Thread/block configuration

Register/shared memory usage

Number of Instructions

Memory access type Analyzing memory access pattern

Analyze the memory access pattern By using the index to the memory function

Devised the algorithms for determining the memory access type, and the number of memory transactions.

Outputs of the model Estimated execution time (cycles), CPI per warp granularity

Page 33: Sunpyo Hong, Hyesoon Kim

Broken down the memory system from high-level view Maximum possible MWP without bandwidth consideration MWP with bandwidth consideration (Considers #warps, # Transactions, …) Effects of active warps

Captured high-level concepts with careful interactions

Memory System

33

Transaction #1 (Warp1)

Transaction #1 (Warp1)Transaction #2 (Warp1)

Transaction #N (Warp1)

Transaction #1 (Warp 2)

Transaction #1 (Warp 2)

Departure delay

Effective Departure delay

MemoryDeparture delay

Warp2

Warp2Warp3

Warp1

TIMEMemory Latency

Warp1

Warp3Coalesced

Departure delay

Uncoalesced

Coalesced

Uncoalesced

Page 34: Sunpyo Hong, Hyesoon Kim

Synchronization effects

1 1

32

4

23

43

12

4

12

34

Additional delay

Synchronization Synchronization

1 1

32

4

23

43

12

4

12

34

Extra cycles are calculated by knowing the value of MWP

34

Barrier instruction causes extra waiting cycles Warps inside one SM are synchronized

No synchronization