phd-thesis/manuscrit/30_palmed/40-1_results_fig.tex

184 lines
8 KiB
TeX
Raw Normal View History

2023-09-18 15:23:36 +02:00
%%% Macros specific to this figure
\newcommand{\na}{{\color{gray}N/A}}
\newcommand{\centerheader}[1]{\multicolumn{1}{c}{#1}}
% Table-specific
\newcommand{\figfiverow}[2]{
\begin{minipage}[c]{0.03\linewidth}
\figrowlegend{#1}
\end{minipage}\figspaceleft{}
\begin{minipage}[c]{0.13\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-palmed.png}
\end{minipage}\figspacemid{}
\begin{minipage}[c]{0.13\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-UOPS.png}
\end{minipage}\figspacemid{}
\begin{minipage}[c]{0.13\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-PMEvo.png}
\end{minipage}\figspacemid{}
\begin{minipage}[c]{0.13\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-IACA.png}
\end{minipage}\figspacemid{}
\begin{minipage}[c]{0.13\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-LLVM_MCA.png}
\end{minipage}\figspaceright{}
\begin{minipage}[c]{0.035\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-legend.png}
\end{minipage}
}
\newcommand{\figthreerow}[2]{
\begin{minipage}[c]{0.03\linewidth}
\figrowlegend{#1}
\end{minipage}\figspaceleft{}
\begin{minipage}[c]{0.15\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-palmed.png}
\end{minipage}\figspacezenmid{}
\begin{minipage}[c]{0.15\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-PMEvo.png}
\end{minipage}\figspacezenmid{}
\begin{minipage}[c]{0.15\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-LLVM_MCA.png}
\end{minipage}\figspaceright{}
\begin{minipage}[c]{0.035\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-legend.png}
\end{minipage}
}
\newcommand{\figthreerowlegend}[2]{
\begin{minipage}[c]{0.03\linewidth}
\figrowlegend{#1}
\end{minipage}\figspaceleft{}
\begin{minipage}[c]{0.15\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-palmed.png}
\end{minipage}\figspacezenmid{}
\begin{minipage}[c]{0.12\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmap_legend.svg}
\end{minipage}\figspacezenmid{}
\begin{minipage}[c]{0.15\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-PMEvo.png}
\end{minipage}\figspacezenmid{}
\begin{minipage}[c]{0.12\linewidth}
~
\end{minipage}\figspacezenmid{}
\begin{minipage}[c]{0.15\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-LLVM_MCA.png}
\end{minipage}\figspaceright{}
\begin{minipage}[c]{0.035\linewidth}
\includegraphics[width=\linewidth]{ipc_heatmaps/#2-legend.png}
\end{minipage}
}
\newenvironment{figleftlabel}[1]{
\begin{minipage}[c]{0.02\linewidth}
\figrowlegend{#1}
\end{minipage}\figspaceleft{}
\begin{minipage}[c]{0.94\linewidth}}
{\end{minipage}}
\newcommand{\figspaceleft}{\hspace{1em}}
\newcommand{\figspaceright}{\hspace{1em}}
\newcommand{\figspacemid}{\hfill}
\newcommand{\figspacezenmid}{\hfill}
\newcommand{\figcollegend}[1]{\begin{center}\textbf{\normalsize #1}\end{center}}
\newcommand{\figrowlegend}[1]{\rotatebox{90}{\small\textbf{#1}}}
\newcommand{\figspacerow}
\newcommand{\tabcoverage}{\centerheader{Cov.}}
\newcommand{\taberror}{\centerheader{Err.}}
\newcommand{\tabkendall}{\centerheader{$\tau_K$}}
\newcommand{\tabcoverageunit}{\centerheader{(\%)}}
\newcommand{\taberrorunit}{\centerheader{(\%)}}
\newcommand{\tabkendallunit}{\centerheader{$(1)$}}
\definecolor{tabcovbg}{RGB}{235,255,255}
\definecolor{taberrbg}{RGB}{255,240,255}
\definecolor{tabktaubg}{RGB}{239,250,235}
\newcolumntype{C}{>{\columncolor{tabcovbg}}r}
\newcolumntype{E}{>{\columncolor{taberrbg}}r}
\newcolumntype{K}{>{\columncolor{tabktaubg}}r}
%%% Taken directly from Palmed paper
\begin{figure}
\begin{subfigure}[c]{\linewidth}
\centering
\begin{figleftlabel}{}
\begin{minipage}[c]{0.03\linewidth}~\end{minipage}\figspaceleft{}
\begin{minipage}[c]{0.13\linewidth}
\figcollegend{\palmed{}}
\end{minipage}\figspacemid{}
\begin{minipage}[c]{0.13\linewidth}
\figcollegend{uops.info}
\end{minipage}\figspacemid{}
\begin{minipage}[c]{0.13\linewidth}
\figcollegend{PMEvo}
\end{minipage}\figspacemid{}
\begin{minipage}[c]{0.13\linewidth}
\figcollegend{IACA}
\end{minipage}\figspacemid{}
\begin{minipage}[c]{0.13\linewidth}
\figcollegend{llvm-mca}
\end{minipage}\figspaceright{}
\begin{minipage}[c]{0.035\linewidth}~\end{minipage}
\end{figleftlabel}
\begin{figleftlabel}{SKL-SP}
\figfiverow{SPEC 17}{spec-W-skx}
\figspacerow
\figfiverow{Polybench}{polybench-W-skx}
\end{figleftlabel}
\figspacerow{}
\begin{figleftlabel}{ZEN1}
\figthreerow{SPEC 17}{spec-W-zen}
\figspacerow
\figthreerowlegend{Polybench}{polybench-W-zen}
\end{figleftlabel}
\caption{IPC prediction profile heatmaps~--~predictions closer to the
red line are more accurate. Predicted IPC ratio (Y) against native
IPC (X)}
\label{fig:realcpu_heatmap}
\end{subfigure}
\vspace{1em}
\begin{subtable}[c]{\linewidth}
{
\centering
\caption{Translation block coverage (Cov.), root-mean-square error on
IPC predictions (Err.) and Kendall's tau correlation coefficient
($\tau_K$) compared to native execution}
\footnotesize
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Table generated automatically using palmed's `tools/gen_results_table.py`
% on 2021-08-27 17:22:33.207721
% by tobast@patate
\label{tab:realcpu_results}\begin{tabular}{c c | C E K | C E K | C E K | C E K | C E K}
\toprule
& & \multicolumn{3}{c}{\palmed} & \multicolumn{3}{c}{\uopsinfo} & \multicolumn{3}{c}{\pmevo} & \multicolumn{3}{c}{\iaca} & \multicolumn{3}{c}{\llvmmca}\\
& & \tabcoverage & \taberror & \tabkendall & \tabcoverage & \taberror & \tabkendall & \tabcoverage & \taberror & \tabkendall & \tabcoverage & \taberror & \tabkendall & \tabcoverage & \taberror & \tabkendall\\
& Unit & \tabcoverageunit & \taberrorunit & \tabkendallunit & \tabcoverageunit & \taberrorunit & \tabkendallunit & \tabcoverageunit & \taberrorunit & \tabkendallunit & \tabcoverageunit & \taberrorunit & \tabkendallunit & \tabcoverageunit & \taberrorunit & \tabkendallunit\\
\midrule
% Generated from /home/tobast/src/palmed/results/data/scw-skx.2021-08-26.benchs.spec17
\multirow{2}{*}{\textbf{SKL-SP}} & \textbf{SPEC2017} & \na & 7.8 & 0.90 & 99.9 & 40.3 & 0.71 & 71.3 & 28.1 & 0.47 & 100.0 & 8.7 & 0.80 & 96.8 & 20.1 & 0.73\\
% Generated from /home/tobast/src/palmed/results/data/scw-skx.2021-08-26.benchs.polybench
& \textbf{Polybench} & \na & 24.4 & 0.78 & 100.0 & 68.1 & 0.29 & 66.8 & 46.7 & 0.14 & 100.0 & 15.1 & 0.67 & 99.5 & 15.3 & 0.65\\
% Generated from /home/tobast/src/palmed/results/data/scw-zen.2021-08-24.benchs.spec17
\multirow{2}{*}{\textbf{ZEN1}} & \textbf{SPEC2017} & \na & 29.9 & 0.68 & \na & \na & \na & 71.3 & 36.5 & 0.43 & \na & \na & \na & 96.8 & 33.4 & 0.75\\
% Generated from /home/tobast/src/palmed/results/data/scw-zen.2021-08-24.benchs.polybench
& \textbf{Polybench} & \na & 32.6 & 0.46 & \na & \na & \na & 66.8 & 38.5 & 0.11 & \na & \na & \na & 99.5 & 28.6 & 0.40\\
\bottomrule
\end{tabular}
% End automatically generated table
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
}
\end{subtable}
\caption{Accuracy of IPC predictions compared to native execution of
\palmed{} versus uops.info, PMEvo, IACA and llvm-mca on SPEC CPU2017 and
PolyBench/C 4.2}\label{fig:palmed_results}
\end{figure}