Fill in a few more slides.
[matthijs/projects/internship.git] / Progress presentation / Presentation.tex
index c329ae56289865847a65f19942f0d36edcab16f9..1d28c7d4e558e51a7f5e8c04f33b09ae835161c1 100755 (executable)
 \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]
 \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}
 
       \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:
         \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
     \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
     \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
   \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}