Stash Directory: A Scalable Directory for Many-Core - - PowerPoint PPT Presentation

stash directory
SMART_READER_LITE
LIVE PREVIEW

Stash Directory: A Scalable Directory for Many-Core - - PowerPoint PPT Presentation

Stash Directory: A Scalable Directory for Many-Core Coherence Socrates Demetriades and Sangyeun Cho 20 th Interna+onal Symposium On High Performance


slide-1
SLIDE 1

Stash ¡Directory: ¡ ¡ A ¡Scalable ¡Directory ¡for ¡Many-­‑Core ¡Coherence

Socrates ¡Demetriades ¡ ¡ and ¡Sangyeun ¡Cho ¡

20th ¡Interna+onal ¡Symposium ¡On ¡High ¡Performance ¡Computer ¡Architecture ¡(HPCA). ¡ Orlando, ¡FL, ¡February ¡2014 ¡

slide-2
SLIDE 2

Directory ¡

Directory L2 Cache L2 Cache L2 Cache L2 Cache Core 0 Core 1 Core 2 Core N Shared LLC

  • Chip ¡mul+processors ¡ ¡with ¡many ¡cores. ¡ ¡ ¡ ¡ ¡
  • Coherence ¡is ¡needed ¡across ¡private ¡Caches ¡
  • Directory ¡for ¡scalable ¡coherence ¡solu+ons. ¡ ¡
slide-3
SLIDE 3

Directory: ¡Energy ¡VS ¡Area ¡

Directory ¡ Duplicate-­‑Tags ¡ ¡

Core 0 Core 1 Core 2 Core N

Sparse ¡

L2 Cache L2 Cache L2 Cache L2 Cache ¡[e.g., ¡Piranha, ¡NiagraT2] ¡ ¡[e.g., ¡AMD ¡Opteron] ¡

slide-4
SLIDE 4

Directory: ¡Energy ¡VS ¡Area ¡

Directory ¡ Duplicate-­‑Tags ¡

Core 0 Core 1 Core 2 Core N Core 0 Core 1 Core 2 Core N

Sparse ¡

L2 Tags Ways (L2 assoc. x N-Cores

Energy ¡inefficient ¡ ¡

¡[e.g., ¡Piranha, ¡NiagraT2] ¡ ¡[e.g., ¡AMD ¡Opteron] ¡

slide-5
SLIDE 5

Directory: ¡Energy ¡VS ¡Area ¡

Directory ¡ Duplicate-­‑Tags ¡

Core 0 Core 1 Core 2 Core N

Sparse ¡

Core 0 Core 1 Core 2 Core N

Energy ¡inefficient ¡ ¡ Area ¡Inefficient ¡

How big is enough? 2x-4x

  • ver-provision

L2 Tags ¡[e.g., ¡AMD ¡Opteron] ¡

slide-6
SLIDE 6

Sparse-­‑based ¡Directories ¡

How big is enough?

  • Conven+onal ¡Sparse ¡ ¡(2-­‑4x) ¡

¡[Gupta:isca90, ¡Conway:micro10] ¡ ¡

  • Clever ¡hashing ¡ ¡(1.5x) ¡

¡[Ferdman:hpca’11, ¡Sanchez:hpca’12] ¡

  • Course-­‑grain ¡set ¡indexing ¡

[Alisafaee:micro12] ¡

  • Disabling ¡coherence ¡for ¡private ¡pages ¡

[Cuesta:isca11] ¡

  • Stash ¡Directory ¡

Area ¡efficiency ¡

slide-7
SLIDE 7

Stash ¡Directory ¡

  • Stash ¡is ¡allowed ¡to ¡not ¡track ¡all ¡cached ¡tags. ¡ ¡

– Entries ¡that ¡track ¡private ¡blocks ¡can ¡be ¡silently ¡removed ¡from ¡directory. ¡ ¡ – LLC ¡and ¡the ¡coherence ¡protocol ¡are ¡involved ¡to ¡discover ¡unregistered ¡blocks. ¡ ¡

  • Contribu+on: ¡ ¡

 Power ¡Efficient ¡(low ¡associa+vely) ¡  Space ¡Efficient ¡(as ¡small ¡as ¡0.25x ¡provisioning ¡size ¡without ¡performance ¡impact) ¡ ¡  Transparent ¡(no ¡OS ¡support, ¡simple ¡design). ¡ ¡  Scalable ¡(largely ¡independent ¡to ¡core ¡count). ¡ ¡

slide-8
SLIDE 8

Outline ¡

 Introduc+on ¡  Directory-­‑Induced ¡Invalida+ons ¡ ¡  Stash ¡Directory ¡  Evalua+on ¡  Conclusion ¡

8

slide-9
SLIDE 9

Directory-­‑Induced ¡Invalida+ons ¡

Core 0 Core 1 Core 2 Core N Insert Dir Entry

Eviction

Directory Forces Invalidation

L2 Miss

slide-10
SLIDE 10

Conflict ¡Rate ¡ ¡Cache ¡Miss ¡Rate ¡

0 ¡ 0.2 ¡ 0.4 ¡ 0.6 ¡ 0.8 ¡ 1 ¡ DIR ¡Conflict ¡Rate ¡ Directory ¡Size ¡ 0 ¡ 0.5 ¡ 1 ¡ 1.5 ¡ 2 ¡ 2.5 ¡ 3 ¡ Cache ¡Miss ¡Rate ¡ Directory ¡Size ¡

[Benchmark: ¡fluidanimte] ¡

slide-11
SLIDE 11

Forcing ¡Invalida+on ¡on ¡Private ¡Blocks ¡

Core 0 Core 1 Core 2 Core N Insert Dir Entry

Eviction

Private Block

HOT

slide-12
SLIDE 12

(1) ¡Invalida+on ¡of ¡Hot ¡Blocks ¡

Core 0 Core 1 Core 2 Core N MRU  LRU MRU  LRU

Eviction

slide-13
SLIDE 13

(2) ¡Causing ¡(unnecessary) ¡Addi+onal ¡Misses ¡

Core 0 Core 1 Core 2 Core N MRU  LRU MRU  LRU

L2 Miss

slide-14
SLIDE 14

(3) ¡‘Pollu+ng’ ¡the ¡Directory ¡Set ¡

Core 0 Core 1 Core 2 Core N MRU  LRU MRU  LRU

L2 Miss

slide-15
SLIDE 15

Forcing ¡Invalida+on ¡on ¡Private ¡Blocks ¡

  • PARSEC ¡and ¡SPLASH2 ¡Workloads ¡
  • 1/4x ¡Directory ¡Size ¡Provisioning ¡

On ¡average: ¡

  • 72% ¡ ¡of ¡directory-­‑induced ¡invalida+ons ¡target ¡Private ¡blocks ¡
  • 80% ¡of ¡invalidated ¡blocks ¡will ¡be ¡re-­‑loaded, ¡causing ¡misses. ¡
slide-16
SLIDE 16

Outline ¡

 Introduc+on ¡  Directory-­‑Induced ¡Invalida+ons ¡ ¡  Stash ¡Directory ¡  Evalua+on ¡  Conclusion ¡

16

slide-17
SLIDE 17

Stash ¡Directory: ¡Overview ¡

  • Directory ¡knows ¡if ¡an ¡entry ¡is ¡tracking ¡a ¡private ¡block. ¡ ¡
  • If ¡evicted ¡entry ¡is ¡private, ¡then ¡do ¡not ¡enforce ¡invalida+on. ¡
  • Private ¡blocks ¡remain ¡hidden ¡from ¡the ¡directory. ¡
  • LLC ¡and ¡the ¡coherence ¡protocol ¡are ¡involved ¡to ¡discover ¡hidden ¡

blocks ¡if ¡necessary. ¡ ¡

slide-18
SLIDE 18

Stash ¡Directory: ¡Silent ¡Evic+on ¡ ¡

Core 0 Core 1 Core 2 Core N Directory

Dir Eviction

Do not enforce invalidation Shared LLC L2 Cache Mark as Stash-hidden Block

P

slide-19
SLIDE 19

Stash ¡Directory: ¡Handling ¡False ¡Misses ¡

Core 0 Core 1 Core 2 Core N Directory Shared LLC

L2 Miss (False) Dir Miss

Marked Stash-hidden

slide-20
SLIDE 20

Stash ¡Directory: ¡Handling ¡False ¡Misses ¡

Core 0 Core 1 Core 2 Core N Shared LLC

L2 Miss

Unmark

Found

slide-21
SLIDE 21

Outline ¡

 Introduc+on ¡  Directory-­‑Induced ¡Invalida+ons ¡ ¡  Stash ¡Directory ¡  Evalua+on ¡  Conclusion ¡

21

slide-22
SLIDE 22

Evalua+on ¡Methodology ¡

  • Workloads ¡

– Mul+threaded ¡benchmarks ¡from ¡SPLAS2 ¡and ¡PARSEC.2.1. ¡

  • Trace ¡

– x86 ¡traces ¡generated ¡using ¡PIN. ¡ – Feed ¡into ¡cache/NoC ¡cycle ¡detailed ¡model ¡ – 1-­‑IPC ¡in-­‑order ¡core ¡model. ¡ ¡ ¡

  • Simulated ¡Machine ¡Configura+on ¡

– 16-­‑core ¡+led ¡based ¡CMP. ¡ ¡ – Distributed ¡shared ¡LLC ¡16MB, ¡ ¡ – L1/L2 ¡private ¡caches, ¡inclusive. ¡4-­‑way/8-­‑way ¡ – 4x4 ¡mesh ¡NoC. ¡ ¡ ¡ ¡ – Distributed ¡directory ¡(same ¡associa+vity ¡as ¡L2). ¡Varying ¡Size. ¡ ¡

slide-23
SLIDE 23

Comparison ¡Schemes. ¡ ¡

  • 1. Sparse: ¡ ¡Conven+onal ¡Sparse ¡Directory. ¡ ¡
  • 2. PDC: ¡Deac+va+ng ¡Coherence ¡for ¡Private ¡blocks ¡[Cuesta:isca11]. ¡

– course-­‑grain ¡classifica+on ¡of ¡blocks ¡into ¡private/shared ¡(page ¡granularity). ¡ – If ¡miss ¡on ¡a ¡private ¡block, ¡do ¡not ¡invoke ¡coherence ¡protocol. ¡ ¡ ¡ ¡=> ¡private ¡blocks ¡are ¡not ¡tracked ¡by ¡the ¡directory. ¡ ¡ – Recover ¡mechanism ¡when ¡page ¡goes ¡from ¡private ¡to ¡shared. ¡ ¡ – OS-­‑supported ¡technique. ¡ ¡

  • All ¡schemes ¡use ¡the ¡same ¡sharer-­‑vector ¡encoding. ¡ ¡
  • All ¡schemes ¡use ¡the ¡same ¡associa+vely ¡(same ¡as ¡L2). ¡ ¡
slide-24
SLIDE 24

Cache ¡Size ¡VS ¡Miss ¡Rate ¡

  • ­‑20 ¡

20 ¡ 60 ¡ 100 ¡ 140 ¡ 180 ¡ 220 ¡

2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡

% ¡Miss ¡Rate ¡Change ¡ Directory ¡Provisioning ¡RaKo ¡

  • cean ¡

Sparse ¡ PDC ¡ Stash ¡

slide-25
SLIDE 25

Cache ¡Size ¡VS ¡Miss ¡Rate ¡

  • ­‑40 ¡

0 ¡ 40 ¡ 80 ¡ 120 ¡ 160 ¡ 200 ¡

2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡

% ¡Miss ¡Rate ¡Change ¡ Directory ¡Provisioning ¡RaKo ¡

bodytrack ¡

Sparse ¡ PDC ¡ Stash ¡

slide-26
SLIDE 26

Cache ¡Size ¡VS ¡Miss ¡Rate ¡

  • ­‑20 ¡

20 ¡ 60 ¡ 100 ¡ 140 ¡ 180 ¡ 220 ¡

2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡

% ¡Miss ¡Rate ¡Change ¡ Directory ¡Provisioning ¡RaKo ¡

canneal ¡

Sparse ¡ PDC ¡ Stash ¡

slide-27
SLIDE 27

Cache ¡Performance ¡

0.6 ¡ 0.8 ¡ 1 ¡ 1.2 ¡ 1.4 ¡ 1.6 ¡ 1.8 ¡ 2 ¡

Miss ¡Rate ¡(Normalized) ¡

2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡

slide-28
SLIDE 28

Cache ¡Performance ¡

0.6 ¡ 0.8 ¡ 1 ¡ 1.2 ¡ 1.4 ¡ 1.6 ¡ 1.8 ¡ 2 ¡

Miss ¡Rate ¡(Normalized) ¡

2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/4x ¡STASH ¡

  • For ¡1/4x ¡Directory ¡Size, ¡improve ¡execu+on ¡+me ¡by ¡16% ¡on ¡average. ¡ ¡ ¡ ¡ ¡
  • Similar ¡in ¡performance ¡to ¡Sparse-­‑2x, ¡while ¡being ¡8 ¡+mes ¡smaller. ¡
  • False ¡misses ¡are ¡few ¡(<6% ¡of ¡directory ¡misses). ¡ ¡
slide-29
SLIDE 29

Scalability ¡

0.9 ¡ 1.0 ¡ 1.1 ¡ 1.2 ¡ 1.3 ¡ 1.4 ¡ 1.5 ¡

16 ¡ 32 ¡ 64 ¡ 128 ¡ 256 ¡ 512 ¡ 1024 ¡

Miss ¡Rate ¡(Normalized) ¡ Core ¡Count ¡

Sparse ¡ PDC ¡ Stash ¡ 0.4 ¡ 0.6 ¡ 0.8 ¡ 1.0 ¡ 1.2 ¡ 1.4 ¡ 1.6 ¡

16 ¡ 32 ¡ 64 ¡ 128 ¡ 256 ¡ 512 ¡ 1024 ¡

Bandwidth ¡(Normalized) ¡ Core ¡Count ¡

Area: ¡ Can ¡Stash ¡remain ¡small? ¡(1/4x) ¡ ¡ Bandwidth: ¡ Can ¡Stash ¡remain ¡bandwidth ¡ efficient? ¡ ¡ ¡

slide-30
SLIDE 30

Conclusion ¡

  • Stash ¡inherits ¡the ¡power ¡efficiency ¡of ¡spares ¡directories. ¡ ¡
  • Reduces ¡the ¡directory ¡size ¡requirements ¡significantly. ¡
  • Provides ¡a ¡transparent ¡op+miza+on, ¡independent ¡of ¡

system ¡somware, ¡core ¡type ¡and ¡count. ¡ ¡

  • Leverages ¡a ¡shared, ¡on-­‑chip ¡last ¡level ¡cache. ¡ ¡
slide-31
SLIDE 31

Thank ¡you ¡for ¡your ¡aUenKon! ¡ ¡

20th ¡Interna+onal ¡Symposium ¡On ¡High ¡Performance ¡Computer ¡Architecture ¡(HPCA). ¡ Orlando, ¡FL, ¡February ¡2014 ¡