X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=Progress%20presentation%2FPresentation.tex;h=1d28c7d4e558e51a7f5e8c04f33b09ae835161c1;hb=df1a09093bd279bd757341a7eb582883739870c6;hp=c329ae56289865847a65f19942f0d36edcab16f9;hpb=8ab2e13c8c5761773a9ec9f540853a1b4a7f29f6;p=matthijs%2Fprojects%2Finternship.git diff --git a/Progress presentation/Presentation.tex b/Progress presentation/Presentation.tex index c329ae5..1d28c7d 100755 --- a/Progress presentation/Presentation.tex +++ b/Progress presentation/Presentation.tex @@ -20,6 +20,13 @@ \usepackage{multimedia} \usepackage{subfigure} \usepackage{booktabs} +% Can use a tiny fontsize +\usepackage{fancyvrb} + + +%\usepackage{pgfpages} +%\pgfpagesuselayout{4 on 1}[a4paper,border shrink=5mm] + %For handouts, use the following two lines: %\usepackage{pgfpages} %\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm] @@ -51,10 +58,47 @@ \end{frame} \section{Introduction} - \subsection{Montium Tile Processor} - \subsection{MontiumC} - \subsection{LLVM} - \subsection{Compile process} + \begin{frame}{Montium Tile Processor} + \begin{itemize} + \item Explicitely parallel processor + \item Multilevel reconfiguration + \item Separate memory addressing units + \item Data oriented, limited control flow + \item Redesign on the way + \end{itemize} + \end{frame} + + \begin{frame}{MontiumC} + \begin{itemize} + \item Subset of C + \item Operations on data using MontiumC API + \item Compilable by gcc (as C++) + \item Under constant improvement + \end{itemize} + \end{frame} + + \begin{frame}{Low Level Virtual Machine (LLVM)} + \begin{itemize} + \item Compiler framework. + \item Provides: + \begin{itemize} + \item C Frontend + \item Intermediate representation (LLVM IR) + \item Transformation passes + \item Native codegenerators + \item JIT compilation + \end{itemize} + \item Very modular + \end{itemize} + \end{frame} + + \begin{frame}{Compiling MontiumC} + \pgfdeclareimage[width=\textwidth]{Compiling}{images/Compiling} + \pgfuseimage{Compiling} + \begin{itemize} + \item Focus: montiumccfe and transformations + \end{itemize} + \end{frame} \section{Tasks} @@ -72,10 +116,12 @@ \begin{itemize} \item What is MontiumC? \item What is Montium IR? + \item Reconfigurable binaries \end{itemize} \end{frame} \begin{frame}{What is MontiumC?} + \note{Two angles: What do we want, and what do we support.} \begin{itemize} \item Status: Specification is ongoing \item Challenges: @@ -92,13 +138,64 @@ \end{itemize} \end{itemize} \end{frame} - + + \begin{frame}[containsverbatim] + \begin{columns} + \begin{column}{0.5\textwidth} + Low level + \begin{Verbatim}[fontsize=\tiny] +mem input; +mem output; +word factor; + +void run(void) { + factor = from_int(2); + input = alloc_mem(P0M0); + output = alloc_mem(P0M1); + set_base(input, 0); + set_offset(input, 0); + set_base(output, -1); + set_offset(output, -1); + + next_cycle(); + word in = read_mem(input); + word out = p0o0(imul(ra1(in), rc1(factor))) + add_offset(input, 1); + add_offset(output, 1); + init_loop(LC1, 8); + do { + write_mem(output, out); + in = read_mem(input); + out = p0m0(imul(ra1(in), rc1(factor))) + add_offset(input, 1); + add_offset(output, 1); + } while(loop_next(LC1)); + + write_mem(output, out); +\end{Verbatim} + \end{column} + \begin{column}{0.5\textwidth} + High level + \begin{Verbatim}[fontsize=\tiny] +P0M0 int input[10]; +P0M1 int output[10]; + +void run(void) { + for (int i=0; i<10; ++i) + output[i] = input[i] * 2; +} + \end{Verbatim} + \end{column} + \end{columns} + \end{frame} + \note{} % Empty filler note page + \begin{frame}{What is Montium IR?} \begin{itemize} \item Status: Initial version \item Challenges: \begin{itemize} - \item Fast moving target + \item Backend is a fast moving target \item Corner cases \note[item]{Corner case --- global constants} \item Hardware dependencies @@ -164,8 +261,9 @@ \end{frame} \section{Work process} - \begin{frame}{Recore} + \begin{frame}{Working at Recore} \begin{itemize} + \item Smart people \item Fast communication \note[item]{Communication --- Mixed teams, easy to "listen in".} \item Constructive brainstorming @@ -173,7 +271,7 @@ \end{itemize} \end{frame} - \begin{frame}{LLVM} + \begin{frame}{Working with LLVM} \begin{itemize} \item Large community \note[item]{Community --- Companies involved, a lot of full time @@ -186,5 +284,12 @@ \end{frame} \section{Conclusions} + \begin{frame}{Conclusions} + \begin{itemize} + \item LLVM is very suitable + \item Defining the problem is harder than solving it + \item Three months is short! + \end{itemize} + \end{frame} \end{document}