Proof-read conclusion; index Wrapping it all up? in TOC
This commit is contained in:
parent
b5b0296102
commit
d3b99be7a1
2 changed files with 12 additions and 9 deletions
|
@ -1,4 +1,5 @@
|
||||||
\chapter*{Wrapping it all up?}\label{chap:wrapping_up}
|
\chapter*{Wrapping it all up?}\label{chap:wrapping_up}
|
||||||
|
\addcontentsline{toc}{chapter}{Wrapping it all up?}
|
||||||
|
|
||||||
In \autoref{chap:palmed}, we introduced \palmed{}, a framework to build a
|
In \autoref{chap:palmed}, we introduced \palmed{}, a framework to build a
|
||||||
backend model. Following up in \autoref{chap:frontend}, we introduced a
|
backend model. Following up in \autoref{chap:frontend}, we introduced a
|
||||||
|
|
|
@ -7,7 +7,8 @@ analyzing the low-level performance of a microkernel:
|
||||||
\item frontend bottlenecks ---~the processor's frontend is unable to
|
\item frontend bottlenecks ---~the processor's frontend is unable to
|
||||||
saturate the backend with instructions (\autoref{chap:palmed});
|
saturate the backend with instructions (\autoref{chap:palmed});
|
||||||
\item backend bottlenecks ---~the backend is saturated with instructions
|
\item backend bottlenecks ---~the backend is saturated with instructions
|
||||||
and processes them as fast as possible (\autoref{chap:frontend});
|
from the frontend and is unable to process them fast enough
|
||||||
|
(\autoref{chap:frontend});
|
||||||
\item dependencies bottlenecks ---~data dependencies between instructions
|
\item dependencies bottlenecks ---~data dependencies between instructions
|
||||||
prevent the backend from being saturated; the latter is stalled
|
prevent the backend from being saturated; the latter is stalled
|
||||||
awaiting previous results (\autoref{chap:staticdeps}).
|
awaiting previous results (\autoref{chap:staticdeps}).
|
||||||
|
@ -49,8 +50,9 @@ targeted microarchitecture.
|
||||||
port-mapping of a processor, serving as a backend model.
|
port-mapping of a processor, serving as a backend model.
|
||||||
\item We manually extracted a frontend model for the Cortex A72 processor.
|
\item We manually extracted a frontend model for the Cortex A72 processor.
|
||||||
We believe that the foundation of our methodology works on most
|
We believe that the foundation of our methodology works on most
|
||||||
processors. The main characteristics of a frontend, apart from their
|
processors. To this end, we provide a parametric model that may serve
|
||||||
instructions' \uops{} decomposition and issue width, must however still
|
as a scaffold for future works willing to build an automatic frontend
|
||||||
|
model. Some parameters of this model must however still
|
||||||
be investigated, and their relative importance evaluated.
|
be investigated, and their relative importance evaluated.
|
||||||
\item We provided with \staticdeps{} a method to to extract data
|
\item We provided with \staticdeps{} a method to to extract data
|
||||||
dependencies between instructions. It is able to detect
|
dependencies between instructions. It is able to detect
|
||||||
|
@ -72,9 +74,9 @@ backend model's accuracy and our dependencies model significantly improves
|
||||||
\uica{}'s results, while being consistent with a dynamic dependencies analysis.
|
\uica{}'s results, while being consistent with a dynamic dependencies analysis.
|
||||||
|
|
||||||
Evaluating the three models combined as a complete analyzer would have been
|
Evaluating the three models combined as a complete analyzer would have been
|
||||||
most meaningful. However, as we argue in \autoref{chap:wrapping_up} abvoe, this
|
most meaningful. However, as we argue in the pre-conclusive chapter
|
||||||
is sadly not pragmatic, as tools do not easily combine without a large amount f
|
\nameref{chap:wrapping_up}, this is sadly not pragmatic, as tools do not easily
|
||||||
engineering.
|
combine without a large amount f engineering.
|
||||||
|
|
||||||
\bigskip{}
|
\bigskip{}
|
||||||
|
|
||||||
|
@ -89,13 +91,13 @@ benchmark set. While we built this benchmark set aiming for representative
|
||||||
data, there is no clear evidence that these dependencies are so strongly
|
data, there is no clear evidence that these dependencies are so strongly
|
||||||
present in the codes analyzed in real usecases. We however believe that such
|
present in the codes analyzed in real usecases. We however believe that such
|
||||||
cases regularly occur, and we also saw that the performance of code analyzers
|
cases regularly occur, and we also saw that the performance of code analyzers
|
||||||
drop sharply in their presence.
|
drops sharply in their presence.
|
||||||
|
|
||||||
\smallskip{}
|
\smallskip{}
|
||||||
|
|
||||||
We also found the bottleneck prediction offered by some code analyzers still
|
We also found the bottleneck prediction offered by some code analyzers still
|
||||||
uncertain. In our experiments, the tools disagreed more often than not on the
|
very uncertain. In our experiments, the tools disagreed more often than not on
|
||||||
presence or absence of a bottleneck, with no outstanding tool; we are thus
|
the presence or absence of a bottleneck, with no outstanding tool; we are thus
|
||||||
unable to conclude on the relative performance of tools on this aspect. On the
|
unable to conclude on the relative performance of tools on this aspect. On the
|
||||||
other hand, sensitivity analysis, as implemented \eg{} by \gus{}, seems a
|
other hand, sensitivity analysis, as implemented \eg{} by \gus{}, seems a
|
||||||
theoretically sound way to evaluate the presence or absence of a bottleneck in
|
theoretically sound way to evaluate the presence or absence of a bottleneck in
|
||||||
|
|
Loading…
Reference in a new issue