understanding gpgpu vector register file...

30
Mark Wyse AMD Research, Advanced Micro Devices, Inc. Paul G. Allen School of Computer Science & Engineering, University of Washington Understanding GPGPU Vector Register File Usage

Upload: others

Post on 23-Jul-2020

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

Mark WyseAMD Research, Advanced Micro Devices, Inc.

Paul G. Allen School of Computer Science & Engineering, University of Washington

Understanding GPGPU Vector Register File Usage

Page 2: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

2 | PUBLIC

AGENDA

GPU Architecture

gem5 Model and Simulation

Vector General Purpose Register Usage

Operand Buffering and Register File Caching

Dispatch Limits and Wave Level Parallelism

Conclusion

Page 3: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

3 | PUBLIC

GPU Architecture

Page 4: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

4 | PUBLIC

Massively multi-threaded compute engines

Use parallelism to hide memory latency

Programmed with Single Instruction, Multiple Thread (SIMT) model

‒ Kernel – Threads – Workgroup – Wavefront

Hardware executes instructions using Single Instruction, Multiple Data (SIMD) model

‒ Lockstep execution of threads in a Wavefront

Huge amount of on-chip context to enable single cycle thread context switching

‒ Register files are larger than the data caches

HIGH LEVEL OVERVIEW

GPU ARCHITECTURE

Page 5: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

5 | PUBLIC

EXAMPLE COMPUTE UNIT ARCHITECTURE

I-CacheScalar Cache

Compute Unit (CU)

Instruction Fetch

WF Context 1

Dependency Logic

Instruction Arbitration & Scheduler

Execution Units

Global

Memory

Pipeline

Local

Memory

Pipeline

Scalar

Memory

Pipeline

Data CacheLDS

SIMD VALU SALU

Vector RF Scalar RF

WF Context 2 WF Context N

SIMD VALU SALU

Vector RF Scalar RF

Figure 1. Sample CU Architecture

Compute Unit (CU) responsible for executing workgroups

Each CU contains:

‒ Wavefront (WF) contexts

‒ SIMD Vector ALUs

‒ Scalar ALUs

‒ Register Files

‒ Memory Pipelines

‒ L1 Vector Data Cache

‒ Local Data Share (LDS)

Each CU connects to:

‒ Scalar Cache

‒ Instruction Cache

‒ L2 Data Cache / DRAM

Page 6: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

6 | PUBLIC

Each VALU has a private Vector Register File (VRF)

512 Vector General Purpose Registers (VGPRs) per VRF

‒ 128 KB VGPR storage per VRF/SIMD VALU

‒ VGPRs distributed across 4 SRAM banks

‒ 1 read, 1 write per cycle per bank

Operand Buffer (OB)

‒ Instruction FIFO

‒ Reads vector operands for VALU instructions

Register File Cache (RFC)

‒ VGPR cache, strict LRU replacement

‒ Stores VALU results

‒ Forwarding paths to OB, VALU, Vector Memory units

VECTOR REGISTER FILE SUBSYSTEM

Figure 2. Vector Register File Subsystem Architecture

Regis

ter

Fil

e C

ache

Opera

nd B

uff

er

Vector RF

Bank 0

Vector RF

Bank 3

Vector RF

Bank 1

Vector RF

Bank 2

Lane 0

Lane 63

Lane 62

Lane 61

Lane 1

Lane 2

SIMD VALU

Page 7: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

7 | PUBLIC

gem5 Model and Simulation

Page 8: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

8 | PUBLIC

Execution driven, cycle-level microarchitecture simulator

System Call Emulation (SE) mode

Faithfully implement CU as described in previous slides, capable of executing AMD GCN3 ISA

Unmodified, publically available ROCm-1.1 software stack

Emulated kernel driver functionality

Wavefront and Instruction Readiness

‒ Check every wavefront each cycle to determine if it has a ready instruction

Instruction Dispatch and Execution

‒ Select one wave per execution resource per cycle from list of ready waves

‒ Initiate register reads

‒ VALU operations sent to Operand Buffer

Single CPU, single CU system

GEM5 MODEL AND SIMULATION

Page 9: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

9 | PUBLIC

BENCHMARKS

Benchmark Description

Array-BW Memory streaming

Bitonic Sort Parallel Merge Sort

CoMD DOE Molecular-dynamics algorithms

FFT Digital signal processing

HPGMG Ranks HPC systems

MD Generic Molecular-dynamics algorithms

SNAP Discrete ordinates neutral particle transport application

SpMV Sparse matrix-vector multiplication

XSBench Monte Carlo particle transport simulation

Table 1. Benchmarks

Page 10: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

10 | PUBLIC

VGPR Usage

Page 11: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

11 | PUBLIC

Jeon et al. claim many registers contain no live value for significant portion of execution

Gebhart et al. claim most register values produced are read only once, and the read occurs within a small distance of the value being produced

Question: Do these observations hold for our simulated architecture and GCN3 code?

‒ Yes!

Analysis: Dynamic instrumentation of vector register usage in gem5 simulation to track read after write distance and number of reads per write per value produced

VGPR USAGE

Page 12: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

12 | PUBLIC

VGPR USAGEV

ecto

r R

egis

ters

w/

Liv

e V

alues

Dynamic Instructions Executed

Live Vector Register Values Over Time - CoMD

Vector Registers w/ Live Values Vector Registers Allocated

Page 13: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

13 | PUBLIC

VGPR USAGEV

ecto

r R

egis

ters

w/

Liv

e V

alues

Dynamic Instructions Executed

Live Vector Register Values Over Time - HPGMG

Vector Registers w/ Live Values Vector Registers Allocated

Page 14: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

14 | PUBLIC

VGPR USAGE

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

1 2 3 4 5 6 7 8 9

Per

cent

of

All

Vec

tor

Val

ues

Pro

duce

d

Series1 Series2 Series3 Series4

Figure 3. Number of reads per vector register value

Page 15: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

15 | PUBLIC

VGPR USAGE

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

1 2 3 4 5 6 7 8 9

Per

cent

of

All

Vec

tor

Val

ues

Consu

med

Series1 Series2 Series3 Series4

Figure 4. Producer to consumer distance

Page 16: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

16 | PUBLIC

Operand Buffering and Register File Caching

Page 17: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

17 | PUBLIC

Goal: evaluate effectiveness of the Register File Cache at reducing the number of register file reads performed by the Operand Buffer

Experiment: sweep RFC size from 2 to 512 entries per SIMD/VRF and examine number of VALU VGPR reads saved and performance impact

Conclusion: Register File Cache can reduce between 19% and 41% of VALU VGPR reads at size 8 with stable performance, and greater fraction of reads at larger sizes

OVERVIEW

OB AND RFC EFFECTIVENESS – VALU VGPR READS SAVED

Page 18: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

18 | PUBLIC

NUMBER OF VALU VGPR READS SAVED BY RFC FORWARDING

OB AND RFC EFFECTIVENESS – VALU VGPR READS SAVED

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

VA

LU

VG

PR

VR

F R

eads

Sav

ed

RFC-2 RFC-4 RFC-8 RFC-16 RFC-32 RFC-64 RFC-128 RFC-256 RFC-512

Figure 5. Number of VALU VGPR reads saved by RFC forwarding paths

Page 19: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

19 | PUBLIC

Goal: evaluate effectiveness of the Operand Buffer and Register File Cache structures in hiding register file bank conflicts

Conclusions: Operand Buffer and Register File Cache are highly effective at hiding bank conflict stalls and latency penalties

OVERVIEW

OB AND RFC EFFECTIVENESS

Page 20: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

20 | PUBLIC

Experiment: compare performance of baseline architecture to one that has no register file bank access conflicts

Upper Bound Study

Conflict Free configuration places each VGPR into its own VRF bank

EXPERIMENTAL SETUP

OB AND RFC EFFECTIVENESS

Page 21: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

21 | PUBLIC

PERFORMANCE ESTIMATION

OB AND RFC EFFECTIVENESS

95%

96%

97%

98%

99%

100%

101%

Rel

ativ

e IP

C

Baseline Conflict Free

Figure 6. Relative performance of Conflict Free configuration compared to baseline (Note y-axis begins at 95%)

Page 22: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

22 | PUBLIC

Dispatch Limits and Wave Level Parallelism

Page 23: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

23 | PUBLIC

Goal: evaluate impact on WLP and performance of providing twice as many VGPRs per SIMD

Conclusions: Providing additional VGPRs allows more workgroups/wavefronts to be dispatched per CU, but may not always provide a performance benefit

OVERVIEW

DISPATCH LIMITS AND WLP

Page 24: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

24 | PUBLIC

RESULTS

DISPATCH LIMITS AND WLP

0%

50%

100%

150%

200%

250%

300%

350%

Rel

ativ

e W

LP

Baseline 2x VGPR

0%

20%

40%

60%

80%

100%

120%

140%

1 2 3 4 5 6 7 8 9

Rel

ativ

e IP

C

Series1 Series2

Figure 9. Relative WLP with 2x VGPR per SIMD Figure 8. Relative performance with 2x VGPR per SIMD

Page 25: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

25 | PUBLIC

HEAD TAIL LATENCY

DISPATCH LIMITS AND WLP

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

CD

F o

f V

ecto

r M

emory

Acc

ess

Lat

ency

Vector Memory Access Latency

FFT Baseline MD Baseline SpMV Baseline XSBench Baseline

FFT 2x VGPR MD 2x VGPR SpMV 2x VGPR XSBench 2x VGPR

Figure 10. CDF of Vector Memory Access Latency – Selected Benchmarks

Page 26: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

26 | PUBLIC

Conclusion

Page 27: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

27 | PUBLIC

Replicate studies in prior works on vector register usage. Values have short RAW distance and are read only a handful of times

Operand Buffers and Register File Caches can hide penalties from register file bank conflicts

Increased wave level parallelism (WLP) does not guarantee better performance

CONCLUSION

Page 28: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

28 | PUBLIC

Non-graphics influenced general purpose compute accelerator architectures

‒ Architecture

‒ Programming model

Smarter strategies for handling memory divergence

‒ Memory bandwidth provided is adequate for compute bound applications

‒ But, it limits memory divergent and irregular applications

FUTURE RESEARCH DIRECTIONS

Page 29: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model
Page 30: Understanding GPGPU Vector Register File Usagewysem/publications/quals-gpgpu-vrf-slides.pdfUnderstanding GPGPU Vector Register File Usage. 2 | PUBLIC AGENDA GPU Architecture gem5 Model

30 | PUBLIC

Disclaimer

The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors.

The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap changes, component and motherboard version changes, new model and/or product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the like. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of such revisions or changes.

AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION.

AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Attribution

© 2017 Advanced Micro Devices, Inc. All rights reserved.

AMD, the AMD Arrow logo, and combinations thereof are trademarks of Advanced Micro Devices, Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.

DISCLAIMER & ATTRIBUTION