Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
adud
rapport-stage-m2
Commits
7f2c1613
Commit
7f2c1613
authored
Jun 23, 2021
by
Antonin Dudermel
Browse files
first draft of the final presentation
parent
90461b09
Changes
1
Hide whitespace changes
Inline
Side-by-side
final-pres/finalpres.tex
View file @
7f2c1613
...
...
@@ -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}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment