Commit 7f2c1613 authored by Antonin Dudermel's avatar Antonin Dudermel
Browse files

first draft of the final presentation

parent 90461b09
......@@ -206,7 +206,8 @@
% \caption{different fixed-point formats}
\end{figure}
Representable numbers: \\
Biggest (range): \(2^{\msb}\) \hspace{\stretch{1}} Smallest (accuracy): \(2^{\lsb}\)
Biggest (range): \(2^{\msb+1} - 2^{\lsb}\) \hspace{\stretch{1}} Smallest
(accuracy): \(2^{\lsb}\)
\end{frame}
\section{Bounding Signals to Avoid Overflow (MSB)}
......@@ -243,7 +244,7 @@ Biggest (range): \(2^{\msb}\) \hspace{\stretch{1}} Smallest (accuracy): \(2^{\ls
\end{itemize}
\end{frame}
\begin{frame}{Recursive Signals}
\begin{frame}{Recursive Signals Problem}
Int phaser : \lstinline{process = \%(10)~ +(1);}
\begin{figure}
\centering
......@@ -255,14 +256,14 @@ Biggest (range): \(2^{\msb}\) \hspace{\stretch{1}} Smallest (accuracy): \(2^{\ls
previous sample \(s(t-1)\).
\end{frame}
\begin{frame}{Fixpoint search}
\begin{frame}{Abstract Analysis on signals}
Adapt \emph{Abstract analysis} to signals:
for each time \(t\), find an
interval \(S(t)\) containing \(s(t)\)
\[\small
\recSig{t}{s(t) = 0}{s(t) = f(s(t-1))} \leadsto
\recSig{t}{S(t) = \bot}{S(t) = f(S(t-1)) \bigcup S(t)}
\recSig{t}{S(t) = [0, 0]}{S(t) = f(S(t-1)) \bigcup S(t)}
\]
\(\bar{S} = \bigcup_{t\in\Rel} S(t)\) upperbounds the signal \(s(t)\) at each time
......@@ -277,11 +278,122 @@ Biggest (range): \(2^{\msb}\) \hspace{\stretch{1}} Smallest (accuracy): \(2^{\ls
\end{itemize}
\end{frame}
\begin{frame}{Example}
On example \only<1-3>{\lstinline{process = \%(10)~ +(1);}
\(f:z \mapsto z + 1 \mod 10 \)}
\only<4>{\lstinline{process = \_~ +(1);}
\(f:z \mapsto z + 1\)}
\begin{figure}
\centering
\only<1-3>{\includegraphics[width = 0.5\textwidth]{../code/rec-block.png}}
\only<4>{\includegraphics[width = 0.5\textwidth]{../code/ramp-block.png}}
\end{figure}
\only<1>{Step 0 : \([0, 0]\)}
\only<2>{Step 1 : \(f([0, 0]) \cup [0,0] = [1,1] \cup [0,0] = [0,1]\)}
\only<3>{Step 10 : \(f([0, 10]) \cup [0,10] = [0, 10] \cup [0, 10] = [0, 10]\) Done !}
\only<4>{Step 18752 : \(f([0, 18752]) \cup [0,18752] = [0, 18753] \cup [0, 18752] = [0, 18753]\)\\
used solution: \emph{widening}, set to \(\IntR\)} then
\(f(\IntR) \cup \IntR = \IntR \)
\end{frame}
\begin{frame}{Limitations}
\faustexfig{A smoother}{\label{fig:smooth}}
{0.4}{../code/smooth-block.png}
{0.5}{../code/smooth-sig-old.png}
{\(y(t) = x(t) + \frac{1}{2} y(t-1)\)}{../code/smooth.dsp}
With \(f: X \mapsto [-1, 1] + 1/2 * X\)\\
\only<1>{Step 0 : \([0, 0]\)}
\only<2>{Step 1 : \(f([0, 0]) \cup [0,0] = [-1,1] \cup [0,0] = [-1,1]\)}
\only<3>{Step 2 : \(f([-1, 1]) \cup [-1, 1] = [-1.5, 1.5] \cup [-1, 1] = [-1.5, 1.5]\)}
\only<4>{Step 3 : \(f([-1.5, 1.5]) \cup [-1.5, 1.5] = [-1.75, 1.75] \)}
% \only<5>{Step \(t\) : \(f([- 2 + 2^{-t-1}, 2 - 2^{-t-1}]) \cup
% [- 2 + 2^{-t-1}, 2 - 2^{-t-1}] = [- 2 + 2^{-t}, 2 - 2^{-t}] \)}
\end{frame}
\section{Designing Accuracy for Small but Correct Computations (LSB)}
\section{Conclusion and Future Work}
\begin{frame}{Error Model}
Use a rounding operator \(\rnd\) for computed arithmetic primitives.\\
\lstinline{(a + b) * c} implements \emph{exactly} \(\rnd(\rnd(a + b) \times c)\)\\
Absolute error \(\abserr_f = (a + b) \times c - \rnd(\rnd(a + b) \times c)\)
\begin{eqnarray*}
\footnotesize
\abserr_f &=& (a + b)\times c - \rnd(\rnd(a + b)\times c) \pause\\
&=& (a + b)\times c - \rnd(a + b)\times c
+ \rnd(a + b)\times c -\rnd(\rnd(a + b)\times c)\pause\\
&=& [(a + b) - \rnd(a + b)]\times c +
\left[\rnd(a + b)\times c -\rnd(\rnd(a + b)\times c)
\right] \pause\\
&=& \abserr^+(a, b)\times c +
\abserr^\times (\rnd(a + b), c) \pause\\
|\abserr_f| &=& |\abserr^+(a, b)\times c +
\abserr^\times (\rnd(a + b), c) |\\
&\leq& |\abserr^+(a, b)\times c| +
|\abserr^\times (\rnd(a + b), c)|\\
&\leq& \maxerr^+ \times c + \maxerr^\times
\end{eqnarray*}
Upperbounding \(\abserr\) for any \(a,b,c\): \emph{worst-case absolute error}
\end{frame}
\begin{frame}{Local Rules}
Local rule: devising the LSB of a processor depending only on its type
\(+, \times\dots\) and the LSB of its inputs/outputs.
\faustexfig{Weighted sum}{\label{fig:pond}}%
{0.4}{../code/pond-block.png}%
{0.5}{../code/pond-sig-old.png}%
{}{../code/pond.dsp}%
\end{frame}
\begin{frame}{Tentatives of local rules}
\todo{détailler, ou pas?}
\begin{itemize}
\item From the Input to the Outputs, scale to best
\item From the Input to the Outputs, scale to worst
\item From the Outputs to the Inputs, satisfying requirements
\end{itemize}
\end{frame}
\begin{frame}{Global rules, one step back}
\begin{itemize}
\item Detect patterns on the signal graph and contract them into one node
\item Apply local rules on the contracted graph
\item Compute the LSB of the elements of each pattern according to its global
inputs and outputs
\end{itemize}
\begin{minipage}{1.0\linewidth}
\centering
\includegraphics[width=.7\textwidth]{../code/pond-sig-old.png}
\end{minipage}
\end{frame}
\section{Conclusion and Perspectives}
\begin{frame}{Conclusion}
\begin{itemize}
\item Most Significant Bit:
\begin{itemize}
\item Strong theoretical background
\item Needs an efficient interval library
\item Undecidable, needs sometimes annotations
\end{itemize}
\item Least Significant Bit:
\begin{itemize}
\item No efficient local rule
\item Needs a step-back approach to understand the code in its globality
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Perspectives}
\begin{itemize}
\item Find a suboptimal backup pragmatic rule to derive MSB and LSB in every case
\item Improve the interval library
\item Interface Faust with external tools
\item Use statistical error instead of worst-case error
\end{itemize}
\end{frame}
\end{document}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment