Spa$otemporal Coherence Tracking Mohammad Alisafaee December - - PowerPoint PPT Presentation
Spa$otemporal Coherence Tracking Mohammad Alisafaee December - - PowerPoint PPT Presentation
Spa$otemporal Coherence Tracking Mohammad Alisafaee December 4, 2012 Scaling Coherence Directories CMPs heading towards high core counts Private caches
Scaling ¡Coherence ¡Directories ¡
- CMPs ¡heading ¡towards ¡high ¡core ¡counts ¡
– Private ¡caches ¡require ¡coherence ¡ – Coherence ¡directories ¡must ¡be ¡scalable ¡
- Directory ¡size ¡increases ¡quadra@cally ¡with ¡
core ¡count ¡
– Consume ¡a ¡large ¡frac@on ¡of ¡the ¡die ¡area ¡
Needs ¡Area-‑Efficient ¡Directories! ¡
2 ¡
Reducing ¡Directory ¡Size ¡
- Narrow ¡down ¡entries ¡
- Reduce ¡the ¡number ¡of ¡entries ¡
– Coarse-‑grain ¡coherence ¡tracking ¡
- False ¡sharing ¡degrades ¡the ¡performance ¡
– Dual-‑grain ¡coherence ¡tracking ¡
3 ¡
Spa$otemporal ¡Coherence ¡Tracking ¡
Observa$on: ¡Data ¡are ¡not ¡ac@vely ¡shared ¡ ¡
– Data ¡regions ¡are ¡accessed ¡by ¡one ¡core ¡at ¡a ¡@me ¡ (temporarily ¡private) ¡
Proposal: ¡Use ¡a ¡dual-‑grain ¡coherence ¡directory ¡
– Region ¡granularity: ¡temporarily-‑private ¡data ¡ – Block ¡granularity: ¡shared ¡data ¡
Results: ¡
– 75% ¡reduc@on ¡in ¡directory ¡size ¡with ¡only ¡1% ¡ performance ¡loss ¡
4 ¡
Outline ¡
- Introduc@on ¡
- Temporarily-‑private ¡data ¡
- Spa@otemporal ¡Coherence ¡Tracking ¡
- Results ¡
- Conclusion ¡
5 ¡
Classifica$on ¡of ¡Data ¡
- Conven@onal ¡data ¡classifica@on: ¡Private ¡or ¡
Shared ¡
– Private: ¡Always ¡accessed ¡by ¡the ¡same ¡core ¡ – Shared: ¡Accessed ¡by ¡mul@ple ¡cores ¡
¡
- Coherence ¡can ¡be ¡deac@vated ¡for ¡private ¡data ¡
[Cuesta'11] ¡ ¡
- Private ¡data ¡are ¡a ¡small ¡frac@on ¡[Hardavellas'09] ¡
6 ¡
New ¡Classifica$on ¡of ¡Data ¡
- Temporal ¡defini@on ¡of ¡Private ¡and ¡Shared ¡
– Look ¡only ¡at ¡the ¡caching ¡@me ¡of ¡data ¡
- Temporarily ¡private: ¡Cached ¡by ¡one ¡core ¡
- Temporarily ¡shared: ¡Cached ¡by ¡mul@ple ¡cores ¡
7 ¡
Shared ¡ Temporarily ¡ Private ¡ Temporarily ¡ Private ¡ Temporarily ¡ Private ¡ Temporarily ¡ Private ¡
Methodology ¡
Workloads ¡
- OLTP: ¡TPC-‑C ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
- n ¡IBM ¡DB2 ¡& ¡Oracle ¡
- DSS: ¡TPC-‑H ¡Queries ¡1, ¡17 ¡ ¡
- n ¡IBM ¡DB2 ¡
- Web: ¡SPECWeb99 ¡ ¡
- n ¡Apache ¡& ¡Zeus ¡ ¡
- Scien@fic: ¡Em3d ¡(Olden), ¡
Ocean ¡(SPLASH) ¡ Model ¡Parameters ¡
- 16-‑core ¡Tiled ¡CMP ¡@ ¡2 ¡GHz, ¡
3-‑wide ¡OoO ¡cores ¡
- L1: ¡32 ¡KB, ¡4-‑way, ¡64-‑byte ¡
lines ¡
- NUCA ¡L2: ¡8 ¡MB, ¡shared ¡
- 8 ¡KB ¡regions ¡= ¡128 ¡blocks ¡
9 ¡
Flexus ¡[Wenisch06] ¡ – Full-‑system ¡trace ¡and ¡OoO ¡@ming ¡simula@on ¡
Opportunity ¡
79% ¡of ¡entries ¡map ¡to ¡temporally-‑private ¡pages ¡
10 ¡
0% 20% 40% 60% 80% 100% Q1 Q17 Oracle DB2 Em3d Ocean Apache Zeus DSS OLTP Scientific Web
% Directory Entries Temporarily-private
Opportunity ¡
79% ¡of ¡entries ¡map ¡to ¡temporally-‑private ¡pages ¡ Temporarily ¡private ¡has ¡42% ¡higher ¡opportunity ¡over ¡private ¡ 11 ¡
0% 20% 40% 60% 80% 100% Q1 Q17 Oracle DB2 Em3d Ocean Apache Zeus DSS OLTP Scientific Web
% Directory Entries Temporarily-private Private
Outline ¡
- Introduc@on ¡
- Temporarily-‑private ¡data ¡
- Spa@otemporal ¡Coherence ¡Tracking ¡
- Results ¡
- Conclusion ¡
12 ¡
Spa$otemporal ¡Coherence ¡Tracking ¡
- Classify ¡regions ¡to ¡temporarily-‑private ¡and ¡
shared ¡
– Look ¡at ¡access/evic@on ¡messages ¡ – Maintain ¡region ¡informa@on ¡
- Dual-‑grain ¡coherence ¡tracking ¡of ¡data ¡
– Coarse-‑grained ¡tracking ¡for ¡temporarily-‑private ¡ data ¡ – Fine-‑grained ¡tracking ¡for ¡shared ¡data ¡
13 ¡
14 ¡
Read/Write ¡ Evict ¡
Region ¡& ¡Block ¡Informa$on ¡
- For ¡every ¡cached ¡region ¡
– Who ¡accessed ¡it ¡first? ¡The ¡Owner ¡ – How ¡many ¡blocks ¡are ¡cached ¡by ¡the ¡owner? ¡ – How ¡many ¡blocks ¡are ¡shared? ¡ ¡… ¡== ¡0 ¡: ¡Temporarily ¡private ¡ ¡… ¡> ¡0 ¡: ¡Temporarily ¡shared ¡ ¡
- For ¡every ¡shared ¡block: ¡
– State ¡ – Who ¡are ¡the ¡sharers? ¡
15 ¡
Lifecycle ¡of ¡a ¡Region ¡
Temporarily ¡ Private ¡
16 ¡
Not ¡Cached ¡ Temporarily ¡ Shared ¡
Outline ¡
- Introduc@on ¡
- Temporarily-‑private ¡data ¡
- Spa@otemporal ¡Coherence ¡Tracking ¡
- Results ¡
- Conclusion ¡
17 ¡
Directory ¡Size ¡Reduc$on ¡
SCT ¡at ¡most ¡requires ¡25% ¡of ¡the ¡baseline ¡area ¡ Region ¡informa@on ¡requires ¡6% ¡of ¡the ¡baseline ¡area ¡ ¡
18 ¡
0% 10% 20% 30% Q1 Q17 Oracle DB2 Em3d Ocean Apache Zeus DSS OLTP Scientific Web
% Baseline Entries Blocks Regions
Performance ¡
1% ¡loss ¡in ¡performance ¡while ¡using ¡4x ¡less ¡area ¡ ¡
19 ¡
70% 80% 90% 100% Q1 Q17 Oracle DB2 Em3d Ocean Apache Zeus DSS OLTP Sci. Web
Normalized Performance SCT
Opportunity ¡
1% ¡loss ¡in ¡performance ¡while ¡using ¡4x ¡less ¡area ¡ 6% ¡higher ¡performance ¡compared ¡to ¡private ¡
20 ¡
70% 80% 90% 100% Q1 Q17 Oracle DB2 Em3d Ocean Apache Zeus DSS OLTP Sci. Web
Normalized Performance SCT PRIVATE
Conclusion ¡
- Directory ¡requires ¡a ¡large ¡area ¡at ¡high ¡core ¡counts ¡
- Majority ¡of ¡data ¡are ¡temporarily ¡private ¡
- Adap@ve ¡dual-‑grain ¡coherence ¡tracking ¡
– Region ¡granularity ¡for ¡temporarily-‑private ¡data ¡ – Block ¡granularity ¡for ¡shared ¡data ¡
- 75% ¡reduc@on ¡in ¡the ¡coherence ¡directory ¡size ¡
with ¡only ¡1% ¡performance ¡loss ¡
21 ¡
Thanks ¡
22 ¡