Static Reuse Profile Estimation for Array Applications

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Razzak, Abdur, Barai, Atanu, Santhi, Nandakishore, Badawy, Abdel-Hameed A.
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866910707168051200
author Razzak, Abdur
Barai, Atanu
Santhi, Nandakishore
Badawy, Abdel-Hameed A.
author_facet Razzak, Abdur
Barai, Atanu
Santhi, Nandakishore
Badawy, Abdel-Hameed A.
contents Reuse distance analysis is a widely recognized method for application characterization that illustrates cache locality. Although there are various techniques to calculate the reuse profile from dynamic memory traces, it is both time and space-consuming due to the requirement to collect dynamic memory traces at runtime. In contrast, static analysis reuse profile estimation is a promisingly faster approach since it is calculated at compile time without running the program or collecting memory traces. This work presents a static analysis technique to estimate the reuse profile of loop-based programs. For an input program, we generate a basic block-level control flow graph and the execution count by analyzing the LLVM IR of the program. We present the memory accesses of the application kernel in a compact bracketed format and use a recursive algorithm to predict the reuse distance histogram. We deploy a separate predictor that unrolls the loop(s) for smaller bounds and generates a temporary reuse distance profile for those small cases. Using these smaller profiles, the reuse profile is extrapolated for the actual loop bound(s). We use this reuse profile to predict the cache hit rate. Results show that our model can predict cache hit rates with an average accuracy of 95% relative to the dynamic reuse profile methods.
format Preprint
id arxiv_https___arxiv_org_abs_2411_13854
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Static Reuse Profile Estimation for Array Applications
Razzak, Abdur
Barai, Atanu
Santhi, Nandakishore
Badawy, Abdel-Hameed A.
Performance
Reuse distance analysis is a widely recognized method for application characterization that illustrates cache locality. Although there are various techniques to calculate the reuse profile from dynamic memory traces, it is both time and space-consuming due to the requirement to collect dynamic memory traces at runtime. In contrast, static analysis reuse profile estimation is a promisingly faster approach since it is calculated at compile time without running the program or collecting memory traces. This work presents a static analysis technique to estimate the reuse profile of loop-based programs. For an input program, we generate a basic block-level control flow graph and the execution count by analyzing the LLVM IR of the program. We present the memory accesses of the application kernel in a compact bracketed format and use a recursive algorithm to predict the reuse distance histogram. We deploy a separate predictor that unrolls the loop(s) for smaller bounds and generates a temporary reuse distance profile for those small cases. Using these smaller profiles, the reuse profile is extrapolated for the actual loop bound(s). We use this reuse profile to predict the cache hit rate. Results show that our model can predict cache hit rates with an average accuracy of 95% relative to the dynamic reuse profile methods.
title Static Reuse Profile Estimation for Array Applications
topic Performance
url https://arxiv.org/abs/2411.13854