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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend