data criticality in network on chip design
play

Data Criticality in Network-On-Chip Design Joshua San Miguel - PowerPoint PPT Presentation

Data Criticality in Network-On-Chip Design Joshua San Miguel Natalie Enright Jerger Network-On-Chip Efficiency Efficiency is the ability to produce results with the least amount of waste. Wasted time NoC accounts for 30-70% of on-chip data


  1. Data Criticality in Network-On-Chip Design Joshua San Miguel Natalie Enright Jerger

  2. Network-On-Chip Efficiency Efficiency is the ability to produce results with the least amount of waste.  Wasted time NoC accounts for 30-70% of on-chip data access latency [Z. Li, HPCA 2009][A. Sharifi, MICRO 2012]  Wasted energy NoC accounts for 20-30% of total chip power [J. D. Owens, IEEE Micro 2007][S. R. Vangal, IEEE JSSC 2008] 2

  3. Network-On-Chip Efficiency 3

  4. Network-On-Chip Efficiency load request 4

  5. Network-On-Chip Efficiency load request data response 5

  6. Network-On-Chip Efficiency load request Minimize wasted time  Deliver data no later than needed data response 6

  7. Network-On-Chip Efficiency 7

  8. Network-On-Chip Efficiency load request 0x2 8

  9. Network-On-Chip Efficiency load request 0x2 data response 0 1 2 3 4 5 6 7 9

  10. Network-On-Chip Efficiency load request 0x2 Minimize wasted energy  Deliver data no earlier than needed data response 0 1 2 3 4 5 6 7 10

  11. Network-On-Chip Efficiency Why store data in blocks of multiple words?  Exploit spatial locality in applications  Avoid large tag arrays in caches  Improve row buffer utilization in DRAM 11

  12. Network-On-Chip Efficiency Why store data in blocks of multiple words?  Exploit spatial locality in applications  Avoid large tag arrays in caches  Improve row buffer utilization in DRAM Store data at a coarse granularity, but move data at a fine granularity. 12

  13. Network-On-Chip Efficiency 01:00 03:00 02:00 04:00 13

  14. Network-On-Chip Efficiency 01:00 03:00 02:00 04:00 14

  15. Network-On-Chip Efficiency 01:00 03:00 02:00 04:00 15

  16. Network-On-Chip Efficiency Arrive no later than needed. But expensive. Wasted money since some arrive too early. 01:00 03:00 02:00 04:00 16

  17. Network-On-Chip Efficiency 01:00 03:00 02:00 04:00 17

  18. Network-On-Chip Efficiency 01:00 03:00 02:00 04:00 18

  19. Network-On-Chip Efficiency 01:00 03:00 02:00 04:00 19

  20. Network-On-Chip Efficiency 01:00 03:00 02:00 04:00 20

  21. Network-On-Chip Efficiency 01:00 03:00 02:00 04:00 21

  22. Network-On-Chip Efficiency Spend just enough money to arrive both no later and no earlier than needed. 01:00 03:00 02:00 04:00 22

  23. Network-On-Chip Efficiency Spend just enough money to arrive both no later and no earlier than needed. 01:00 03:00 Deliver data both no later and no earlier than needed  Design for data criticality 02:00 04:00 23

  24. Outline Defining Criticality  Data Criticality  Data Liveness Measuring Criticality  Energy Wasted Addressing Criticality  NoCNoC 24

  25. Data Criticality Data Criticality is the promptness with which an application uses a data word after fetching it from memory. Critical: used immediately after being fetched. Non-critical: used some time later after being fetched. 25 Defining Criticality

  26. Data Criticality – blackscholes for ( i++ ) { ... = BlkSchlsEqEuroNoDiv( sptprice[i] ); } 26 Defining Criticality

  27. Data Criticality – blackscholes for ( i++ ) { ... = BlkSchlsEqEuroNoDiv( sptprice[i] ); } sptprice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 i = 0 27 Defining Criticality

  28. Data Criticality – blackscholes for ( i++ ) { ... = BlkSchlsEqEuroNoDiv( sptprice[i] ); } sptprice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 i = 15 28 Defining Criticality

  29. Data Criticality – blackscholes for ( i++ ) { ... = BlkSchlsEqEuroNoDiv( sptprice[i] ); } sptprice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 criticality 29 Defining Criticality

  30. Data Criticality – fluidanimate for (iparNeigh++) { if (borderNeigh) { pthread_mutex_lock(); neigh->a[iparNeigh] -= ...; pthread_mutex_unlock(); } else { neigh->a[iparNeigh] -= ...; } } 30 Defining Criticality

  31. Data Criticality Data criticality is an inherent consequence of spatial locality and is exhibited by most (if not all) real-world applications. Examples of non-criticality:  Long-running code between accesses  Interference due to thread synchronization  Dependences from other cache misses  Preemption by the operating system 31 Defining Criticality

  32. Data Criticality vs. Instruction Criticality Instruction (or packet) criticality load miss A load miss B load miss C load miss D 32 Defining Criticality

  33. Data Criticality vs. Instruction Criticality Instruction (or packet) criticality load miss A load miss B load miss C load miss D 33 Defining Criticality

  34. Data Criticality vs. Instruction Criticality Data criticality load miss A load miss B load miss C load miss D 34 Defining Criticality

  35. Data Liveness Data Liveness describes whether or not an application uses a data word at all after fetching it from memory. Live-on-arrival (live): used at least once during its cache lifetime. Dead-on-arrival (dead): never used during its cache lifetime. 35 Defining Criticality

  36. Data Liveness – fluidanimate for (iz++) for (iy++) for (ix++) for (j++) { if (border(ix)) ... = cell->v[j].x ; if (border(iy)) ... = cell->v[j].y ; if (border(iz)) ... = cell->v[j].z ; } 36 Defining Criticality

  37. Data Liveness – fluidanimate for (iz++) for (iy++) for (ix++) for (j++) { if (border(ix)) ... = cell->v[j].x ; if (border(iy)) ... = cell->v[j].y ; if (border(iz)) ... = cell->v[j].z ; } cell->v x y z x y z x y z x y z x y z 37 Defining Criticality

  38. Data Liveness – fluidanimate for (iz++) for (iy++) for (ix++) for (j++) { if (border(ix)) ... = cell->v[j].x ; if (border(iy)) ... = cell->v[j].y ; if (border(iz)) ... = cell->v[j].z ; } cell->v x y z x y z x y z x y z x y z 38 Defining Criticality

  39. Data Liveness Data liveness measures the degree of spatial locality in an application. Examples of dead words:  Unused members of structs  Irregular or random access patterns  Heap fragmentation  Padding between data elements  Early evictions due to invalidations, cache pressure or poor replacement policies 39 Defining Criticality

  40. Outline Defining Criticality  Data Criticality  Data Liveness Measuring Criticality  Energy Wasted Addressing Criticality  NoCNoC 40

  41. Measuring Criticality load miss A fetch A[i] use A[i] time fetch latency 41 Measuring Criticality

  42. Measuring Criticality load miss A fetch A[i] use A[i] time fetch latency access latency 42 Measuring Criticality

  43. Measuring Criticality load miss A fetch A[i] use A[i] time fetch latency access latency 𝑜𝑝𝑜 − 𝑑𝑠𝑗𝑢𝑗𝑑𝑏𝑚𝑗𝑢𝑧 = 𝑏𝑑𝑑𝑓𝑡𝑡 𝑚𝑏𝑢𝑓𝑜𝑑𝑧 𝑔𝑓𝑢𝑑ℎ 𝑚𝑏𝑢𝑓𝑜𝑑𝑧 1x for critical words, >1x for non-critical words 43 Measuring Criticality

  44. Measuring Criticality Full-system simulations:  FeS2, BookSim, DSENT  16 2.0 GHz OoO cores  64 kB private L1 per core, 16-word cache blocks  16 MB shared distributed L2 Baseline NoC configuration:  4 x 4 mesh, 2.0 GHz, 128-bit channels  X-Y routing, 3-stage router pipeline, 6 4-flit VCs per port Applications:  PARSEC and SPLASH-2 44 Measuring Criticality

  45. Measuring Criticality Very low criticality blackscholes bodytrack fluidanimate streamcluster swaptions 100% % accessed words (cumulative) 80% 60% 40% 20% 0% 1x 2x 3x 4x 5x 6x 7x 8x 9x 10x access latency / fetch latency 45 Measuring Criticality

  46. Measuring Criticality Low criticality barnes lu_cb water_nsquared water_spatial 100% % accessed words (cumulative) 80% 60% 40% 20% 0% 1x 2x 3x 4x 5x 6x 7x 8x 9x 10x access latency / fetch latency 46 Measuring Criticality

  47. Measuring Criticality High criticality fft vips volrend x264 100% % accessed words (cumulative) 80% 60% 40% 20% 0% 1x 2x 3x 4x 5x 6x 7x 8x 9x 10x access latency / fetch latency 47 Measuring Criticality

  48. Measuring Criticality Very high criticality canneal cholesky radiosity radix 100% % accessed words (cumulative) 80% 60% 40% 20% 0% 1x 2x 3x 4x 5x 6x 7x 8x 9x 10x access latency / fetch latency 48 Measuring Criticality

  49. Measuring Criticality – Energy Wasted Estimate energy wasted due to non-criticality  Model an ideal NoC where for each word: 𝑔𝑓𝑢𝑑ℎ 𝑚𝑏𝑢𝑓𝑜𝑑𝑧 ≈ 𝑏𝑑𝑑𝑓𝑡𝑡 𝑚𝑏𝑢𝑓𝑜𝑑𝑧 49 Measuring Criticality

  50. Measuring Criticality – Energy Wasted Estimate energy wasted due to non-criticality  Model an ideal NoC where for each word: 𝑔𝑓𝑢𝑑ℎ 𝑚𝑏𝑢𝑓𝑜𝑑𝑧 ≈ 𝑏𝑑𝑑𝑓𝑡𝑡 𝑚𝑏𝑢𝑓𝑜𝑑𝑧 50 Measuring Criticality

  51. Measuring Criticality – Energy Wasted Estimate energy wasted due to non-criticality  Model an ideal NoC where for each word: 𝑔𝑓𝑢𝑑ℎ 𝑚𝑏𝑢𝑓𝑜𝑑𝑧 ≈ 𝑏𝑑𝑑𝑓𝑡𝑡 𝑚𝑏𝑢𝑓𝑜𝑑𝑧 high criticality low criticality 51 Measuring Criticality

Recommend


More recommend