Start SOTA

This commit is contained in:
Théophile Bastian 2024-02-21 18:38:32 +01:00
parent 5f8ff8599b
commit bd7b3b8ad6

View file

@ -1 +1,25 @@
\section{State of the art}\label{sec:sota} \section{State of the art}\label{sec:sota}
Performance models for CPUs have been previously studied, and applied to
static code performance analysis.
\medskip
Since 1996, Agner Fog has been maintaining tables of values useful for
optimisation purposes for x86 instructions~\cite{AgnerFog}. These tables, still
maintained and updated today, are often considered very accurate. The main
issue, however, is that those tables are generated through the use of
hand-picked instructions and benchmarks, depending on specific hardware
counters and features specific to some CPU manufacturers. As such, while these
tables are very helpful on the supported CPUs for x86, the method does not
scale to the abundance of CPUs on which such tables may be useful ---~for
instance, ARM processors, embedded platforms, etc.
\medskip
Following the work of Agner Fog, Andreas Abel and Jan Reineke have designed the
\uopsinfo{} framework~\cite{uopsinfo}, striving to automate the previous
methodology. Their work, providing data tables for the vast majority of
instructions on many recent Intel microarchitectures, has been recently
enhanced to also support AMD architectures. It is, however, still limited to
% TODO HW counters, relevant microarchs