phd-thesis/manuscrit/00_opening/10_abstract.tex

71 lines
3.9 KiB
TeX
Raw Normal View History

2023-09-14 17:05:57 +02:00
\selectlanguage{french}
2025-01-01 19:30:20 +01:00
\vspace*{\fill}
2023-09-14 17:05:57 +02:00
\begin{abstract}
2024-08-15 18:53:08 +02:00
Qu'il s'agisse de calculs massifs distribués sur plusieurs baies, de
2024-09-01 16:56:48 +02:00
calculs en environnement contraint ---~comme de l'embarqué ou de
l'\emph{edge computing}~--- ou encore de tentatives de réduire l'empreinte
2024-03-28 22:18:54 +01:00
écologique d'un programme fréquemment utilisé, de nombreux cas d'usage
justifient l'optimisation poussée d'un programme. Celle-ci s'arrête souvent
à l'optimisation de haut niveau (algorithmique, parallélisme, \ldots), mais
2024-03-28 16:44:13 +01:00
il est possible de la pousser jusqu'à une optimisation bas-niveau,
s'intéressant à l'assembleur généré en regard de la microarchitecture du
processeur précis utilisé.
2024-03-28 17:36:35 +01:00
Une telle optimisation demande une compréhension fine des aspects à la fois
2024-03-28 22:18:54 +01:00
logiciels et matériels en jeu, et n'est bien souvent accessible qu'aux
experts du domaine. Les \emph{code analyzers} (analyseurs de code),
cependant, permettent d'abaisser le niveau d'expertise nécessaire pour
accomplir de telles optimisations, en automatisant une partie du travail de
2024-03-28 17:36:35 +01:00
compréhension des problèmes de performance rencontrés. Ces mêmes outils
permettent également aux experts d'être plus efficaces dans leur travail.
2024-03-28 16:44:13 +01:00
2024-03-28 22:18:54 +01:00
Dans ce manuscrit, nous étudierons les principaux facteurs limitants de la
performance d'un processeur, sur lesquels la précision des outils de l'état
de l'art est bien souvent inégale. Nous apportons, sur chacun de ces
facteurs limitants, une contribution nouvelle~: automatisation de
l'obtention d'un modèle du \emph{backend}, étude manuelle du
\emph{frontend} en vue de l'automatisation de son modèle, et extraction
automatique des dépendances \emph{à travers la mémoire} d'un noyau de
calcul. Nous apportons également une étude systématique et automatisée des
performances de prédiction de différents \emph{code analyzers} de l'état de
l'art.
2025-01-01 19:30:20 +01:00
\end{abstract}
\vspace*{\fill}
\clearpage
2023-09-14 17:05:57 +02:00
\selectlanguage{english}
2025-01-01 19:30:20 +01:00
\vspace*{\fill}
2023-09-14 17:05:57 +02:00
\begin{abstract}
2024-03-28 17:36:35 +01:00
Be it massively distributed computation over multiple server racks,
2024-09-01 16:56:48 +02:00
constrained computation ---~such as in embedded environments or in
\emph{edge computing}~---, or still an attempt to reduce the ecological
2024-03-28 22:18:54 +01:00
footprint of a frequently-run program, many use-cases make it relevant to
deeply optimize a program. This optimisation is often limited to high-level
2024-09-01 16:56:48 +02:00
optimisation ---~choice of algorithms, parallel computing, \ldots{} Yet, it
2024-03-28 22:18:54 +01:00
is possible to carry it further to low-level optimisations, by inspecting
the generated assembly with respect to the microarchitecture of the
specific microprocessor used to fine-tune it.
2024-03-28 17:36:35 +01:00
2024-08-15 18:53:08 +02:00
Such an optimisation level requires a very detailed understanding of both
2024-03-28 17:36:35 +01:00
the software and hardware aspects implied, and is most often the realm of
experts. \emph{Code analyzers}, however, are tools that help lowering the
expertise threshold required to perform such optimisations by automating
away a portion of the work required to understand the source of the
encountered performance problems. The same tools are also useful to
2024-03-28 22:18:54 +01:00
experts, as they help them be more efficient in their work.
2024-03-28 17:36:35 +01:00
In this manuscript, we study the main performance bottlenecks of a
processor, on which the state of the art does not perform consistently. For
each of these bottlenecks, we contribute to the state of the art. We work
on automating the obtention of a model of the processor's \emph{backend};
we manually study the processor's \emph{frontend}, hoping to set a
milestone towards the automation of the obtention of such models; we
provide a tool to automatically extract a computation kernel's
\emph{memory-carried} dependencies. We also provide a systematic, automated
and fully-tooled study of the prediction accuracy of various
state-of-the-art code analyzers.
2023-09-14 17:05:57 +02:00
\end{abstract}
2025-01-01 19:30:20 +01:00
\vspace*{\fill}
\clearpage{}