Performance Debugging through Microarchitectural Sensitivity and Causality Analysis

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Dutilleul, Alban, Pompougnac, Hugo, Derumigny, Nicolas, Rodriguez, Gabriel, Trophime, Valentin, Guillon, Christophe, Rastello, Fabrice
Natura: Preprint
Pubblicazione: 2024
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866912160175620096
author Dutilleul, Alban
Pompougnac, Hugo
Derumigny, Nicolas
Rodriguez, Gabriel
Trophime, Valentin
Guillon, Christophe
Rastello, Fabrice
author_facet Dutilleul, Alban
Pompougnac, Hugo
Derumigny, Nicolas
Rodriguez, Gabriel
Trophime, Valentin
Guillon, Christophe
Rastello, Fabrice
contents Modern Out-of-Order (OoO) CPUs are complex systems with many components interleaved in non-trivial ways. Pinpointing performance bottlenecks and understanding the underlying causes of program performance issues are critical tasks to fully exploit the performance offered by hardware resources. Current performance debugging approaches rely either on measuring resource utilization, in order to estimate which parts of a CPU induce performance limitations, or on code-based analysis deriving bottleneck information from capacity/throughput models. These approaches are limited by instrumental and methodological precision, present portability constraints across different microarchitectures, and often offer factual information about resource constraints, but not causal hints about how to solve them. This paper presents a novel performance debugging and analysis tool that implements a resource-centric CPU model driven by dynamic binary instrumentation that is capable of detecting complex bottlenecks caused by an interplay of hardware and software factors. Bottlenecks are detected through sensitivity-based analysis, a sort of model parameterization that uses differential analysis to reveal constrained resources. It also implements a new technique we developed that we call causality analysis, that propagates constraints to pinpoint how each instruction contribute to the overall execution time. To evaluate our analysis tool, we considered the set of high-performance computing kernels obtained by applying a wide range of transformations from the Polybench benchmark suite and measured the precision on a few Intel CPU and Arm micro-architectures. We also took one of the benchmarks (correlation) as an illustrative example to illustrate how our tool's bottleneck analysis can be used to optimize a code.
format Preprint
id arxiv_https___arxiv_org_abs_2412_13207
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Performance Debugging through Microarchitectural Sensitivity and Causality Analysis
Dutilleul, Alban
Pompougnac, Hugo
Derumigny, Nicolas
Rodriguez, Gabriel
Trophime, Valentin
Guillon, Christophe
Rastello, Fabrice
Distributed, Parallel, and Cluster Computing
Performance
Modern Out-of-Order (OoO) CPUs are complex systems with many components interleaved in non-trivial ways. Pinpointing performance bottlenecks and understanding the underlying causes of program performance issues are critical tasks to fully exploit the performance offered by hardware resources. Current performance debugging approaches rely either on measuring resource utilization, in order to estimate which parts of a CPU induce performance limitations, or on code-based analysis deriving bottleneck information from capacity/throughput models. These approaches are limited by instrumental and methodological precision, present portability constraints across different microarchitectures, and often offer factual information about resource constraints, but not causal hints about how to solve them. This paper presents a novel performance debugging and analysis tool that implements a resource-centric CPU model driven by dynamic binary instrumentation that is capable of detecting complex bottlenecks caused by an interplay of hardware and software factors. Bottlenecks are detected through sensitivity-based analysis, a sort of model parameterization that uses differential analysis to reveal constrained resources. It also implements a new technique we developed that we call causality analysis, that propagates constraints to pinpoint how each instruction contribute to the overall execution time. To evaluate our analysis tool, we considered the set of high-performance computing kernels obtained by applying a wide range of transformations from the Polybench benchmark suite and measured the precision on a few Intel CPU and Arm micro-architectures. We also took one of the benchmarks (correlation) as an illustrative example to illustrate how our tool's bottleneck analysis can be used to optimize a code.
title Performance Debugging through Microarchitectural Sensitivity and Causality Analysis
topic Distributed, Parallel, and Cluster Computing
Performance
url https://arxiv.org/abs/2412.13207