Do ¡we ¡still ¡care ¡about ¡single ¡thread ¡ performance? ACACES ¡2008 Dean ¡Tullsen
Speedup 1.0 .1 .9 ACACES ¡2008 Dean ¡Tullsen
Speedup 1.0 .1 .9 1/.55 ¡= ¡1.82 .1 .45 ACACES ¡2008 Dean ¡Tullsen
Speedup 1.0 .1 .9 1/.55 ¡= ¡1.82 .1 .45 1/.325 ¡= ¡3.07 .1 .225 ACACES ¡2008 Dean ¡Tullsen
Speedup 1.0 .1 .9 1/.55 ¡= ¡1.82 .1 .45 1/.325 ¡= ¡3.07 .1 .225 .1 < ¡10 ACACES ¡2008 Dean ¡Tullsen
ACACES ¡2008 Dean ¡Tullsen
Parallelism ¡– ¡Use ¡multiple ¡contexts ¡to ¡achieve ¡better ¡ performance ¡than ¡possible ¡on ¡a ¡single ¡context. ACACES ¡2008 Dean ¡Tullsen
Parallelism ¡– ¡Use ¡multiple ¡contexts ¡to ¡achieve ¡better ¡ performance ¡than ¡possible ¡on ¡a ¡single ¡context. Traditional ¡Parallelism ¡– ¡We ¡use ¡extra ¡threads/processors ¡ to ¡ offload ¡computation . ¡ ¡Threads ¡divide ¡up ¡the ¡execution ¡ stream. ACACES ¡2008 Dean ¡Tullsen
Parallelism ¡– ¡Use ¡multiple ¡contexts ¡to ¡achieve ¡better ¡ performance ¡than ¡possible ¡on ¡a ¡single ¡context. Traditional ¡Parallelism ¡– ¡We ¡use ¡extra ¡threads/processors ¡ to ¡ offload ¡computation . ¡ ¡Threads ¡divide ¡up ¡the ¡execution ¡ stream. Non-‑traditional ¡parallelism ¡– ¡Extra ¡threads ¡are ¡used ¡to ¡ speed ¡up ¡computation ¡ without ¡necessarily ¡off-‑loading ¡any ¡ of ¡the ¡original ¡computation Primary ¡advantage ¡ ¡nearly ¡any ¡code, ¡no ¡matter ¡how ¡inherently ¡ serial, ¡can ¡benefit ¡from ¡parallelization. Another ¡advantage ¡– ¡threads ¡can ¡be ¡added ¡or ¡subtracted ¡without ¡ significant ¡disruption. ACACES ¡2008 Dean ¡Tullsen
ACACES ¡2008 Dean ¡Tullsen
ACACES ¡2008 Dean ¡Tullsen
Thread ¡1 ¡ ¡ ¡ ¡Thread ¡2 ¡ ¡ ¡Thread ¡3 ¡ ¡ ¡Thread ¡4 ACACES ¡2008 Dean ¡Tullsen
ACACES ¡2008 Dean ¡Tullsen
ACACES ¡2008 Dean ¡Tullsen
Thread ¡1 ¡ ¡ ¡ ¡Thread ¡2 ¡ ¡ ¡Thread ¡3 ¡ ¡ ¡Thread ¡4 ACACES ¡2008 Dean ¡Tullsen
Thread ¡1 ¡ ¡ ¡ ¡Thread ¡2 ¡ ¡ ¡Thread ¡3 ¡ ¡ ¡Thread ¡4 Speculative ¡ precomputation, ¡dynamic ¡ speculative ¡ precomputation, ¡many ¡ others. ACACES ¡2008 Dean ¡Tullsen
Thread ¡1 ¡ ¡ ¡ ¡Thread ¡2 ¡ ¡ ¡Thread ¡3 ¡ ¡ ¡Thread ¡4 Speculative ¡ precomputation, ¡dynamic ¡ speculative ¡ precomputation, ¡many ¡ others. Most ¡commonly ¡– ¡ prefetching, ¡possibly ¡ branch ¡pre-‑calculation. ACACES ¡2008 Dean ¡Tullsen
Chappell, ¡Stark, ¡Kim, ¡Reinhardt, ¡Patt, ¡ “Simultaneous ¡Subordinate ¡Micro-‑threading” ¡ 1999 Use ¡microcoded ¡threads ¡to ¡manipulate ¡the ¡ microarchitecture ¡to ¡improve ¡the ¡performance ¡of ¡ the ¡main ¡thread. Zilles ¡2001, ¡Collins ¡2001, ¡Luk ¡2001 Use ¡a ¡regular ¡SMT ¡thread, ¡with ¡code ¡distilled ¡from ¡ the ¡main ¡thread, ¡to ¡support ¡the ¡main ¡thread. ACACES ¡2008 Dean ¡Tullsen
Speculative ¡Precomputation ¡[Collins, ¡et ¡al ¡ 2001 ¡– ¡Intel/UCSD] Dynamic ¡Speculative ¡Precomputation Event-‑Driven ¡Simultaneous ¡Optimization Value ¡Specialization Inline ¡Prefetching Thread ¡Prefetching ACACES ¡2008 Dean ¡Tullsen
Perfect Memory Perfect Delinquent Loads (10) 32.64 32.642 27.90 24.731 Speedup 16.821 8.910 6.28 5.79 4.79 4.46 3.30 2.76 2.47 1.41 1.14 1.04 1.000 art equake gzip mcf health mst Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Perfect Memory Perfect Delinquent Loads (10) 32.64 32.642 27.90 24.731 Speedup 16.821 8.910 6.28 5.79 4.79 4.46 3.30 2.76 2.47 1.41 1.14 1.04 1.000 art equake gzip mcf health mst Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
In ¡SP, ¡a ¡ p-‑slice ¡is ¡a ¡thread ¡derived ¡from ¡a ¡trace ¡of ¡ execution ¡between ¡a ¡ trigger ¡instruction ¡and ¡the ¡ delinquent ¡load. Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
In ¡SP, ¡a ¡ p-‑slice ¡is ¡a ¡thread ¡derived ¡from ¡a ¡trace ¡of ¡ execution ¡between ¡a ¡ trigger ¡instruction ¡and ¡the ¡ delinquent ¡load. All ¡instructions ¡upon ¡which ¡the ¡load’s ¡address ¡is ¡not ¡ dependent ¡are ¡removed ¡(often ¡90-‑95%). Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
In ¡SP, ¡a ¡ p-‑slice ¡is ¡a ¡thread ¡derived ¡from ¡a ¡trace ¡of ¡ execution ¡between ¡a ¡ trigger ¡instruction ¡and ¡the ¡ delinquent ¡load. All ¡instructions ¡upon ¡which ¡the ¡load’s ¡address ¡is ¡not ¡ dependent ¡are ¡removed ¡(often ¡90-‑95%). Live-‑in ¡register ¡values ¡(typically ¡2-‑6) ¡must ¡be ¡ explicitly ¡copied ¡from ¡main ¡thread ¡to ¡helper ¡thread. Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Trigger ¡instruction Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Trigger ¡instruction Spawn ¡thread Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Trigger ¡instruction Spawn ¡thread Prefetch Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Trigger ¡instruction Spawn ¡thread Prefetch Memory ¡latency Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Because ¡SP ¡uses ¡actual ¡program ¡code, ¡can ¡precompute ¡ addresses ¡that ¡fit ¡no ¡predictable ¡pattern. Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Because ¡SP ¡uses ¡actual ¡program ¡code, ¡can ¡precompute ¡ addresses ¡that ¡fit ¡no ¡predictable ¡pattern. Because ¡SP ¡runs ¡in ¡a ¡separate ¡thread, ¡it ¡can ¡interfere ¡ with ¡the ¡main ¡thread ¡much ¡less ¡than ¡software ¡ prefetching. ¡When ¡it ¡isn’t ¡working, ¡it ¡can ¡be ¡killed. Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Because ¡SP ¡uses ¡actual ¡program ¡code, ¡can ¡precompute ¡ addresses ¡that ¡fit ¡no ¡predictable ¡pattern. Because ¡SP ¡runs ¡in ¡a ¡separate ¡thread, ¡it ¡can ¡interfere ¡ with ¡the ¡main ¡thread ¡much ¡less ¡than ¡software ¡ prefetching. ¡When ¡it ¡isn’t ¡working, ¡it ¡can ¡be ¡killed. Because ¡it ¡is ¡decoupled ¡from ¡the ¡main ¡thread, ¡the ¡ prefetcher ¡is ¡not ¡constrained ¡by ¡the ¡control ¡flow ¡of ¡the ¡ main ¡thread. Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Because ¡SP ¡uses ¡actual ¡program ¡code, ¡can ¡precompute ¡ addresses ¡that ¡fit ¡no ¡predictable ¡pattern. Because ¡SP ¡runs ¡in ¡a ¡separate ¡thread, ¡it ¡can ¡interfere ¡ with ¡the ¡main ¡thread ¡much ¡less ¡than ¡software ¡ prefetching. ¡When ¡it ¡isn’t ¡working, ¡it ¡can ¡be ¡killed. Because ¡it ¡is ¡decoupled ¡from ¡the ¡main ¡thread, ¡the ¡ prefetcher ¡is ¡not ¡constrained ¡by ¡the ¡control ¡flow ¡of ¡the ¡ main ¡thread. Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen
Recommend
More recommend