Performance driven data cache prefetching in a dynamic software optimization system

Abstract : Software or hardware data cache prefetching is an efficient way to hide cache miss latency. However effectiveness of the issued prefetches have to be monitored in order to maximize their positive impact while minimizing their negative impact on performance. In previous proposed dynamic frameworks, the monitoring scheme is either achieved using processor performance counters or using specific hardware. In this work, we propose a prefetching strategy which does not use any specific hardware component or processor performance counter. Our dynamic framework wants to be portable on any modern processor architecture providing at least a prefetch instruction. Opportunity and effectiveness of prefetching loads is simply guided by the time spent to effectively obtain the data. Every load of a program is monitored periodically and can be either associated to a dynamically inserted prefetch instruction or not. It can be associated to a prefetch instruction at some disjoint periods of the whole program run as soon as it is efficient. Our framework has been implemented for Itanium-2 machines. It involves several dynamic instrumentations of the binary code whose overhead is limited to only 4% on average. On a large set of benchmarks, our system is able to speed up some programs by 2%--143%.
Document type :
Conference papers
Complete list of metadatas

https://hal.inria.fr/inria-00504614
Contributor : Philippe Clauss <>
Submitted on : Tuesday, July 20, 2010 - 4:55:31 PM
Last modification on : Thursday, January 11, 2018 - 6:22:09 AM

Links full text

Identifiers

Collections

Citation

Jean Christophe Beyler, Philippe Clauss. Performance driven data cache prefetching in a dynamic software optimization system. 21st annual international conference on Supercomputing, Jun 2007, Seattle, United States. pp.202 - 209, ⟨10.1145/1274971.1275000⟩. ⟨inria-00504614⟩

Share

Metrics

Record views

50