practical near-data processing for in-memory analytics...

27
Practical Near-Data Processing for In-Memory Analytics Frameworks Mingyu Gao, Grant Ayers, Christos Kozyrakis Stanford University http://mast.stanford.edu PACT – Oct 19, 2015

Upload: others

Post on 13-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Practical Near-Data Processing for In-Memory Analytics Frameworks

Mingyu Gao, Grant Ayers, Christos Kozyrakis

Stanford University

http://mast.stanford.edu

PACT – Oct 19, 2015

Page 2: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Motivating Trends

End of Dennard scaling systems are energy limited

Emerging big data workloads

o Massive datasets, limited temporal locality, irregular access patterns

o They perform poorly on conventional cache hierarchies

Need alternatives to improve energy efficiency

2MapReduce Graphs

Deep Neural Networks

Figs: http://oceanaute.blogspot.com/2015/06/how-to-shuffle-sort-mapreduce.html

Page 3: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

PIM & NDP

Improve performance & energy by avoiding data movement

Processing-In-Memory (1990’s – 2000’s)

o Same-die integration is too expensive

Near-Data Processing

o Enabled by 3D integration

o Practical technology solution

o Processing on the logic die

3

Hybrid Memory Cube(HMC)

High Bandwidth Memory(HBM)

Figs: www.extremetech.com

Page 4: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Base NDP Hardware

Vault Logic

NoC

Logic Die

DRAM Die

...

Bank

Channel

Vault

Stacks linked to host multi-core processoro Code with temporal locality: runs on host

o Code without temporal locality: runs on NDP

3D memory stacko x10 bandwidth, x3-5 power improvement

o 8-16 vaults per stack• Vertical channel

• Dedicated vault controller

o NDP cores• General-purpose, in-order cores

• FPU, L1 caches I/D, no L2

• Multithreaded for latency tolerance

4

Host Processor

Memory Stack

High-Speed Serial Link

Page 5: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Challenges and Contributions

NDP for large-scale highly distributed analytics frameworks? General coherence maintaining is expensive

Scalable and adaptive software-assisted coherence

? Inefficient communication and synchronization through host processorPull-based model to directly communicate, remote atomic operations

? Hardware/software interfaceA lightweight runtime to hide low-level details to make program easier

? Processing capability and energy efficiencyBalanced and efficient hardware

A general, efficient, balanced, practical-to-use NDP architecture

5

Page 6: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Example App: PageRank

Edge-centric, scatter-gather, graph processing framework

Other analytics frameworks have similar behaviors

6

edge_scatter(edge_t e)src sends update over e

update_gather(update_t u)apply u to dst

while not donefor e in all edgesedge_scatter(e)

for u in all updatesupdate_gather(u)

Edge-centric SG PageRank

u = src.rank / src.out_degree

sum += uif all gathereddst.rank = b * sum + (1-b)Sequential accesses (stream in/out)

Communication between graph partitions

Synchronization between iterations

Partitioned dataset, local processing

Page 7: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Architecture DesignMemory model, communication, coherence, …

Lightweight hardware structures and software runtime

Page 8: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Shared Memory Model

Unified physical address space across stackso Direct access from any NDP/host core to memory in any vault/stack

In PageRanko One thread to access data in a remote graph partition

• For edges across two partitions

Implementationo Memory ctrl forwards local/remote accesses

o Shared router in each vault

8

Mem Ctrl

NDPCore

……

Memory request

Router

Local Vault Memory

Local Remote

NDPCore

NDPCore

Page 9: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Virtual Memory Support

NDP threads access virtual address spaceo Small TLB per core (32 entries)

o Large pages to minimize TLB misses (2 MB)

o Sufficient to cover local memory & remote buffers

In PageRanko Each core works on local data, much smaller than the entire dataset

o 0.25% miss rate for PageRank

TLB misses served by OS in hosto Similar to IOMMU misses in conventional systems

9

Page 10: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Software-Assisted Coherence

Maintaining general coherence is expensive in NDP systemso Highly distributed, multiple stacks

Analytics frameworkso Little data sharing except for communication

o Data partitioning is coarse-grained

Only allow data to be cached in one cacheo Owner cache

o No need to check other caches

Page-level coarse-grainedo Owner cache configurable through PTE

10

NDPCore

$

NDPCore

$

Mem Ctrl

Vault Memory

NDPCore

$

NDPCore

$

Mem Ctrl

Vault Memory

Vault 0 Vault 1

Owner cache identified by TLB

Memory vault identified by

physical address

Page 11: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Software-Assisted Coherence

Scalableo Avoids directory lookup and storage

Adaptiveo Data may overflow to other vault

o Able to cache data from any vault in local cache

Flush only when owner cache changeso Rarely happen as dataset partitioning is fixed

11

NDPCore

$

NDPCore

$

Mem Ctrl

Vault Memory

NDPCore

$

NDPCore

$

Mem Ctrl

Vault Memory

Vault 0 Vault 1

Dataset

Page 12: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Communication

Pull-based modelo Producer buffers intermediate/result data locally and separately

o Post small message (address, size) to consumer

o Consumer pulls data when it needs with load instructions

12

Task Task Task Task

Cores Cores Cores Cores Process

Buffer

Task Task Task TaskPull

Page 13: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Communication

Pull-based model is efficient and scalableo Sequential accesses to data

o Asynchronous and highly parallel

o Avoids the overheads of extra copies

o Eliminates host processor bottleneck

In PageRanko Used to communicate the update lists across partitions

13

Page 14: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Communication

HW optimization: remote load buffer (RLBs)o A small buffer per NDP core (a few cachelines)

o Prefetch and cache remote (sequential) load accesses• Remote data are not cache-able in the local cache

• Do not want owner cache change as it results in cache flush

Coherence guarantee with RLBso Remote stores bypass RLB

• All writes go to the owner cache

• Owner cache always has the most up-to-date data

o Flush RLBs at synchronization point• … at which time new data are guaranteed to be visible to others

• Cheap as each iteration is long and RLB is small14

Page 15: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Synchronization

Remote atomic operationso Fetch-and-add, compare-and-swap, etc.

o HW support at memory controllers [Ahn et al. HPCA’05]

Higher-level synchronization primitiveso Build by remote atomic operations

o E.g., hierarchical, tree-style barrier implementation• Core vault stack global

In PageRanko Build barrier between iterations

15

Page 16: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Software Runtime

Hide low-level coherence/communication featureso Expose simple set of API

Data partitioning and program launcho Optionally specify running core and owner cache close to dataset

o No need to be perfect, correctness is guaranteed by remote access

Hybrid workloadso Coarsely divide work between host and NDP by programmers

• Based on temporal locality and parallelism

o Guarantee no concurrent accesses from host and NDP cores

16

Page 17: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

EvaluationThree analytics framework: MapReduce, Graph, DNN

Page 18: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Methodology

Infrastructureo zsim

o McPAT + CACTI + Micron’s DRAM power calculator

Calibrate with public HMC literatures

Applicationso MapReduce: Hist, LinReg, grep

o Graph: PageRank, SSSP, ALS

o DNN: ConvNet, MLP, dA

Page 19: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Porting Frameworks

MapReduce

o In map phase, input data streamed in

o Shuffle phase handled by pull-based communication

Graph

o Edge-centric

o Pull remote update lists when gathering

Deep Neural Networks

o Convolution/pooling layers handled similar to Graph

o Fully-connected layers use local combiner before communication

Once the framework is ported, no changes to the user-level apps

19

Page 20: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Graph: Edge- vs. Vertex-Centric

2.9x performance and energy improvemento Edge-centric version optimize for spatial locality

o Higher utilization for cachelines and DRAM rows20

0

0.2

0.4

0.6

0.8

1

1.2

SSSP ALSNo

rmal

ized

Per

form

ance

Performance

Vertex-Centric Edge-Centric

0

0.2

0.4

0.6

0.8

1

1.2

SSSP ALS

No

rmal

ized

En

ergy

Energy

Vertex-Centric Edge-Centric

Page 21: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Balance: PageRank

Performance scales to 4-8 cores per vaulto Bandwidth saturates

Final designo 4 cores per vault

o 1.0 GHz

o 2-threaded

o Area constrained

21

0

5

10

15

20

0 2 4 6 8 10 12 14 16

No

rmal

ized

Pe

rfo

rman

ce

0%

20%

40%

60%

80%

100%

0 2 4 6 8 10 12 14 16Ban

dw

idth

Uti

lizat

ion

Number of Cores per Vault

1.0GHz 1T 1.0GHz 2T 1.0GHz 4T 0.5GHz 1T 0.5GHz 2T 0.5GHz 4T

Saturate after 8 cores

Page 22: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Scalability

02468

10121416

Hist PageRank ConvNet

No

rmal

ized

Sp

eed

up

Performance Scaling vs. # Stacks

1 stack 2 stacks 4 stacks 8 stacks 16 stacks

22

Performance scales well up to 16 stacks (256 vaults, 1024 threads)

Inter-stack links are not heavily used

Page 23: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Final Comparison

Four systemso Conv-DDR3

• Host processor + 4 DDR3 channels

o Conv-3D• Host processor + 8 HMC stacks

o Base-NDP• Host processor + 8 HMC stacks with NDP cores

• Communication coordinated by host

o NDP• Similar to Base-NDP

• With our coherence and communication

23

Page 24: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Final Comparison

Conv-3D: improve 20% for Graph (bandwidth-bound), more energy

Base-NDP: 3.5x faster and 3.4x less energy than Conv-DDR3

NDP: up to 16x improvement than Conv-DDR3, 2.5x over Base-NDP24

0

0.5

1

1.5

Execution Time

Conv-DDR3 Conv-3D Base-NDP NDP

0

0.5

1

1.5

Energy

Conv-DDR3 Conv-3D Base-NDP NDP

Page 25: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Hybrid Workloads

Use both host processor and NDP cores for processing

NDP portion: similar speedup

Host portion: slight slowdowno Due to coarse-grained address

interleaving

25

0

0.2

0.4

0.6

0.8

1

1.2

Execution Time Breakdown

Host Time NDP TimeFisherScoring K-Core

Page 26: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Conclusion

Lightweight hardware structures and software runtimeo Hides hardware details

o Scalable and adaptive software-assisted coherence model

o Efficient communication and synchronization

Balanced and efficient hardware

Up to 16x improvement over DDR3 baselineo 2.5x improvement over previous NDP systems

Software optimizationo 3x improvement from spatial locality

26

Page 27: Practical Near-Data Processing for In-Memory Analytics ...mgao12/pubs/slides/ndp.pact15.slides.pdf · PIM & NDP Improve performance & energy by avoiding data movement Processing-In-Memory

Thanks!Questions?