stash directory
play

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


  1. Stash ¡Directory: ¡ ¡ A ¡Scalable ¡Directory ¡for ¡Many-­‑Core ¡Coherence � Socrates ¡Demetriades ¡ ¡ and ¡Sangyeun ¡Cho ¡ 20 th ¡Interna+onal ¡Symposium ¡On ¡High ¡Performance ¡Computer ¡Architecture ¡(HPCA). ¡ Orlando, ¡FL, ¡February ¡2014 ¡

  2. Directory ¡ • Chip ¡mul+processors ¡ ¡with ¡many ¡cores. ¡ ¡ ¡ ¡ ¡ • Coherence ¡is ¡needed ¡across ¡private ¡Caches ¡ • Directory ¡for ¡scalable ¡coherence ¡solu+ons. ¡ ¡ Shared LLC Directory L2 L2 L2 L2 Cache Cache Cache Cache Core 0 Core 1 Core 2 Core N

  3. Directory: ¡Energy ¡VS ¡Area ¡ Duplicate-­‑Tags ¡ ¡ ¡[e.g., ¡Piranha, ¡NiagraT2] ¡ Directory ¡ Sparse ¡ ¡[e.g., ¡AMD ¡Opteron] ¡ L2 L2 L2 L2 Cache Cache Cache Cache Core 0 Core 1 Core 2 Core N

  4. Directory: ¡Energy ¡VS ¡Area ¡ Duplicate-­‑Tags ¡ ¡[e.g., ¡Piranha, ¡NiagraT2] ¡ Energy ¡inefficient ¡ ¡ Directory ¡ Ways Sparse ¡ ¡[e.g., ¡AMD ¡Opteron] ¡ (L2 assoc. x N-Cores L2 Tags Core 0 Core 1 Core 1 Core 2 Core 2 Core N Core N Core 0

  5. Directory: ¡Energy ¡VS ¡Area ¡ Duplicate-­‑Tags ¡ Energy ¡inefficient ¡ ¡ How big is Directory ¡ enough? 2x-4x over-provision Sparse ¡ ¡[e.g., ¡AMD ¡Opteron] ¡ Area ¡Inefficient ¡ L2 Tags Core 0 Core 1 Core 1 Core 2 Core 2 Core N Core N Core 0

  6. Sparse-­‑based ¡Directories ¡ • Conven+onal ¡Sparse ¡ ¡(2-­‑4x) ¡ ¡[Gupta:isca90, ¡Conway:micro10] ¡ ¡ • Clever ¡hashing ¡ ¡(1.5x) ¡ How big is Area ¡efficiency ¡ ¡[Ferdman:hpca’11, ¡Sanchez:hpca’12] ¡ enough? • Course-­‑grain ¡set ¡indexing ¡ [Alisafaee:micro12] ¡ • Disabling ¡coherence ¡for ¡private ¡pages ¡ [Cuesta:isca11] ¡ • Stash ¡Directory ¡

  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). ¡ ¡

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

  9. Directory-­‑Induced ¡Invalida+ons ¡ Insert Dir Entry Directory Forces Eviction Invalidation L2 Miss Core 1 Core 2 Core N Core 0

  10. Conflict ¡Rate ¡  ¡Cache ¡Miss ¡Rate ¡ 1 ¡ 3 ¡ 2.5 ¡ 0.8 ¡ DIR ¡Conflict ¡Rate ¡ Cache ¡Miss ¡Rate ¡ 2 ¡ 0.6 ¡ 1.5 ¡ 0.4 ¡ 1 ¡ 0.2 ¡ 0.5 ¡ 0 ¡ 0 ¡ Directory ¡Size ¡ Directory ¡Size ¡ [Benchmark: ¡fluidanimte] ¡

  11. Forcing ¡Invalida+on ¡on ¡Private ¡Blocks ¡ Insert Dir Entry Eviction HOT Private Block Core 1 Core 2 Core N Core 0

  12. (1) ¡Invalida+on ¡of ¡Hot ¡Blocks ¡ MRU  LRU Eviction MRU  LRU Core 1 Core 2 Core N Core 0

  13. (2) ¡Causing ¡(unnecessary) ¡Addi+onal ¡Misses ¡ MRU  LRU L2 Miss MRU  LRU Core 1 Core 2 Core N Core 0

  14. (3) ¡‘Pollu+ng’ ¡the ¡Directory ¡Set ¡ MRU  LRU L2 Miss MRU  LRU Core 1 Core 2 Core N Core 0

  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. ¡

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

  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. ¡ ¡

  18. Stash ¡Directory: ¡Silent ¡Evic+on ¡ ¡ Mark as Stash-hidden Block Shared LLC Dir Directory Eviction P Do not enforce invalidation L2 Cache Core 1 Core 2 Core N Core 0

  19. Stash ¡Directory: ¡Handling ¡False ¡Misses ¡ Marked Stash-hidden Shared LLC (False) Directory Dir Miss L2 Miss Core 1 Core 2 Core N Core 0

  20. Stash ¡Directory: ¡Handling ¡False ¡Misses ¡ Unmark Shared LLC Found L2 Miss Core 1 Core 2 Core N Core 0

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

  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. ¡ ¡

  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). ¡ ¡

  24. Cache ¡Size ¡VS ¡Miss ¡Rate ¡ ocean ¡ 220 ¡ 180 ¡ % ¡Miss ¡Rate ¡Change ¡ 140 ¡ Sparse ¡ 100 ¡ PDC ¡ 60 ¡ Stash ¡ 20 ¡ -­‑20 ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡ Directory ¡Provisioning ¡RaKo ¡

  25. Cache ¡Size ¡VS ¡Miss ¡Rate ¡ bodytrack ¡ 200 ¡ % ¡Miss ¡Rate ¡Change ¡ 160 ¡ 120 ¡ Sparse ¡ 80 ¡ PDC ¡ 40 ¡ Stash ¡ 0 ¡ -­‑40 ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡ Directory ¡Provisioning ¡RaKo ¡

  26. Cache ¡Size ¡VS ¡Miss ¡Rate ¡ canneal ¡ 220 ¡ 180 ¡ % ¡Miss ¡Rate ¡Change ¡ 140 ¡ Sparse ¡ 100 ¡ PDC ¡ 60 ¡ Stash ¡ 20 ¡ -­‑20 ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡ Directory ¡Provisioning ¡RaKo ¡

  27. Cache ¡Performance ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 2 ¡ Miss ¡Rate ¡(Normalized) ¡ 1.8 ¡ 1.6 ¡ 1.4 ¡ 1.2 ¡ 1 ¡ 0.8 ¡ 0.6 ¡

  28. Cache ¡Performance ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/4x ¡STASH ¡ 2 ¡ Miss ¡Rate ¡(Normalized) ¡ 1.8 ¡ 1.6 ¡ 1.4 ¡ 1.2 ¡ 1 ¡ 0.8 ¡ 0.6 ¡ • 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). ¡ ¡

  29. Scalability ¡ Area: ¡ Bandwidth: ¡ Can ¡Stash ¡remain ¡small? ¡(1/4x) ¡ ¡ Can ¡Stash ¡remain ¡bandwidth ¡ efficient? ¡ ¡ ¡ 1.5 ¡ 1.6 ¡ Bandwidth ¡(Normalized) ¡ Miss ¡Rate ¡(Normalized) ¡ 1.4 ¡ 1.4 ¡ Sparse ¡ 1.3 ¡ PDC ¡ 1.2 ¡ Stash ¡ 1.0 ¡ 1.2 ¡ 1.1 ¡ 0.8 ¡ 0.6 ¡ 1.0 ¡ 0.4 ¡ 0.9 ¡ 16 ¡ 32 ¡ 64 ¡ 128 ¡ 256 ¡ 512 ¡ 1024 ¡ 16 ¡ 32 ¡ 64 ¡ 128 ¡ 256 ¡ 512 ¡ 1024 ¡ Core ¡Count ¡ Core ¡Count ¡

Recommend


More recommend