Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 961d99c1 authored by GRIBONVAL Remi's avatar GRIBONVAL Remi Committed by hhakim
Browse files

Corrections doc

parent b79b0275
Branches
Tags
No related merge requests found
%!TEX root = gettingStartedFAuST-version2_0.tex
\chapter{QuickStart}\label{sec:firstUse} \chapter{QuickStart}\label{sec:firstUse}
A Matlab wrapper is delivered with the FA$\mu$ST C++ library. A Matlab wrapper is delivered with the FA$\mu$ST C++ library.
It provides a user friendly new class of matrix \textbf{FA$\mu$ST} efficient for the multiplication with Matlab built-in dense matrix class.\newline It provides a user friendly new class of \textbf{FA$\mu$ST} matrices for efficient multiplication with Matlab built-in dense matrix class.\newline
This chapter presents some demos in order to get a customed to the \textbf{FA$\mu$ST} class and illustrates the advantages of \textbf{FA$\mu$ST} class. This chapter presents some demos in order to get accustomed to the \textbf{FA$\mu$ST} class and illustrates the advantages of \textbf{FA$\mu$ST} class on some examples.
\begin{enumerate} \begin{enumerate}
\item \textbf{Configure your Matlab path} (refer to Section \ref{sec:firstUseMatlabPath}). \item \textbf{Configure your Matlab path} (refer to Section \ref{sec:firstUseMatlabPath}).
\item You can run and take a look at various Matlab demos : \item You can run and take a look at various Matlab demos :
\begin{itemize} \begin{itemize}
\item \textbf{Use a FA$\mu$ST from a saved one} presents the general functionality of a FA$\mu$ST (go to Section \ref{sec:firstUseBuildFromSave}) \item \textbf{Use a FA$\mu$ST from a saved one (Section \ref{sec:firstUseBuildFromSave})} presents the general functionality of a FA$\mu$ST matrix
\item \textbf{Construct a FA$\mu$ST from its factor} (go to Section \ref{sec:firstUseBuildFactors}) \item \textbf{Construct a FA$\mu$ST from its factors (Section \ref{sec:firstUseBuildFactors})}
\item \textbf{Brain Sources Localization} illustrates the speed-up induced by FA$\mu$ST in a medical application (go to Section \ref{sec:BSL_example}) \item \textbf{Brain Sources Localization (Section \ref{sec:BSL_example})} illustrates the speed-up induced by FA$\mu$ST in a medical imaging application
\end{itemize} \end{itemize}
\end{enumerate} \end{enumerate}
...@@ -25,8 +26,8 @@ In order to use Matlab wrapper, follow the instructions : ...@@ -25,8 +26,8 @@ In order to use Matlab wrapper, follow the instructions :
\item \textbf{Launch} Matlab. \item \textbf{Launch} Matlab.
\item \textbf{Set the working directory} of the Matlab Command Window to your FA$\mu$ST install directory FAuST\_INSTALL\_DIR by typing : \item \textbf{Set the working directory} of the Matlab Command Window to your FA$\mu$ST install directory FAuST\_INSTALL\_DIR by typing :
\begin{lstlisting}[style=customMatlab] \begin{lstlisting}[style=customMatlab]
>> cd <INSTALL_FAuST_DIR>\end{lstlisting} >> cd <FAuST_INSTALL_DIR>\end{lstlisting}
By default, FAuST\_INSTALL\_DIR is inside the Matlab user directory. So, depending on your OS, you must replace the FAuST\_INSTALL\_DIR by this path : By default, FAuST\_INSTALL\_DIR is inside the Matlab user directory. So, depending on your OS and configuration, you must replace the string <FAuST\_INSTALL\_DIR> in the above Matlab command line by this path :
\begin{itemize} \begin{itemize}
\item \textbf{Windows$\ \ \ $:} \texttt{<ROOT>\textbackslash Users\textbackslash <USERNAME>\textbackslash Documents\textbackslash MATLAB\textbackslash faust} \item \textbf{Windows$\ \ \ $:} \texttt{<ROOT>\textbackslash Users\textbackslash <USERNAME>\textbackslash Documents\textbackslash MATLAB\textbackslash faust}
\item \textbf{Linux$\ \ \ \ \ \ \ \ $:} \texttt{/home/<USERNAME>/Documents/MATLAB/faust} \item \textbf{Linux$\ \ \ \ \ \ \ \ $:} \texttt{/home/<USERNAME>/Documents/MATLAB/faust}
...@@ -43,9 +44,9 @@ In order to use Matlab wrapper, follow the instructions : ...@@ -43,9 +44,9 @@ In order to use Matlab wrapper, follow the instructions :
>> setup_Faust \end{lstlisting} >> setup_Faust \end{lstlisting}
You must obtain the following message in your Matlab Command Window : You must obtain the following message in your Matlab Command Window :
\begin{lstlisting} \begin{lstlisting}
Welcome to wrapper matlab C++ FAuST_toolbox. Welcome to the matlab wrapper of the FAuST C++ toolbox.
FAuST root directory is FAuST_INSTALL_DIR FAuST root directory is <FAuST_INSTALL_DIR>
Adding path FAuST_INSTALL_DIR and all its subdirectories Adding path <FAuST_INSTALL_DIR> and all its subdirectories
To get started with the FAuST Toolbox : launch quick_start To get started with the FAuST Toolbox : launch quick_start
or run_all_demo.m \end{lstlisting} or run_all_demo.m \end{lstlisting}
...@@ -60,15 +61,15 @@ Now, you can run \texttt{quick\_start.m} script in the Matlab Command Window by ...@@ -60,15 +61,15 @@ Now, you can run \texttt{quick\_start.m} script in the Matlab Command Window by
\begin{lstlisting} \begin{lstlisting}
>> quick_start >> quick_start
\end{lstlisting} \end{lstlisting}
\texttt{quick\_start.m} script is located in following path :\\ The \texttt{quick\_start.m} script is located in the following path :\\
\texttt{/<INSTALL\_FAuST\_DIR>/demo/Quick\_start/quick\_start.m} \\ \texttt{<FAuST\_INSTALL\_DIR>/demo/Quick\_start/quick\_start.m} \\
In this script : In this script :
\begin{enumerate} \begin{enumerate}
\item A FA$\mu$ST of size 4000x5000 is loaded from a previous one that is saved into a MAT-file located in :\\ \item A FA$\mu$ST of size 4000x5000 is loaded from a MAT-file located in :\\
\texttt{<INSTALL\_FAuST\_DIR>/demo/Quick\_start/faust\_quick\_start.mat} \texttt{<FAuST\_INSTALL\_DIR>/demo/Quick\_start/faust\_quick\_start.mat}
\lstinputlisting[firstline=47,lastline=48,style=customMatlab]{../../misc/demo/Quick_start/quick_start.m} \lstinputlisting[firstline=47,lastline=48,style=customMatlab]{../../misc/demo/Quick_start/quick_start.m}
\item A list of overloaded Matlab function shows that a FA$\mu$ST is handled as a normal Matlab builtin matrix. \item A list of overloaded Matlab function shows that a FA$\mu$ST is almost handled as a normal Matlab builtin matrix. The exception is that one cannot \emph{assign} a value to a given entry.
\lstinputlisting[firstline=51,lastline=83,style=customMatlab]{../../misc/demo/Quick_start/quick_start.m} \lstinputlisting[firstline=51,lastline=83,style=customMatlab]{../../misc/demo/Quick_start/quick_start.m}
\item It performs a little time comparison between multiplication by a FA$\mu$ST or its full matrix equivalent. \item It performs a little time comparison between multiplication by a FA$\mu$ST or its full matrix equivalent.
...@@ -77,17 +78,17 @@ This is in order to illustrate the speed-up induced by the FA$\mu$ST. This speed ...@@ -77,17 +78,17 @@ This is in order to illustrate the speed-up induced by the FA$\mu$ST. This speed
\end{enumerate} \end{enumerate}
\section{Construct a FAuST from its factor}\label{sec:firstUseBuildFactors} \section{Construct a FAuST from its factors}\label{sec:firstUseBuildFactors}
To see an example of building a FA$\mu$ST from its factors, you can run \texttt{construct\_Faust\_from\_factors.m} in the Matlab Command Window by typing : To see an example of building a FA$\mu$ST from its factors, you can run \texttt{construct\_Faust\_from\_factors.m} in the Matlab Command Window by typing :
\lstset{style=customMatlab} \lstset{style=customMatlab}
\begin{lstlisting} \begin{lstlisting}
>> construct_Faust_from_factors >> construct_Faust_from_factors
\end{lstlisting} \end{lstlisting}
This following example shows how to build a FA$\mu$ST from a cell-array representing its factors. The following example shows how to build a FA$\mu$ST from a cell-array representing its factors.
\lstinputlisting[firstline=42,lastline=70,style=customMatlab]{../../misc/demo/Quick_start/construct_Faust_from_factors.m} \lstinputlisting[firstline=42,lastline=70,style=customMatlab]{../../misc/demo/Quick_start/construct_Faust_from_factors.m}
If you want to build a FA$\mu$ST from a given matrix, you can go to the section Working Progress \ref{sec:WorkingProgressBuildFromMatrix}. If you want to build a FA$\mu$ST from a given matrix, you can go to the section Work in Progress \ref{sec:WorkingProgressBuildFromMatrix}.
Be aware that this not yet stable but under progress. Be aware that this not yet stable but under development.
...@@ -102,11 +103,11 @@ An experience of Brain Source Localization using several gain matrices including ...@@ -102,11 +103,11 @@ An experience of Brain Source Localization using several gain matrices including
\end{lstlisting} \end{lstlisting}
\texttt{BSL.m} runs the experiment (see the script file :\\ \texttt{BSL.m} runs the experiment (see the script file :\\
\texttt{/<FAuST\_INSTALL\_DIR>/demo/Brain\_source\_localization/BSL.m})\\ \texttt{<FAuST\_INSTALL\_DIR>/demo/Brain\_source\_localization/BSL.m})\\
\texttt{Fig\_BSL.m} displays the Figure \ref{fig:BSL}. illustrating the speed-up using a FA$\mu$ST. (see the script file:\\ \texttt{Fig\_BSL.m} displays Figure \ref{fig:BSL}. illustrating the speed-up using a FA$\mu$ST. (see the script file:\\
\texttt{<FAuST\_INSTALL\_DIR>/demo/Brain\_source\_localization/Fig\_BSL.m}) \\ \texttt{<FAuST\_INSTALL\_DIR>/demo/Brain\_source\_localization/Fig\_BSL.m}) \\
This figure illustrates the speed-up with a FA$\mu$ST ($\mathbf{M}$ is the gain dense matrix and $\widehat{\mathbf{M}}_{6},\widehat{\mathbf{M}}_{9},\widehat{\mathbf{M}}_{16},\widehat{\mathbf{M}}_{26}$ are different FA$\mu$ST representing $\mathbf{M}$): This figure illustrates the speed-up with a FA$\mu$ST ($\mathbf{M}$ is the dense gain matrix and $\widehat{\mathbf{M}}_{6},\widehat{\mathbf{M}}_{9},\widehat{\mathbf{M}}_{16},\widehat{\mathbf{M}}_{26}$ are different FA$\mu$ST representing $\mathbf{M}$):
\begin{figure}[H] %%[!htbp] \begin{figure}[H] %%[!htbp]
......
\chapter{Installation on Unix platform}\label{sec:InstallUnix} %!TEX root = gettingStartedFAuST-version2_0.tex
\chapter{Installation on a Unix platform}\label{sec:InstallUnix}
The FA$\mu$ST project is available for Linux, MAC OS X and Windows platforms. The proposed toolbox provides a Matlab wrapper. \textbf{CMake} has been chosen to build the FA$\mu$ST project because it is an open-source, cross-platform family of tools designed to build, test and package software. This chapter presents the steps to install the FA$\mu$ST tools on Unix platform (both Linux and Mac OS). The FA$\mu$ST project is available for Linux, MAC OS X and Windows platforms. The proposed toolbox provides a Matlab wrapper. \textbf{CMake} has been chosen to build the FA$\mu$ST project because it is an open-source, cross-platform family of tools designed to build, test and package software. This chapter presents the steps to install the FA$\mu$ST tools on a Unix platform (both Linux and Mac OS).
\begin{enumerate} \begin{enumerate}
\item Ensure that the \textbf{prerequisite components} listed in Section \ref{sec:RequiredTools} are installed. \item Ensure that the \textbf{prerequisite components} listed in Section \ref{sec:RequiredTools} are installed.
\item Refer to section \ref{sec:UnixBuildDownload} to download FA$\mu$ST package and setting your terminal. \item Refer to section \ref{sec:UnixBuildDownload} to download the FA$\mu$ST package and set your terminal.
\item Refer to the appropriate section following the use (or not) of an IDE (Integrated Development Environment): \item Refer to the appropriate section following the use (or not) of an IDE (Integrated Development Environment):
\begin{itemize} \begin{itemize}
...@@ -17,30 +18,29 @@ The FA$\mu$ST project is available for Linux, MAC OS X and Windows platforms. Th ...@@ -17,30 +18,29 @@ The FA$\mu$ST project is available for Linux, MAC OS X and Windows platforms. Th
Section \ref{sec:UnixCustomInstall} describes the custom options available to build the FA$\mu$ST toolbox, to propose a Custom - Advanced installation. For example, the optional configuration can be used to modify the install directory path, or to build in debug mode. Section \ref{sec:UnixCustomInstall} describes the custom options available to build the FA$\mu$ST toolbox, to propose a Custom - Advanced installation. For example, the optional configuration can be used to modify the install directory path, or to build in debug mode.
Throughout the document we provide examples as follows:
\begin{itemize}
\item Command lines you must enter in a terminal are displayed as:
\lstset{style=customBash} \lstset{style=customBash}
\begin{lstlisting} \begin{lstlisting}
> This kind of script represents the text command you must > mkdir BUILD; ls .
> entered in a terminal command. For example :
> mkdir BUILD
\end{lstlisting} \end{lstlisting}
\item Messages resulting from such command lines appear without the leading '>':
\lstset{style=customBash} \lstset{style=customBash}
\begin{lstlisting} \begin{lstlisting}
when character '>' is missing in the beginning of each line, example of return text in your current terminal.
it signifies that the message is a return text in your
current terminal.
\end{lstlisting} \end{lstlisting}
\item Command lines you must enter in a Matlab Command Window are displayed as:
\lstset{style=customMatlab} \lstset{style=customMatlab}
\begin{lstlisting} \begin{lstlisting}
>> This kind of script represents the text command you must >> y = A*x;
>> entered in a Matlab Command Window.
\end{lstlisting} \end{lstlisting}
\item Messages resulting from such command lines appear without the leading '>>':
\lstset{style=customMatlab} \lstset{style=customMatlab}
\begin{lstlisting} \begin{lstlisting}
when character ">>" is missing in the beginning of each line, example of return text in Matlab Command Window.
it signifies that the message is a return text in your current
Matlab Command Window.
\end{lstlisting} \end{lstlisting}
\end{itemize}
\section{Required components}\label{sec:RequiredTools} \section{Required components}\label{sec:RequiredTools}
......
\chapter{Installation on Windows platform}\label{sec:WinInstall} %!TEX root = gettingStartedFAuST-version2_0.tex
\chapter{Installation on a Windows platform}\label{sec:WinInstall}
The FA$\mu$ST project is available for Linux, MAC OS X and Windows platforms. The proposed toolbox provides a Matlab wrapper. \textbf{CMake} has been chosen to build the FA$\mu$ST project because it is an open-source, cross-platform family of tools designed to build, test and package software. This chapter presents the steps to install the FA$\mu$ST tools on Windows platform. The FA$\mu$ST project is available for Linux, MAC OS X and Windows platforms. The proposed toolbox provides a Matlab wrapper. \textbf{CMake} has been chosen to build the FA$\mu$ST project because it is an open-source, cross-platform family of tools designed to build, test and package software. This chapter presents the steps to install the FA$\mu$ST tools on a Windows platform.
\begin{enumerate} \begin{enumerate}
\item Ensure that the \textbf{prerequisite components} listed in Section \ref{sec:WinRequired} are installed. \item Ensure that the \textbf{prerequisite components} listed in Section \ref{sec:WinRequired} are installed.
\item \textbf{Choose your preferred C++ Compiler} between GCC from MinGW "Minimalist GNU for Windows"(Section \ref{sec:WinInstallMinGW}) and the C++ Compiler from Microsoft Visual Studio (Section \ref{sec:WinInstallVS}). \item \textbf{Choose your preferred C++ Compiler} between GCC from MinGW "Minimalist GNU for Windows"(Section \ref{sec:WinInstallMinGW}) and the C++ Compiler from Microsoft Visual Studio (Section \ref{sec:WinInstallVS}).
\item \textbf{Process to Basic installation} of FA$\mu$ST tool by following instructions given in the appropriate section, depending to the kind of compiler (MinGW or Microsoft Visual) and the use (or not) of an IDE (Integrated Development Environment). \item \textbf{Process to the Basic installation} of FA$\mu$ST by following the instructions given in the appropriate section, depending to the kind of compiler (MinGW or Microsoft Visual) and the use (or not) of an IDE (Integrated Development Environment).
\end{enumerate} \end{enumerate}
Section \ref{sec:WinCustomInstall} describes the custom options available to build the FA$\mu$ST toolbox, to propose Custom - Advanced installation. For example, the optional configuration can be used to modify the install directory path, or to build in debug mode. Section \ref{sec:WinCustomInstall} describes the custom options available to build the FA$\mu$ST toolbox, to propose Custom - Advanced installation. For example, the optional configuration can be used to modify the install directory path, or to build in debug mode.
Throughout the document we provide examples as follows:
\begin{itemize}
\item Command lines you must enter in a terminal are displayed as:
\lstset{style=customBash} \lstset{style=customBash}
\begin{lstlisting} \begin{lstlisting}
> This kind of script represents the text command you must > mkdir BUILD; ls .
> entered in a terminal command. For example :
> mkdir BUILD
\end{lstlisting} \end{lstlisting}
\item Messages resulting from such command lines appear without the leading '>':
\lstset{style=customBash} \lstset{style=customBash}
\begin{lstlisting} \begin{lstlisting}
when character '>' is missing in the beginning of each line, example of return text in your current terminal.
it signifies that the message is a return text in your
current terminal.
\end{lstlisting} \end{lstlisting}
\item Command lines you must enter in a Matlab Command Window are displayed as:
\lstset{style=customMatlab} \lstset{style=customMatlab}
\begin{lstlisting} \begin{lstlisting}
>> This kind of script represents the text command you must >> y = A*x;
>> entered in a Matlab Command Window.
\end{lstlisting} \end{lstlisting}
\item Messages resulting from such command lines appear without the leading '>>':
\lstset{style=customMatlab} \lstset{style=customMatlab}
\begin{lstlisting} \begin{lstlisting}
when character ">>" is missing in the beginning of each line, example of return text in Matlab Command Window.
it signifies that the message is a return text in your current
Matlab Command Window.
\end{lstlisting} \end{lstlisting}
\end{itemize}
\section{Required components}\label{sec:WinRequired} \section{Required components}\label{sec:WinRequired}
......
%!TEX root = gettingStartedFAuST-version2_0.tex
\chapter{Introduction}\label{sec:intro} \chapter{Introduction}\label{sec:intro}
\paragraph{What is the use of that?}FA$\mu$ST is a C++ toolbox, useful to decompose a given dense matrix into a product of sparse matrices in order to reduce its computational complexity (both for storage and manipulation). In Figure \ref{fig:presentation}, the matrix \textbf{A} represents the dense matrix and $\mathbf{S_j}$ correspond to the sparse matrices as $\mathbf{A}=\prod_{j=1}^J\mathbf{S_j}$. \paragraph{What is the \FAuST toolbox?} FA$\mu$ST is a C++ toolbox, useful to decompose or approximate any given dense matrix into a product of sparse matrices, in order to reduce its computational complexity (both for storage and manipulation).
As an example, Figure \ref{fig:presentation} shows a dens matrix \textbf{A} and sparse matrices $\mathbf{S_j}$ such that $\mathbf{A}=\prod_{j=1}^J\mathbf{S_j}$.
\begin{figure}[H] %%[!htbp] \begin{figure}[H] %%[!htbp]
\centering \centering
...@@ -9,27 +11,38 @@ ...@@ -9,27 +11,38 @@
\label{fig:presentation} \label{fig:presentation}
\end{figure} \end{figure}
FA$\mu$ST can be used to speed up iterative algorithms commonly used for solving high dimensional linear inverse problems. The algorithms implemented in the toolbox are described in details by Le Magoarou.\cite{LeMagoarou2016}. \paragraph{Why shall I use \FAuST?} FA$\mu$ST can be used to speed up iterative algorithms commonly used for solving high dimensional linear inverse problems. The algorithms implemented in the toolbox are described in details by Le Magoarou \cite{LeMagoarou2016}. For more information on the FA$\mu$ST project, please visit the website of the project: \url{http://faust.gforge.inria.fr}.
The FA$\mu$ST toolbox is delivered with a Matlab wrapper.
For more information on the FA$\mu$ST project, please visit the website of the project: \url{http://faust.gforge.inria.fr}.
%\paragraph{Brief description:} %\paragraph{Brief description:}
%$A=\prod_{j=1}^J S_j$. %$A=\prod_{j=1}^J S_j$.
%Valid Installation: Platforms, Compiler and IDE %Valid Installation: Platforms, Compiler and IDE
\paragraph{Which type of Platform and Compiler for the installation?} \paragraph{Is my platform and compiler currently supported?}
The Figure \ref{fig:recapInstall} summarizes the tested configurations of the installation of the FA$\mu$ST toolbox following the type of platform (Linux, Mac or Windows), compiler, version of Matlab and the type of Integrate Development Environment (IDE).\\ \FAuST\ has been tested in various configurations, and is currently delivered with a Matlab wrapper. Figure \ref{fig:recapInstall} summarizes the configurations on which \FAuST\ has been tested.
Choose among this Figure \ref{fig:recapInstall} the adapted platform and IDE following your system and refer to the corresponding Install Chapter. Authors suggest the installation using the GCC or Clang compiler directly from a command terminal because it is more simple and requires fewer externals components.
\paragraph{How should I use this document ?}
If your platform and configuration is currently supported according to Figure \ref{fig:recapInstall}, please refer to the corresponding Install Chapter. By default we suggest the installation using the GCC or Clang compiler directly from a command terminal since it requires fewer externals components.
\begin{itemize}
\item for installation on UNIX (including Linux and Mac OS X) platform refer to Chapter \ref{sec:InstallUnix};
\item for installation on Windows refer to Chapter \ref{sec:WinInstall}.
\end{itemize}
Chapter \ref{sec:firstUse} shows quickly how to use this library and gives an example of application. Finally, a "work in progress" part is given Chapter \ref{sec:WorkingProgress} to give an overview of the roadmap for \FAuST.
\begin{figure}[H] %%[!htbp] \begin{figure}[H] %%[!htbp]
\centering \centering
\includegraphics[scale=0.4]{images/recapInstall.pdf} \includegraphics[scale=0.4]{images/recapInstall.pdf}
\caption{Checked Installation: Platforms and IDE} \caption{Tested configurations: Platforms and IDE}
\label{fig:recapInstall} \label{fig:recapInstall}
\end{figure} \end{figure}
\paragraph{How FA$\mu$ST is structured?} \paragraph{How is the code of FA$\mu$ST structured?}
The Figure \ref{fig:faustStructure} presents a brief structure of the FA$\mu$ST toolbox. The principal C++ library called "libfaust" includes two components: the "Factorization algorithms" is used to generate a FA$\mu$ST core from a dense matrix and the "FA$\mu$ST matrix multiplication" provides the linear operator to manipulate your data. It can be employ using different types of wrappers but in the second version of FA$\mu$ST package (Version 2.0), only Matlab wrapper is provided. Command-line, Python and A||GO wrapper are planned in the next version of FA$\mu$ST (see Section \ref{sec:WorkingProgress}). A brief outline of the code structure and status is given on Figure~\ref{fig:faustStructure}. The main C++ library called \textrm{libfaust} includes two components:
\begin{itemize}
\item the "FA$\mu$ST matrix multiplication" provides efficient linear operators to efficiently manipulate your data, relying on efficient low-level routines from external libraries where needed;
\item the "Factorization algorithms" is used to generate a FA$\mu$ST core from a dense matrix.
\end{itemize}
Various wrappers are planned to call \textrm{libfaust}. In the current version of \FAuST (Version 2.0), only the Matlab wrapper is implemented. Command-line, Python and A||GO wrapper are planned in the next version of FA$\mu$ST (see Section \ref{sec:WorkingProgress}).
\begin{figure}[H] %%[!htbp] \begin{figure}[H] %%[!htbp]
...@@ -41,16 +54,16 @@ The Figure \ref{fig:faustStructure} presents a brief structure of the FA$\mu$ST ...@@ -41,16 +54,16 @@ The Figure \ref{fig:faustStructure} presents a brief structure of the FA$\mu$ST
\paragraph{Known issues} \paragraph{Known issues}
\begin{enumerate} \begin{enumerate}
\item The installation on Windows Platform using Visual Studio IDE has been tested but there is compilation problems depending on the version of your Windows and your Visual Studio. \textbf{This install configuration is not guaranteed} but you can try and report any problem and/or suggestion on install-list of FA$\mu$ST project on \url{http://lists.gforge.inria.fr/pipermail/faust-install/}. \item The installation on Windows using Visual Studio IDE has been tested with success in certain configurations, however \textbf{compilation problems have been encountered depending on the version of Windows and Visual Studio}. Unfortunately we cannot offer technical support but you may nevertheless report problems and/or suggestions on the mailing list \url{http://lists.gforge.inria.fr/pipermail/faust-install/}.
\item The use of the \textbf{mex function} from Matlab requires that you have a third-party compiler installed on your system. Warning: Following your version of Matlab (2016a in our case) mex function only supports up to GCC 4.7 (see \url{http://fr.mathworks.com/support/compilers/R2016a/index.html?sec=glnxa64} for more detail). \item Compiling mex files with the \textbf{mex compiler} of Matlab requires a compatible third-party compiler. \textbf{Warning: With Matlab Release2016a, the mex compiler seems to only support up to GCC 4.7 (see \url{http://fr.mathworks.com/support/compilers/R2016a/index.html?sec=glnxa64} for more detail)}.
\item The "Factorization algorithms" module represented on Figure \ref{fig:faustStructure} is actually in progress (see Section \ref{sec:WorkingProgress}). \item The "Factorization algorithms" module represented on Figure \ref{fig:faustStructure} is still work in progress (see Section \ref{sec:WorkingProgress}). A GPU implementation is also on its way, as well as more wrappers.
\end{enumerate} \end{enumerate}
\paragraph{How do I pronounce \FAuST?} We suggest to pronounce the library name as ``FAUST'', but you may also pronounce it ``FAMUST'' ;-)
\paragraph{Organization:}Chapter \ref{sec:InstallUnix} explains how to install the library FA$\mu$ST for UNIX (including Linux and Mac OS X) platform and Chapter \ref{sec:WinInstall} corresponds to the Windows installation. Chapter \ref{sec:firstUse} shows quickly how to use this library and gives an example of application. Finally, a "working progress" part is given Chapter \ref{sec:WorkingProgress} to review the current and future work.
\paragraph{License:}Copyright (2016) Luc Le Magoarou, Remi Gribonval INRIA Rennes, FRANCE \\ \paragraph{License:}Copyright (2016) Luc Le Magoarou, Remi Gribonval INRIA Rennes, FRANCE \\
The FA$\mu$ST Toolbox is distributed under the terms of the GNU Affero General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see \url{http://www.gnu.org/licenses/}. The FA$\mu$ST Toolbox is distributed under the terms of the GNU Affero General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see \url{http://www.gnu.org/licenses/}.
\chapter{Working Progress}\label{sec:WorkingProgress} %!TEX root = gettingStartedFAuST-version2_0.tex
\chapter{Work in Progress}\label{sec:WorkingProgress}
Various features are still under development and not yet stable. Various features are still under development and not yet stable.
But here is a list of features that will be improved/integrated in the next release : But here is an overview of a roadmap for features that we plan to improve/integrate in an upcoming release :
\begin{itemize} \begin{itemize}
\item \textbf{Factorization algorithm :} (cf. Section \ref{sec:WorkingProgressBuildFromMatrix})\\ \item \textbf{Factorization algorithms :} (cf. Section \ref{sec:WorkingProgressBuildFromMatrix})\\
They are available in this release. You can even used them A beta version is available in this release, implementing in C++ what what delivered in plain Matlab in version 1.0.0.
from user-friendly approach (cf. Section \ref{sec:WorkingProgressBuildFromMatrix}) but they are not Refer to Section \ref{sec:WorkingProgressBuildFromMatrix}) for more information on how to play with these algorithms, which C++ implementation and API are not yet stabilized.
that stable. In the sense that they are not fitted to all types of matrices.
\item \textbf{Graphics Processing Unit (GPU) :} (cf. Section \ref{sec:OptionalGPU})\\ \item \textbf{Graphics Processing Unit (GPU) :} (cf. Section \ref{sec:OptionalGPU})\\
A GPU version of the code is under development, it already shows A GPU version of the code is under development, it already shows
some time saving compared to the CPU code but is not enough user-friendly and not easy to install to be in this release. However, the Linux configuration is already in operation then you can try the installation described in Section \ref{sec:OptionalGPU}, and report any problem and/or suggestion on install-list of FA$\mu$ST project on \url{http://lists.gforge.inria.fr/pipermail/faust-install/}. some time savings compared to the CPU code for certain computations, but is not enough user-friendly and not easy to install to be in this release. The most advanced development is currently on Linux, you can play with it following the steps described in Section \ref{sec:OptionalGPU}. Report any problem and/or suggestion to the mailing list \url{http://lists.gforge.inria.fr/pipermail/faust-install/}.
\item \textbf{Python wrapper :} A Python wrapper is also planned, it will used Cython module. \item \textbf{Python wrapper :} A Python wrapper is also planned, it will used the Cython module.
\item \textbf{Command line wrapper :} A command line wrapper is also planned. It will integrated the externals Libraries "XML" and "MATIO" to manipulate the data (configuration and matrix). \item \textbf{Command line wrapper :} A command line wrapper is also envisioned. It will integrated the externals Libraries "XML" and "MATIO" to manipulate the data (configuration and matrix).
\item \textbf{A||GO wrapper :} A A||GO wrapper is also planned to propose a demonstration on website \url{https://allgo.inria.fr/}. \item \textbf{A||GO wrapper :} A wrapper for the A||GO platform of web services is also planned to propose a demonstration on the website \url{https://allgo.inria.fr/}.
\item \textbf{Image denoising experiment :} (cf. \cite[chapter VI.]{LeMagoarou2016}) \\ \item \textbf{Image denoising experiment :} (cf \cite[chapter VI]{LeMagoarou2016}) \\
This experiment was in the previous release (FA$\mu$ST version 1.0) but is not in the current one because our C++ wrapper is not yet fitted to the algorithm used in this experiment. This experiment was in the previous release (FA$\mu$ST version 1.0, pure Matlab implementation) but is not in the current one because our C++ wrapper is not yet compatible with the sparse decomposition algorithm used in this experiment. Please use version 1.0.0 to reproduce this image denoising experiment.
\end{itemize} \end{itemize}
\section{Construct a FAuST from a given matrix}\label{sec:WorkingProgressBuildFromMatrix} \section{Construct a FAuST from a given matrix}\label{sec:WorkingProgressBuildFromMatrix}
...@@ -23,18 +23,17 @@ Please ensure that you have configured your Matlab environment (cf. Section \ref ...@@ -23,18 +23,17 @@ Please ensure that you have configured your Matlab environment (cf. Section \ref
\begin{lstlisting} \begin{lstlisting}
>> factorize_matrix >> factorize_matrix
\end{lstlisting} \end{lstlisting}
\texttt{factorize\_matrix.m} script is located in following path :\\ \texttt{factorize\_matrix.m} script is located in the following path :\\
\texttt{<FAuST\_INSTALL\_DIR>/demo/Quick\_start/factorize\_matrix.m} \\ \texttt{<FAuST\_INSTALL\_DIR>/demo/Quick\_start/factorize\_matrix.m} \\
In this script, from a given matrix A of size 100x200 : In this script, from a given matrix A of size 100x200
\lstinputlisting[firstline=42,lastline=47,style=customMatlab]{../../misc/demo/Quick_start/factorize_matrix.m} \lstinputlisting[firstline=42,lastline=47,style=customMatlab]{../../misc/demo/Quick_start/factorize_matrix.m}
We generate the parameters of the factorization from : we generate the parameters of the factorization from :
\begin{itemize} \begin{itemize}
\item The dimension of A (\textbf{dim1} and \textbf{dim2}), \item The dimension of A (\textbf{dim1} and \textbf{dim2}),
\item \textbf{nb\_factor} the number of factor of the FA$\mu$ST, \item \textbf{nb\_factor:} the desired number of factors of the FA$\mu$ST,
\item \textbf{rcg} the Rational Complexity Gain, which represents the theoretical memory gain and multiplication speed-up of the FA$\mu$ST compared to the initial matrix . \item \textbf{rcg:} the targeted {\em Relative Complexity Gain}, which represents the theoretical memory gain and multiplication speed-up of the FA$\mu$ST compared to the initial matrix .
\\ \\\textbf{WARNING :} A trade-off exists between the RCG/speed-up of the FA$\mu$ST and the data fidelity to the input matrix. \\ \\\textbf{WARNING :} A trade-off exists between the targeted RCG/speed-up of the FA$\mu$ST and the achievable data fidelity to the input matrix. The higher the RCG, the higher the error of the FA$\mu$ST relative to the input matrix.
The higher the RCG, the higher the error of the FA$\mu$ST relative to the input matrix
\end{itemize} \end{itemize}
\lstset{style=customBash} \lstset{style=customBash}
...@@ -43,9 +42,9 @@ Then we factorize the matrix \textbf{A} into a FA$\mu$ST \textbf{Faust\_A} ...@@ -43,9 +42,9 @@ Then we factorize the matrix \textbf{A} into a FA$\mu$ST \textbf{Faust\_A}
\lstinputlisting[firstline=58,lastline=59,style=customMatlab]{../../misc/demo/Quick_start/factorize_matrix.m} \lstinputlisting[firstline=58,lastline=59,style=customMatlab]{../../misc/demo/Quick_start/factorize_matrix.m}
\section{FAuST installation using Optional GPU process}\label{sec:OptionalGPU} \section{Installing FAuST to enable GPU acceleration}\label{sec:OptionalGPU}
The toolbox FA$\mu$ST integrates optional Graphics Processing Unit (GPU) to improve its time performances. As a beta version, the FA$\mu$ST toolbox integrates optional GPU (Graphics Processing Unit) acceleration to improve its time performance.
\paragraph{Warning:} This optional GPU install has only be realized on a Linux machine. There is no guarantee that the installation and the use will be effective for every system. \paragraph{Warning:} Currently, this optional GPU install has only be implemented and tested on a Linux machine. There is no guarantee that the installation and the use will be effective for every system.
\begin{itemize} \begin{itemize}
\item \textbf{Install} the CUDA Toolkit from NVIDIA website:\\ \item \textbf{Install} the CUDA Toolkit from NVIDIA website:\\
...@@ -82,5 +81,5 @@ When prerequisities listed in Section \ref{sec:RequiredTools} are checked, you c ...@@ -82,5 +81,5 @@ When prerequisities listed in Section \ref{sec:RequiredTools} are checked, you c
\end{itemize} \end{itemize}
FA$\mu$ST Toolbox should be installed. Now, refer to Quick-Start Chapter \ref{sec:firstUse} to check the install and to try FA$\mu$ST toolbox \textbf{using GPU process}. The FA$\mu$ST Toolbox should be installed. Now, refer to Quick-Start Chapter \ref{sec:firstUse} to check the install and to try FA$\mu$ST toolbox \textbf{using GPU process}.
\documentclass[a4paper,11pt]{report} \documentclass[a4paper,11pt]{report}
\author{Adrien Leman; Nicolas Bellot} \author{Adrien Leman; Nicolas Bellot}
\title{Getting Started with FA$\mu$ST Toolbox \smallbreak "Flexible Approximate Multi-Layer Sparse Transforms" \bigbreak \def \FAuST {FA$\mu$ST}
\title{Getting Started with the FA$\mu$ST Toolbox \smallbreak "Flexible Approximate Multi-Layer Sparse Transforms" \bigbreak
\bigbreak \bigbreak
\centerline{\includegraphics[scale=0.1]{images/logo.png}} \centerline{\includegraphics[scale=0.1]{images/logo.png}}
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment