From a94ead529aebd944d278e06c4dc7856775394c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Bastian?= Date: Sun, 24 Nov 2024 18:56:01 +0100 Subject: [PATCH] Frontend: progress --- slides/30_frontend/main.tex | 64 ++- .../30_frontend/parametric_model-frontend.svg | 528 ++++++++++++++++++ .../30_frontend/parametric_model-insn.svg | 370 ++++++++++++ slides/include/macros.tex | 3 + slides/include/packages.tex | 1 + 5 files changed, 965 insertions(+), 1 deletion(-) create mode 100644 slides/assets/imgs/30_frontend/parametric_model-frontend.svg create mode 100644 slides/assets/imgs/30_frontend/parametric_model-insn.svg diff --git a/slides/30_frontend/main.tex b/slides/30_frontend/main.tex index d665d89..e2d7813 100644 --- a/slides/30_frontend/main.tex +++ b/slides/30_frontend/main.tex @@ -14,6 +14,7 @@ \begin{frame} \centering \includegraphics[width=0.9\textwidth]{A72_pipeline_diagram.svg} + \todo{Dispatch queues} \end{frame} \begin{frame}{Manual model} @@ -25,6 +26,29 @@ \end{itemize} \end{frame} +\begin{frame}{Proposed parametric model} + \vfill + \centering + \begin{minipage}[t][0.7\textheight][c]{0.53\textwidth} + \centering + Globally, + \vfill + \includegraphics[width=\textwidth]{parametric_model-frontend.svg} + \vfill~ % I hate LaTeX + \end{minipage} + \hfill\vrule\hfill + \begin{minipage}[t][0.7\textheight][c]{0.43\textwidth} + \centering + For each instruction, + \vfill + \includegraphics[width=\textwidth]{parametric_model-insn.svg} + \vfill~ + \end{minipage} + + \vfill + In {\color{red}\textbf{red}}, parameters of the model. +\end{frame} + \begin{frame}{Counting \uops{}} For an instruction $i$, denote \alert{$\mucount{i}$} its number of \uops{}. \begin{itemize} @@ -47,5 +71,43 @@ \]} \end{itemize} - +\end{frame} + +\begin{frame}{Evaluation: comparison to bare \palmed} + \begin{itemize} + \item Add a frontend to \palmed{}: + \[ + \cyc{\kerK}_{\text{pred.}} = \max(\texttt{palmed}(\kerK), \texttt{frontend}(\kerK)) + \] + \item Reuse evaluation suite of \palmed{}: SPEC CPU 2017 + Polybench + \item Compare to \llvmmca{} + \end{itemize} +\end{frame} + +\begin{frame}{Results} + \centering + \begin{tabular}{l l c r r r r r} + \toprule + & & & \multirow{2}{*}{\llvmmca{}} & \multicolumn{3}{c}{\palmed{} with + frontend\ldots} \\ + & & & & none & linear & disp.\ queues \\ + \midrule{} + \multirow{3}{*}{SPEC} & Cov. & (\%) & 100.00 & \na{} & 97.21 & 97.16 \\ + & Err. & (\%) & 9.0 & 20.1 & 6.2 & 4.6 \\ + & $\ktau$ & (1)& 0.83 & 0.88 & 0.91 & 0.93 \\ + \midrule + \multirow{3}{*}{Polybench} & Cov. & (\%) & 100.00& \na{} & 99.33 & 99.33 \\ + & Err. & (\%) & 13.9 & 12.6 & 8.1 & 8.0 \\ + & $\ktau$ & (1)& 0.47 & 0.82 & 0.88 & 0.90 \\ + \bottomrule + \end{tabular} +\end{frame} + +\begin{frame}{Limitations} + \begin{itemize} + \item Parts of this model were entirely manually solved (\eg{} \# of + dispatch queues) + \item Evaluation based on \palmed{} suite: biased + \item Must be tested on other architectures! + \end{itemize} \end{frame} diff --git a/slides/assets/imgs/30_frontend/parametric_model-frontend.svg b/slides/assets/imgs/30_frontend/parametric_model-frontend.svg new file mode 100644 index 0000000..2521858 --- /dev/null +++ b/slides/assets/imgs/30_frontend/parametric_model-frontend.svg @@ -0,0 +1,528 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Decoders + + + DISPATCHQUEUES + Number ofqueues + + + + 1 + + + + N + + + + 2 + + + + + + + + + + + + + + + + μops dispatchedper cycle + + + + + + + + + + + + + μops/cycle + + + + μops/cycle + + + μops/cycle + + + + diff --git a/slides/assets/imgs/30_frontend/parametric_model-insn.svg b/slides/assets/imgs/30_frontend/parametric_model-insn.svg new file mode 100644 index 0000000..7ba956b --- /dev/null +++ b/slides/assets/imgs/30_frontend/parametric_model-insn.svg @@ -0,0 +1,370 @@ + + + + + + + + + + + + + + + + Instructioni + + + + + MICRO-OPS + + + + + + + + + + } + } + } + #μops fordispatchqueue 1 + + + + Q + 2 + + + + + + Q + N + + + + + + } + + i + Totalnumberof μopsμ + + + + + + + diff --git a/slides/include/macros.tex b/slides/include/macros.tex index f0076ef..22441c5 100644 --- a/slides/include/macros.tex +++ b/slides/include/macros.tex @@ -75,6 +75,9 @@ \newcommand{\cov}{\operatorname{cov}} +\newcommand{\ktau}{\tau_K} +\newcommand{\na}{{\color{gray}N/A}} + % Hyperlinks \newcommand{\pymodule}[1]{\href{https://docs.python.org/3/library/#1.html}{\lstpython{#1}}} diff --git a/slides/include/packages.tex b/slides/include/packages.tex index 2a2be1c..4351975 100644 --- a/slides/include/packages.tex +++ b/slides/include/packages.tex @@ -10,6 +10,7 @@ \usepackage{array} \usepackage{listings} \usepackage{colortbl} +\usepackage{multirow} \usepackage{hyperref} \usepackage{enumerate} \usepackage{import}