gpudirect rdma and green multi-gpu architectures · frontend ingest dma size dma latency (µs) dma...

24
GPUDirect RDMA and Green Multi-GPU Architectures GE Intelligent Platforms Mil/Aero Embedded Computing Dustin Franklin, GPGPU Applications Engineer [email protected] 443.310.9812 (Washington, DC)

Upload: others

Post on 22-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

GPUDirect RDMA and Green Multi-GPU Architectures

GE Intelligent Platforms Mil/Aero Embedded Computing Dustin Franklin, GPGPU Applications Engineer [email protected] 443.310.9812 (Washington, DC)

Page 2: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

What this talk is about

• GPU Autonomy

• GFLOPS/watt and SWAP

• Project Denver

• Exascale

Page 3: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• In a standard plug & play OS, the two drivers have separate DMA buffers in system memory

• Three transfers to move data between I/O endpoint and GPU

Without GPUDirect

I/O endpoint

PCIe switch

CPU System memory

GPU GPU

memory

I/O driver space

GPU driver space

1

2

3

1 I/O endpoint DMA’s into system memory

2 CPU copies data from I/O driver DMA buffer into GPU DMA buffer

3 GPU DMA’s from system memory into GPU memory

Page 4: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• I/O endpoint and GPU communicate directly, only one transfer required.

• Traffic limited to PCIe switch, no CPU involvement in DMA

• x86 CPU is still necessary to have in the system, to run NVIDIA driver

GPUDirect RDMA

I/O endpoint

PCIe

switch CPU

System

memory

GPU GPU

memory

1

1 I/O endpoint DMA’s into GPU memory

Page 5: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Endpoints

• GPUDirect RDMA is flexible and works with a wide range of existing devices

– Built on open PCIe standards

– Any I/O device that has a PCIe endpoint and DMA engine can utilize GPUDirect RDMA

– GPUDirect permeates both the frontend ingest and backend interconnects

• It’s free.

– Supported in CUDA 5.0 and Kepler

– Users can leverage APIs to implement RDMA with 3rd-party endpoints in their system

• Practically no integration required

– No changes to device HW

– No changes to CUDA algorithms

– I/O device drivers need to use DMA addresses of GPU instead of SYSRAM pages

• FPGAs • Ethernet / InfiniBand adapters • Storage devices • Video capture cards • PCIe non-transparent (NT) ports

Page 6: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Frontend Ingest

DMA Size DMA latency (µs)

no RDMA with RDMA Δ

16 KB 65.06 µs 4.09 µs ↓15.9X

32 KB 77.38 µs 8.19 µs ↓9.5X

64 KB 124.03 µs 16.38 µs ↓7.6X

128 KB 208.26 µs 32.76 µs ↓6.4X

256 KB 373.57 µs 65.53 µs ↓5.7X

512 KB 650.52 µs 131.07 µs ↓5.0X

1024 KB 1307.90 µs 262.14 µs ↓4.9X

2048 KB 2574.33 µs 524.28 µs ↓4.9X

DMA throughput (MB/s)

no RDMA with RDMA

125 MB/s 2000 MB/s

211 MB/s 2000 MB/s

264 MB/s 2000 MB/s

314 MB/s 2000 MB/s

350 MB/s 2000 MB/s

402 MB/s 2000 MB/s

400 MB/s 2000 MB/s

407 MB/s 2000 MB/s

IPN251

ICS1572

XMC

A

D

C

A

D

C

XYLINX

Virtex6

8GB

DDR3

8GB

DDR3

384-core

GPU

NVIDIA

Kepler

2GB

GDDR5

gen3 x8

PCIe

switch

gen1 x8

gen3 x16

INTEL

Ivybridge

quad-core

RF signals InfiniBand 10GigE

MELLANOX

ConnectX-3

Page 7: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Frontend Ingest

DMA Size DMA latency (µs)

no RDMA with RDMA Δ

16 KB 65.06 µs 4.09 µs ↓15.9X

32 KB 77.38 µs 8.19 µs ↓9.5X

64 KB 124.03 µs 16.38 µs ↓7.6X

128 KB 208.26 µs 32.76 µs ↓6.4X

256 KB 373.57 µs 65.53 µs ↓5.7X

512 KB 650.52 µs 131.07 µs ↓5.0X

1024 KB 1307.90 µs 262.14 µs ↓4.9X

2048 KB 2574.33 µs 524.28 µs ↓4.9X

DMA throughput (MB/s)

no RDMA with RDMA

125 MB/s 2000 MB/s

211 MB/s 2000 MB/s

264 MB/s 2000 MB/s

314 MB/s 2000 MB/s

350 MB/s 2000 MB/s

402 MB/s 2000 MB/s

400 MB/s 2000 MB/s

407 MB/s 2000 MB/s

IPN251

ICS1572

XMC

A

D

C

A

D

C

XYLINX

Virtex6

8GB

DDR3

8GB

DDR3

384-core

GPU

NVIDIA

Kepler

2GB

GDDR5

gen3 x8

PCIe

switch

gen1 x8

gen3 x16

INTEL

Ivybridge

quad-core

RF signals InfiniBand 10GigE

MELLANOX

ConnectX-3

Page 8: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

block 0 FPGA ADC

FPGA DMA

block 0

GPU CUDA

block 0

block 1

block 1

block 1

block 2

block 2

block 2

block 3

block 3

block 3

GPU DMA

block 0

block 4

block 4

block 1 block 2

FPGA DMA

Transfer block directly to GPU via PCIe switch

GPU CUDA

CUDA DSP kernels (FIR, FFT, ect.)

GPU DMA

Transfer results to next processor

Pipeline with GPUDirect RDMA

Page 9: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

block 0 FPGA ADC

FPGA DMA

block 0

GPU CUDA

block 0

block 1

block 1

block 1

block 2

block 2

block 3

block 3

GPU DMA

block 0

block 4

block 4

GPU DMA

block 0

FPGA DMA

Transfer block to system memory

GPU CUDA

CUDA DSP kernels (FIR, FFT, ect.)

GPU DMA

Transfer results to next processor

GPU DMA

Transfer from system memory to GPU

block 1 block 2

Pipeline without GPUDirect RDMA

Page 10: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Backend Interconnects • Utilize GPUDirect RDMA across the network for low-latency IPC and system scalability

• Mellanox OFED integration with GPUDirect RDMA – Q2 2013

Page 11: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Topologies • GPUDirect RDMA works in many system topologies

– Single I/O endpoint and single GPU

– Single I/O endpoint and multiple GPUs

– Multiple I/O endpoints and single GPU

– Multiple I/O endpoints and multiple GPUs

with or without PCIe switch downstream of CPU

I/O endpoint

PCIe switch

CPU System memory

GPU

GPU memory

I/O endpoint

GPU

GPU memory

DMA pipeline #1

stream

DMA pipeline #2

stream

Page 12: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Impacts of GPUDirect • Decreased latency

– Eliminate redundant copies over PCIe + added latency from CPU

– ~5x reduction, depending on the I/O endpoint

– Perform round-trip operations on GPU in microseconds, not milliseconds

• Increased PCIe efficiency + bandwidth

– bypass system memory, MMU, root complex: limiting factors for GPU DMA transfers

• Decrease in CPU utilization

– CPU is no longer burning cycles shuffling data around for the GPU

– System memory is no longer being thrashed by DMA engines on endpoint + GPU

– Go from 100% core utilization per GPU to < 10% utilization per GPU

enables new CUDA applications

promotes multi-GPU

Page 13: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• Many multi-GPU systems had 2 GPU nodes

• Additional GPUs quickly choked system memory and CPU resources

• Dual-socket CPU design very common

• Dual root-complex prevents P2P across CPUs (QPI/HT untraversable)

Before GPUDirect…

GFLOPS/watt

Xeon E5 K20X system

SGEMM 2.32 12.34 8.45

DGEMM 1.14 5.19 3.61

I/O endpoint

CPU

System memory

GPU GPU

CPU

System memory

Page 14: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• Higher GPU-to-CPU ratios permitted by increased GPU autonomy from GPUDirect

• PCIe switches integral to design, for true CPU bypass and fully-connected P2P

Rise of Multi-GPU

GFLOPS/watt

GPU:CPU ratio 1 to 1 4 to 1

SGEMM 8.45 10.97

DGEMM 3.61 4.64

I/O endpoint

CPU System memory

GPU GPU GPU GPU

PCIe switch

Page 15: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• Nested hierarchies avert 96-lane limit on current PCIe switches

Nested PCIe switches

GFLOPS/watt

GPU:CPU ratio 1 to 1 4 to 1 8 to 1

SGEMM 8.45 10.97 11.61

DGEMM 3.61 4.64 4.91

I/O endpoint

CPU System

memory

GPU GPU GPU GPU

I/O endpoint

GPU GPU GPU GPU

PCIe switch

PCIe switch

PCIe switch

Page 16: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• SWaP is our new limiting factor

• PCIe over Fiber-Optic can interconnect expansion blades and assure GPU:CPU growth

• Supports PCIe gen3 over at least 100 meters

PCIe over Fiber

I/O

endpoint

GPU GPU GPU GPU

PCIe

switch I/O

endpoint

GPU GPU GPU GPU

PCIe

switch

GFLOPS/watt

GPU:CPU ratio 1 to 1 4 to 1 8 to 1 16 to 1

SGEMM 8.45 10.97 11.61 11.96

DGEMM 3.61 4.64 4.91 5.04

I/O

endpoint

GPU GPU GPU GPU

PCIe

switch I/O

endpoint

GPU GPU GPU GPU

PCIe

switch

CPU system

memory

PCIe

switch

PCIe over Fiber

1 2 3 4

Page 17: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Scalability – 10 petaflops

Processor Power Consumption for 10 petaflops

GPU:CPU ratio 1 to 1 4 to 1 8 to 1 16 to 1

SGEMM 1184 kW 911 kW 862 kW 832 kW

DGEMM 2770 kW 2158 kW 2032 kW 1982 kW

Yearly Energy Bill

GPU:CPU ratio 1 to 1 4 to 1 8 to 1 16 to 1

SGEMM $1,050,326 $808,148 $764,680 $738,067

DGEMM $2,457,266 $1,914,361 $1,802,586 $1,758,232

Efficiency Savings

GPU:CPU ratio 1 to 1 4 to 1 8 to 1 16 to 1

SGEMM -- 23.05% 27.19% 29.73%

DGEMM -- 22.09% 26.64% 28.45%

Page 18: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Road to Exascale

GPUDirect RDMA

Integration with peripherals & interconnects

for system scalability

Project Denver

Hybrid CPU/GPU for

heterogeneous compute

Project Osprey

Parallel microarchitecture & fab process optimizations

for power efficiency

Software

CUDA, OpenCL, OpenACC Drivers & Mgmt Layer

Hybrid O/S

Page 19: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• 64-bit ARMv8 architecture

• ISA by ARM, chip by NVIDIA

• ARM’s RISC-based approach aligns with NVIDIA’s perf/Watt initiative

Project Denver

• Unlike licensed Cortex-A53 and –A57 cores, NVIDIA’s cores are highly customized

• Design flexibility required for tight CPU/GPU integration

Page 20: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

ceepie-geepie

NPN240

PCIe root complex / endpoint

Grid management + scheduler

ARM

ARM

ARM

ARM

L2

US

B

SA

TA

cryp

to

h.2

64

SM

SM

L2 cache

SM SM D

VI

DV

I D

VI

DV

I

SM SM

Memory controller Memory controller Memory controller

Page 21: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

ceepie-geepie NPN240

PCIe root complex

Grid management + scheduler

ARM

ARM

ARM

ARM

L2

US

B

SA

TA

cryp

to

h.2

64

SM

SM

L2 cache

SM SM

DV

I D

VI

DV

I D

VI

SM SM

Mem ctrl Mem ctrl Mem ctrl

PCIe switch

NPN240

PCIe endpoint

Grid management + scheduler

ARM

ARM

ARM

ARM

L2

US

B

SA

TA

cryp

to

h.2

64

SM

SM

L2 cache

SM SM

DV

I D

VI

DV

I D

VI

SM SM

Mem ctrl Mem ctrl Mem ctrl

I/O endpoint

Page 22: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• Heterogeneous compute

– share mixed work efficiently between CPU/GPU

– unified memory subsystem

• Decreased latency

– no PCIe required for synchronization + command queuing

• Power efficiency

– ARMv8 ISA

– on-chip buses & interconnects

– “4+1” power scaling

• Natively boot & run operating systems

• Direct connectivity with peripherals

• Maximize multi-GPU

Impacts of Project Denver

Page 23: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

• DARPA PERFECT – 75 GFLOPS/watt

Project Osprey

Page 24: GPUDirect RDMA and Green Multi-GPU Architectures · Frontend Ingest DMA Size DMA latency (µs) DMA throughput (MB/s) no RDMA with RDMA Δ 16 KB ↓65.06 µs 4.09 µs 15.9X 32 KB 77.38

Summary

• System-wide integration of GPUDirect RDMA

• Increase GPU:CPU ratio for better GFLOPS/watt

• Utilize PCIe switches instead of dual-socket CPU/IOH

• Exascale compute – what’s good for HPC is good for embedded/mobile

• Denver & Osprey – what’s good for embedded/mobile is good for HPC

booth 201

questions?