Depsim: add chapter conclusion
This commit is contained in:
parent
611c172f90
commit
9e78230e91
2 changed files with 30 additions and 0 deletions
29
manuscrit/60_staticdeps/99_conclusion.tex
Normal file
29
manuscrit/60_staticdeps/99_conclusion.tex
Normal file
|
@ -0,0 +1,29 @@
|
|||
\section*{Conclusion}
|
||||
|
||||
In this chapter, we studied data dependencies within assembly kernels; and more
|
||||
specifically, data dependencies occurring through memory accesses, which we
|
||||
call \emph{memory-carried dependencies}. \cesasme{}'s analysis showed in
|
||||
\autoref{chap:CesASMe} that this kind of dependency was responsible for a
|
||||
significant portion of state-of-the-art analyzers' prediction errors.
|
||||
|
||||
We introduce \staticdeps{}, a heuristic approach based on random values as
|
||||
representatives of abstract values. This approach is able to find data
|
||||
dependencies, including memory-carried ones, loop-carried or not, leveraging
|
||||
semantics of the assembly code provided by \valgrind{}'s \vex. It is, however,
|
||||
still unable to find aliasing addresses whose source of aliasing is outside of
|
||||
the studied block's scope ---~and, as such, suffers from the \emph{lack of
|
||||
context} pointed out in the previous chapter.
|
||||
|
||||
\medskip{}
|
||||
|
||||
Our evaluation of \staticdeps{} against a dynamic analysis baseline,
|
||||
\depsim{}, shows that it only finds about 60\,\% of the existing dependencies.
|
||||
We however enrich \uica{} with \staticdeps{}, and find that it performs on the
|
||||
full \cesasme{}'s dataset as well as \uica{} alone on the pruned dataset of
|
||||
\cesasme{}, removing memory-carried bottlenecks. From this, we conclude that
|
||||
\staticdeps{} is very successful at finding the data dependencies through
|
||||
memory that actually matter from a performance analysis perspective. We also
|
||||
find that, despite being written in pure Python, \staticdeps{} is at least
|
||||
30$\times$ faster than its C dynamic counterpart, \depsim; as such, we expect
|
||||
a compiled and optimized implementation of \staticdeps{} to be two to three
|
||||
orders of magnitude faster than \depsim{}.
|
|
@ -7,3 +7,4 @@ dependencies}\label{chap:staticdeps}
|
|||
\input{30_static_principle.tex}
|
||||
\input{40_staticdeps.tex}
|
||||
\input{50_eval.tex}
|
||||
\input{99_conclusion.tex}
|
||||
|
|
Loading…
Reference in a new issue