Compiler-directed cache polymorphism

J. S. Hu, Mahmut Kandemir, Vijaykrishnan Narayanan, Mary Jane Irwin, H. Saputra, W. Zhang

Research output: Chapter in Book/Report/Conference proceedingConference contribution

7 Citations (Scopus)

Abstract

Classical compiler optimizations assume a fixed cache architecture and modify the program to take best advantage of it. In some cases, this may not be the best strategy because each loop nest might work best with a different cache configuration and transforming a nest for a given fixed cache configuration may not be possible due to data dependences. Working with a fixed cache configuration can also increase energy consumption in loops where the best required configuration is smaller than the default (fixed) one. In this paper, we take an alternate approach and modify the cache configuration for each nest depending on the access pattern exhibited by the nest. We call this technique compiler-directed cache polymorphism (CDCP). More specifically, in this paper, we make the following contributions. First, we present an approach for analyzing data reuse properties of loop nests. Second, we give algorithms to simulate the footprints of array references in their reuse space. Third, based on our reuse analysis, we present an optimization algorithm to compute the cache configurations for each nest. Our experimental results show that CDCP is very effective in finding the near-optimal data cache configurations for different nests in array-intensive applications.

Original languageEnglish (US)
Title of host publicationJoint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems
EditorsP. Marwedel, S. Devadas, P. Marwedel, S. Devadas
Pages165-174
Number of pages10
StatePublished - Dec 1 2002
EventJoint Conference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems - Berlin, Germany
Duration: Jun 19 2002Jun 21 2002

Publication series

NameJoint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems

Other

OtherJoint Conference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems
CountryGermany
CityBerlin
Period6/19/026/21/02

Fingerprint

Polymorphism
Energy utilization

All Science Journal Classification (ASJC) codes

  • Engineering(all)

Cite this

Hu, J. S., Kandemir, M., Narayanan, V., Irwin, M. J., Saputra, H., & Zhang, W. (2002). Compiler-directed cache polymorphism. In P. Marwedel, S. Devadas, P. Marwedel, & S. Devadas (Eds.), Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems (pp. 165-174). (Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems).
Hu, J. S. ; Kandemir, Mahmut ; Narayanan, Vijaykrishnan ; Irwin, Mary Jane ; Saputra, H. ; Zhang, W. / Compiler-directed cache polymorphism. Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems. editor / P. Marwedel ; S. Devadas ; P. Marwedel ; S. Devadas. 2002. pp. 165-174 (Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems).
@inproceedings{c16016aa47384a4da6a5554238e9d3b0,
title = "Compiler-directed cache polymorphism",
abstract = "Classical compiler optimizations assume a fixed cache architecture and modify the program to take best advantage of it. In some cases, this may not be the best strategy because each loop nest might work best with a different cache configuration and transforming a nest for a given fixed cache configuration may not be possible due to data dependences. Working with a fixed cache configuration can also increase energy consumption in loops where the best required configuration is smaller than the default (fixed) one. In this paper, we take an alternate approach and modify the cache configuration for each nest depending on the access pattern exhibited by the nest. We call this technique compiler-directed cache polymorphism (CDCP). More specifically, in this paper, we make the following contributions. First, we present an approach for analyzing data reuse properties of loop nests. Second, we give algorithms to simulate the footprints of array references in their reuse space. Third, based on our reuse analysis, we present an optimization algorithm to compute the cache configurations for each nest. Our experimental results show that CDCP is very effective in finding the near-optimal data cache configurations for different nests in array-intensive applications.",
author = "Hu, {J. S.} and Mahmut Kandemir and Vijaykrishnan Narayanan and Irwin, {Mary Jane} and H. Saputra and W. Zhang",
year = "2002",
month = "12",
day = "1",
language = "English (US)",
isbn = "1581135270",
series = "Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems",
pages = "165--174",
editor = "P. Marwedel and S. Devadas and P. Marwedel and S. Devadas",
booktitle = "Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems",

}

Hu, JS, Kandemir, M, Narayanan, V, Irwin, MJ, Saputra, H & Zhang, W 2002, Compiler-directed cache polymorphism. in P Marwedel, S Devadas, P Marwedel & S Devadas (eds), Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems. Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems, pp. 165-174, Joint Conference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems, Berlin, Germany, 6/19/02.

Compiler-directed cache polymorphism. / Hu, J. S.; Kandemir, Mahmut; Narayanan, Vijaykrishnan; Irwin, Mary Jane; Saputra, H.; Zhang, W.

Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems. ed. / P. Marwedel; S. Devadas; P. Marwedel; S. Devadas. 2002. p. 165-174 (Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

TY - GEN

T1 - Compiler-directed cache polymorphism

AU - Hu, J. S.

AU - Kandemir, Mahmut

AU - Narayanan, Vijaykrishnan

AU - Irwin, Mary Jane

AU - Saputra, H.

AU - Zhang, W.

PY - 2002/12/1

Y1 - 2002/12/1

N2 - Classical compiler optimizations assume a fixed cache architecture and modify the program to take best advantage of it. In some cases, this may not be the best strategy because each loop nest might work best with a different cache configuration and transforming a nest for a given fixed cache configuration may not be possible due to data dependences. Working with a fixed cache configuration can also increase energy consumption in loops where the best required configuration is smaller than the default (fixed) one. In this paper, we take an alternate approach and modify the cache configuration for each nest depending on the access pattern exhibited by the nest. We call this technique compiler-directed cache polymorphism (CDCP). More specifically, in this paper, we make the following contributions. First, we present an approach for analyzing data reuse properties of loop nests. Second, we give algorithms to simulate the footprints of array references in their reuse space. Third, based on our reuse analysis, we present an optimization algorithm to compute the cache configurations for each nest. Our experimental results show that CDCP is very effective in finding the near-optimal data cache configurations for different nests in array-intensive applications.

AB - Classical compiler optimizations assume a fixed cache architecture and modify the program to take best advantage of it. In some cases, this may not be the best strategy because each loop nest might work best with a different cache configuration and transforming a nest for a given fixed cache configuration may not be possible due to data dependences. Working with a fixed cache configuration can also increase energy consumption in loops where the best required configuration is smaller than the default (fixed) one. In this paper, we take an alternate approach and modify the cache configuration for each nest depending on the access pattern exhibited by the nest. We call this technique compiler-directed cache polymorphism (CDCP). More specifically, in this paper, we make the following contributions. First, we present an approach for analyzing data reuse properties of loop nests. Second, we give algorithms to simulate the footprints of array references in their reuse space. Third, based on our reuse analysis, we present an optimization algorithm to compute the cache configurations for each nest. Our experimental results show that CDCP is very effective in finding the near-optimal data cache configurations for different nests in array-intensive applications.

UR - http://www.scopus.com/inward/record.url?scp=0036979988&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0036979988&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:0036979988

SN - 1581135270

T3 - Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems

SP - 165

EP - 174

BT - Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems

A2 - Marwedel, P.

A2 - Devadas, S.

A2 - Marwedel, P.

A2 - Devadas, S.

ER -

Hu JS, Kandemir M, Narayanan V, Irwin MJ, Saputra H, Zhang W. Compiler-directed cache polymorphism. In Marwedel P, Devadas S, Marwedel P, Devadas S, editors, Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems. 2002. p. 165-174. (Joint COnference on Languages, Compilers and Tools for Embedded Systems and Software and Compilers for Embedded Systems).