The Bunker Cache for Spatio-Value Approximation Joshua San Miguel Jorge Albericio Natalie Enright Jerger Aamer Jaleel
Data Movement and Storage off-chip memory shared last-level cache private caches processor core 2
Data Movement and Storage off-chip memory high cost of moving data shared last-level cache Accessing memory is 10x – 100x greater latency and private caches energy than accessing private cache! processor core 3
Data Movement and Storage off-chip memory high cost of moving data high cost of storing data shared last-level cache Last-level cache consumes substantial energy and private caches takes up 30%-50% of chip area! processor core 4
Data Movement and Storage off-chip memory optimize via data addresses e.g., cache prefetching shared last-level cache private caches processor core 5
Data Movement and Storage off-chip memory optimize via data addresses e.g., cache prefetching optimize via data values e.g., cache compression shared last-level cache private caches processor core 6
Data Movement and Storage off-chip memory optimize via data addresses e.g., cache prefetching optimize via data values complexity of tracking address correlations e.g., cache compression shared last-level cache private caches processor core 7
Data Movement and Storage off-chip memory optimize via data addresses e.g., cache prefetching optimize via data values complexity of tracking address correlations e.g., cache compression shared last-level cache complexity of manipulating data values private caches processor core 8
Data Movement and Storage off-chip memory optimize via data addresses e.g., cache prefetching optimize via data values complexity of tracking address correlations e.g., cache compression shared last-level cache complexity of manipulating data values Can we improve data movement and storage private caches simultaneously without the added complexities? processor core (where data is located? what value is encoded in data?) 9
Our Work We explore Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory We propose the Bunker Cache : many-to-one similarity mapping based on memory address savings in runtime (1.58x), dynamic energy (1.72x), leakage power (1.65x) at acceptable quality levels 10
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. 11
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. data values can often be approximate and continuous (i.e., smooth) 12
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. data values can often be approximate data addresses represent a and continuous (i.e., smooth) one-dimensional memory space 13
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. 14
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. z x y memory space: 15
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. z x y memory space: 16
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. z x y memory space: 17
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. z approximately similar and contiguous x y memory space: 18
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. z x y memory space: 19
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. z x y memory space: 20
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. z x y memory space: 21
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. z x y memory space: 22
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. similar but not contiguous z x y memory space: 23
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. similar but not contiguous z x y STRIDE memory space: 24
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. e.g., image processing 25
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. e.g., image processing similar but not contiguous STRIDE = image row size 26
Spatio-Value Similarity where data is located? what value is encoded in data? The goal of a processor is to process real-world information, not bits. Spatio-Value Similarity : there is regularity to where approximately similar values are located in memory. e.g., image processing e.g., signal processing STRIDE = image row size STRIDE = signal period 27
Spatio-Value Similarity Given any data block, how similar is it to the block that is distance X away from it? 28
Spatio-Value Similarity Given any data block, how similar is it to the block that is distance X away from it? similarity distance away debayer 29
Spatio-Value Similarity Given any data block, how similar is it to the block that is distance X away from it? similarity contiguous data are similar in value distance away debayer 30
Spatio-Value Similarity Given any data block, how similar is it to the block that is distance X away from it? similarity contiguous data similar data are stored are similar in value at regular intervals distance away debayer dwt53 31
Spatio-Value Similarity Given any data block, how similar is it to the block that is distance X away from it? similarity contiguous data similar data are stored are similar in value at regular intervals distance away change-detection 2dconv debayer dwt53 histeq jpeg kmeans lucas-kanade 32
The Bunker Cache off-chip memory shared last-level cache private caches processor core 33
The Bunker Cache off-chip memory Bunker Cache private caches processor core 34
The Bunker Cache off-chip memory Treat address X and address X+STRIDE as if they are one and the same Bunker Cache private caches processor core 35
Conventional Cache physical address way 0 way N way 0 way N tag tag data data ● ● ● ● ● ● 36
Conventional Cache physical address way 0 way N way 0 way N tag tag data data ● ● ● ● ● ● index set function 37
Conventional Cache physical address way 0 way N way 0 way N tag tag data data ● ● ● ● ● ● index set function tag hit? = = hit? 38
Conventional Cache physical address way 0 way N way 0 way N tag tag data data ● ● ● ● ● ● index set function tag hit? = = hit? data 39
Recommend
More recommend