Predic'ng ¡Coherence ¡Communica'on ¡ ¡ by ¡Tracking ¡Synchroniza'on ¡Points ¡at ¡Run ¡Time
Socrates ¡Demetriades ¡ ¡ and ¡Sangyeun ¡Cho ¡
45th ¡Interna+onal ¡Symposium ¡in ¡Microarchitecture, ¡December ¡2012 ¡
Predic'ng Coherence Communica'on by Tracking Synchroniza'on - - PowerPoint PPT Presentation
Predic'ng Coherence Communica'on by Tracking Synchroniza'on Points at Run Time Socrates Demetriades and Sangyeun Cho 45 th Interna+onal Symposium in
45th ¡Interna+onal ¡Symposium ¡in ¡Microarchitecture, ¡December ¡2012 ¡
A A
Miss
[Shared ¡Memory ¡Model ¡/ ¡Write-‑Invalidate ¡Coherence ¡Protocol] ¡
A A A
Upgrade
[Shared ¡Memory ¡Model ¡/ ¡Write-‑Invalidate ¡Coherence ¡Protocol] ¡
Directory-‑based ¡ ¡ Coherence ¡Protocol ¡
A
Miss
Snoop-‑based ¡ ¡ Coherence ¡Protocol ¡
A
Miss
5
A A
Indirect ¡Miss ¡to ¡the ¡Directory ¡ => ¡Increase ¡Miss ¡Latency ¡ Broadcast ¡to ¡all ¡ => ¡Increase ¡traffic ¡
A: T0
A A
Miss
A: T0
Predict
A
Miss
ADDR ¡ PREDICTOR ¡ A ¡ ¡ ¡ ¡ ¡ ¡[T0, ¡… ¡ ¡ ¡] ¡ PREDICTOR ¡ ¡ ¡ ¡ ¡[T0, ¡…] ¡ INST ¡ PREDICTOR ¡ {LD} ¡ ¡ ¡ ¡ ¡ ¡[T0, ¡…] ¡
¡# ¡access ¡addresses ¡ ¡ # ¡sta6c ¡LD/SRs ¡
9
Core 1 Core 2 Core 3 Core 4
SIGNAL BARRIER LOCK UNLOCK WAIT
¡[Pthread ¡nota+on] ¡
BARRIER
shared ¡data ¡ ¡ communica+on ¡direc+on ¡
0 ¡ 50 ¡ 100 ¡ 150 ¡ 200 ¡ 250 ¡ 300 ¡ 350 ¡ 400 ¡
0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 6 ¡ 7 ¡ 8 ¡ 9 ¡ 10 ¡ 11 ¡ 12 ¡ 13 ¡ 14 ¡ 15 ¡
0 ¡ 50 ¡ 100 ¡ 150 ¡ 200 ¡ 250 ¡ 300 ¡ 350 ¡ 400 ¡ 450 ¡ 500 ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 6 ¡ 7 ¡ 8 ¡ 9 ¡ 10 ¡ 11 ¡ 12 ¡ 13 ¡ 14 ¡ 15 ¡
Communica+on ¡Distribu+on ¡of ¡Core ¡0 ¡ ¡(full ¡interval) ¡
Core 0
SYNC-POINT A SYNC-POINT B SYNC-POINT C SYNC-POINT E SYNC-POINT D
Des'na'on ¡Core ¡ID ¡ Sync-epoch A Sync-epoch B Sync-epoch C Sync-epoch D Des'na'on ¡Core ¡ID ¡
Communica+on ¡Distribu+on ¡of ¡Core ¡0 ¡ (different ¡sync-‑epochs) ¡
# ¡contacts ¡
¡[Benchmark: ¡Bodytrack ¡/ ¡16-‑threads] ¡
0 ¡ 50 ¡ 100 ¡ 150 ¡
0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 6 ¡ 7 ¡ 8 ¡ 9 ¡ 10 ¡ 11 ¡ 12 ¡ 13 ¡ 14 ¡ 15 ¡
Communica+on ¡Distribu+on ¡of ¡Core ¡0 ¡ ¡(same ¡sync-‑epoch ¡in ¡different ¡dynamic ¡instances) ¡
# ¡contacts ¡
¡[Benchmark: ¡Bodytrack ¡/ ¡16-‑threads] ¡
Core 0
SYNC-POINT A SYNC-POINT B SYNC-POINT C SYNC-POINT E SYNC-POINT D
Core 0
A B A B A B A B
13
Track Communication Extract Hot Commun.Set
CORE 0
SYNC-POINT A SYNC-POINT B SYNC-POINT A SYNC-POINT B
Sync-‑Point ¡PC ¡ PREDICTOR ¡
A [hot comm. set ]
C0 ¡ C1 ¡ C2 ¡ C3 ¡
[hot comm. set ] Store to SP-table SP-‑TABLE ¡ A A Retrieve hot core set
Miss
SP-‑TABLE ¡ [hot comm. set ]
CORE 0
LOCK A UNLOCK B
LOCK ¡ADDR ¡ PREDICTOR ¡ A ¡ ¡[C0] ¡
Lock Acquire: Retrieve Predictor
LOCK A UNLOCK B
CORE 2
SP-‑TABLE ¡ [C0] Lock Release: Store Core Id [C0]
CORE 0 SYNC-POINT A SYNC-POINT B
1st Instance
Early Hot Set
Sync-‑Point ¡PC ¡ PREDICTOR ¡
SP-‑TABLE ¡
CORE 0 SYNC-POINT A SYNC-POINT B
Retrieved Hot Set New hot set
Sync-‑Point ¡PC ¡ PREDICTOR ¡ A ¡ ¡[hot ¡comm. ¡set ¡] ¡
Miss Miss
SP-‑TABLE ¡
– No ¡restricted ¡on ¡temporal ¡locality ¡among ¡consecu+ve ¡misses. ¡ ¡ – Can ¡adapts ¡faster ¡to ¡the ¡changes. ¡ – Can ¡recall ¡old ¡and ¡forgolen ¡communica+on ¡palerns. ¡ ¡ ¡
– SP ¡table ¡must ¡holds, ¡on ¡average ¡5-‑30 ¡sta+c ¡sync ¡points ¡for ¡a ¡given ¡applica+on. ¡ ¡
20
– From ¡Splash ¡2 ¡& ¡PARSEC ¡Suites. ¡ ¡ – # ¡sta+c ¡sync-‑epochs: ¡ ¡5-‑30 ¡ – # ¡dynamic ¡sync-‑epochs: ¡ ¡22-‑20,000 ¡ ¡(for ¡the ¡evaluated ¡input ¡sizes) ¡
– In ¡order ¡core ¡ – Private ¡L1/L2 ¡ – DIR ¡slice. ¡ ¡ – Network ¡logic ¡ – Coherence ¡Logic ¡
Average ¡ Des+na+on ¡Set ¡Size ¡(actual) ¡ 1.2 ¡ SP-‑predic+on ¡Set ¡Size ¡ ¡ 2.6 ¡
0 ¡ 10 ¡ 20 ¡ 30 ¡ 40 ¡ 50 ¡ 60 ¡ 70 ¡ 80 ¡ 90 ¡ 100 ¡ 0 ¡ 20 ¡ 40 ¡ 60 ¡ 80 ¡ 100 ¡ % ¡inccuring ¡Indirec'on ¡ % ¡Addi'onal ¡Bandwidth ¡per ¡Miss ¡ Last ¡2 ¡misses ¡ ADDR-‑based ¡ INSTR-‑based ¡ SP-‑predic+on ¡ DIRECTORY ¡
BEST POSITION
0 ¡ 10 ¡ 20 ¡ 30 ¡ 40 ¡ 50 ¡ 60 ¡ 70 ¡ 80 ¡ 90 ¡ 100 ¡ 0 ¡ 20 ¡ 40 ¡ 60 ¡ 80 ¡ 100 ¡ % ¡inccuring ¡Indirec'on ¡ % ¡Addi'onal ¡Bandwidth ¡per ¡Miss ¡ Last ¡2 ¡misses ¡ ADDR-‑based ¡ INSTR-‑based ¡ SP-‑predic+on ¡ DIRECTORY ¡
PREDICTION ¡ ¡TABLE ¡ ¡STORAGE ¡
BEST POSITION
0 ¡ 10 ¡ 20 ¡ 30 ¡ 40 ¡ 50 ¡ 60 ¡ 70 ¡ 80 ¡ 90 ¡ 100 ¡ 0 ¡ 20 ¡ 40 ¡ 60 ¡ 80 ¡ 100 ¡ % ¡inccuring ¡Indirec'on ¡ % ¡Addi'onal ¡Bandwidth ¡per ¡Miss ¡ Last ¡2 ¡misses ¡ ADDR-‑based ¡ INSTR-‑based ¡ SP-‑predic+on ¡ DIRECTORY ¡
PREDICTION ¡ ¡TABLE ¡ ¡STORAGE ¡
BEST POSITION
45th ¡Interna+onal ¡Symposium ¡in ¡Microarchitecture, ¡December ¡2012 ¡