Commit 9e00287b authored by Celian GOSSEC's avatar Celian GOSSEC

Unpushed updates of Feb 27 (LT #1)

parent 5d635919
......@@ -74,16 +74,22 @@
C++ scientific library.}
author = {Wenzel Jakob and Jason Rhinelander and Dean Moldovan},
year = {2017},
note = {},
title = {pybind11 -- Seamless operability between C++11 and Python}
author={Niebler, Eric},
author = {Malossi, A. Cristiano I. and Ineichen, Yves and Bekas, Costas and Curioni, Alessandro},
year = {2015},
month = {01},
pages = {},
title = {Fast Exponential Computation on SIMD Architectures},
doi = {10.13140/2.1.4362.3207}
author = {Wittenbrink, Craig and Somani, Arun},
year = {1993},
month = {01},
pages = {12-22},
title = {Cache tiling for high performance morphological image processing},
volume = {7},
journal = {Machine Vision and Applications},
doi = {10.1007/BF01212412}
\ No newline at end of file
......@@ -2,7 +2,8 @@
......@@ -30,49 +31,95 @@
\frametitle{Rappel: la situation}
\frametitle{The context}
\structure{Point de départ.} Milena, une bibliothèque \emph{générique et performante}
de traitement d'image codée en C++.
\structure{The library} \\
\textit{Pylene} is \emph{generic} image processing library written in C++
\footnote{\tiny Practical Genericity : Writing Image Processing Algorithms Both Reusable
and Efficient.R. Levillain et al., \textit{ICPR'14}.}
\footnote{\tiny An Image Processing Library in Modern C++: Getting Simplicity and Efficiency
with Generic Programming. M. Roynard, E. Carlinet, T. Géraud, \textit{RRPR'18}.}\\[1pt]
with Generic Programming. M. Roynard, E. Carlinet, T. Géraud, \textit{RRPR'18}.} \\
It contains a wide variety of algorithms, grouped in three main categories:
\item Point-wise (PW) algorithms
\item Local algorithms
\item Global algorithms
\structure{Objectif.} Faciliter l'usage d'Olena à travers une interface
\frametitle{The context - bis}
\structure{Performances} \\
Pylene as a library is already relatively fast but we know that it can be faster than even
OpenCV if we add parallelism and/or other speedup mechanics.
\footnote{\tiny Paper being worked on by M.Roynard \& E.Carlinet}
(The following screenshot shows results using tiling \footnote{\tiny Cache tiling for high performance morphological image processing. Wittenbrink, A. et al \textit{Machine Vision and Applications, 1993}.} with SIMD)
\frametitle{Regarding performances - SIMD}
{\emph{SIMD}, or \emph{vectorization}, is the process of treating variables as part of a vector of data.
Instead of running instructions one by one, we run them all at the same time (limited by architectures).}
\frametitle{Regarding performances - Tiling}
{\emph{Tiling} is a technique in image processing where you process an image by pieces, rather than trying to fit it all in memory.}
\frametitle{Objective and problems}
\structure{Objective: improving our performances} \\
Improve the performances of the library through the aforementioned means.
The current short- and long-term points of interest:
\item Short term: work on PW algorithms
\item Longer term: work on local algorithms
\item Appeler du code \textit{statique} (templates) depuis un
environnement \textit{dynamique}\\
\item Compatibilité avec Numpy
\item SIMD not always available
\item \textbf{Scalability and genericity have to be maintained}
\frametitle{The solutions}
\item \underline{SIMD}: T.B.D., but it doesn't look like a lost cause \footnote{\tiny Fast Exponential Computation on SIMD Architectures. Malossi, A et al. (2015)}
\item \underline{Scalable and generic parallel coding}: Having meta classes that are simd-compatible acting as bases for the algorithms
\frametitle{La progression}
\frametitle{Work done so far}
\item Implémentation d'un container, \textit{any\_ref}, inspiré de Boost
\footnote{\tiny Boost. E. Niebler et al., \textit{1999}.}
\item Implémentation d'une méthode de conversion d'un type à un autre dans les \textit{value\_set}
\item Reading documentation
\item Understanding our code
\item Trying to emulate code already written for PW algorithms
On obtient ainsi des résultats très concrets, comme le montre la présentation qui suit!
\frametitle{Les prochains pas}
\frametitle{Next steps}
\item Rajouter les différentes fonctions non implémentées qui servent à traiter des images 2D
\item Permettre l'utilisation de coercision en tandem avec de la répartition dynamique
\item Utiliser la compilation à la volée quand/si possible
\item Discussion with Edwin regarding implementation details
\item Probably more papers to read
\nocite{levillain.14.ciarp, roynard.18.rrpr, pybind11, niebler1999boost}
\nocite{levillain.14.ciarp, roynard.18.rrpr, expsimd,tiling_performances}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment