do we still care about single thread performance
play

Do we still care about single thread performance? ACACES - PowerPoint PPT Presentation

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


  1.  Do ¡we ¡still ¡care ¡about ¡single ¡thread ¡ performance? ACACES ¡2008 Dean ¡Tullsen

  2. Speedup 1.0 .1 .9 ACACES ¡2008 Dean ¡Tullsen

  3. Speedup 1.0 .1 .9 1/.55 ¡= ¡1.82 .1 .45 ACACES ¡2008 Dean ¡Tullsen

  4. Speedup 1.0 .1 .9 1/.55 ¡= ¡1.82 .1 .45 1/.325 ¡= ¡3.07 .1 .225 ACACES ¡2008 Dean ¡Tullsen

  5. Speedup 1.0 .1 .9 1/.55 ¡= ¡1.82 .1 .45 1/.325 ¡= ¡3.07 .1 .225 .1 < ¡10 ACACES ¡2008 Dean ¡Tullsen

  6. ACACES ¡2008 Dean ¡Tullsen

  7.  Parallelism ¡– ¡Use ¡multiple ¡contexts ¡to ¡achieve ¡better ¡ performance ¡than ¡possible ¡on ¡a ¡single ¡context. ACACES ¡2008 Dean ¡Tullsen

  8.  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

  9.  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

  10. ACACES ¡2008 Dean ¡Tullsen

  11. ACACES ¡2008 Dean ¡Tullsen

  12. Thread ¡1 ¡ ¡ ¡ ¡Thread ¡2 ¡ ¡ ¡Thread ¡3 ¡ ¡ ¡Thread ¡4 ACACES ¡2008 Dean ¡Tullsen

  13. ACACES ¡2008 Dean ¡Tullsen

  14. ACACES ¡2008 Dean ¡Tullsen

  15. Thread ¡1 ¡ ¡ ¡ ¡Thread ¡2 ¡ ¡ ¡Thread ¡3 ¡ ¡ ¡Thread ¡4 ACACES ¡2008 Dean ¡Tullsen

  16. Thread ¡1 ¡ ¡ ¡ ¡Thread ¡2 ¡ ¡ ¡Thread ¡3 ¡ ¡ ¡Thread ¡4  Speculative ¡ precomputation, ¡dynamic ¡ speculative ¡ precomputation, ¡many ¡ others. ACACES ¡2008 Dean ¡Tullsen

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

  18.  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

  19.  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

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

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

  22. Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen

  23.  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

  24.  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

  25.  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

  26. Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen

  27. Trigger ¡instruction Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen

  28. Trigger ¡instruction Spawn ¡thread Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen

  29. Trigger ¡instruction Spawn ¡thread Prefetch Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen

  30. Trigger ¡instruction Spawn ¡thread Prefetch Memory ¡latency Delinquent ¡load Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen

  31. Dean ¡Tullsen Processor ¡Architecture ¡and ¡Compilation ¡Lab ACACES ¡2008 Dean ¡Tullsen

  32.  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

  33.  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

  34.  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

  35.  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