From: Francis Russell Date: Wed, 5 Mar 2014 15:06:25 +0000 (+0000) Subject: Add slides on FFT boxes and what we did. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=3acf288cfd98b48e5c76aaa1d8687b7c8c581f6d;p=francis%2Fpsl_presentation_20140306.git Add slides on FFT boxes and what we did. --- diff --git a/images-svg/interpolation-naive.svg b/images-svg/interpolation-naive.svg new file mode 100644 index 0000000..3389d47 --- /dev/null +++ b/images-svg/interpolation-naive.svg @@ -0,0 +1,1038 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3D FFT + + Padding + + 3D Inverse-FFT + CoarseRepresentation + CoarseFrequencyRepresentation + FineFrequencyRepresentation + FineRepresentation + + diff --git a/images-svg/interpolation-onetep.svg b/images-svg/interpolation-onetep.svg new file mode 100644 index 0000000..cbfb913 --- /dev/null +++ b/images-svg/interpolation-onetep.svg @@ -0,0 +1,1501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1D Inverse FFTsin Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1D Inverse FFTsin Y + + 1D Inverse FFTsin X + + diff --git a/images-svg/per-dimension-interpolation.svg b/images-svg/per-dimension-interpolation.svg new file mode 100644 index 0000000..b7eba34 --- /dev/null +++ b/images-svg/per-dimension-interpolation.svg @@ -0,0 +1,757 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interpolatein Z + + Interpolatein Y + + Interpolatein Y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interpolatein X + + + Interpolatein X + + Interpolatein X + + Interpolatein X + InputData + + diff --git a/images-svg/simulation_cell.svg b/images-svg/simulation_cell.svg new file mode 100644 index 0000000..ad2ded6 --- /dev/null +++ b/images-svg/simulation_cell.svg @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + α + + + + β + + + + simulation cell + FFT box + zero padding region + bra function + ket function + + + + + + + diff --git a/presentation.tex b/presentation.tex index 3129bc8..aa6b427 100644 --- a/presentation.tex +++ b/presentation.tex @@ -8,6 +8,7 @@ \usepackage{tikz} \usepackage{ucs} \usepackage{alltt} +\usepackage{subfig} \usepackage[utf8x]{inputenc} \usepackage{tabularx} @@ -47,6 +48,76 @@ like to generate even existed. } +\frame{ + +\frametitle{FFT boxes} + +Many of ONETEP's calculations occur in spatially restricted, periodic regions +called FFT boxes. + +\begin{center} + +\resizebox{0.7\textwidth}{!}{ +\includegraphics{images-svg/simulation_cell} +} + +\end{center} + +One of the most computationally expensive operations in ONETEP is interpolation +of data on a regular, periodic, three-dimensional grid to 8x the original size. + +} + +\frame{ + +\frametitle{What we did} + +We looked at different algorithmic approaches (with differing operation counts) +to performing interpolation using exising Fourier transform implementations. + +\begin{figure} + +\subfloat [Naïve Interpolation] { + \resizebox{!}{0.3\textheight}{\includegraphics{images-svg/interpolation-naive}} +} +\subfloat [Padding-Aware Interpolation] { + \resizebox{!}{0.3\textheight}{\includegraphics{images-svg/interpolation-onetep}} +} +\subfloat [Phase-Shift Interpolation (3D)] { + \resizebox{!}{0.3\textheight}{\includegraphics{images-svg/per-dimension-interpolation}} +} + +\end{figure} + +} + +\frame{ + +\frametitle{What we did} + +\begin{itemize} + +\item Built a C + library~\footnote{\url{https://github.com/FrancisRussell/resampling}} that + enabled us to explore the performance impact of different algorithmic and + platform-specific variations on the implementation of interpolation. + +\item Platform-specific variations in performance are influenced by multiple + factors and are hard to predict. The library times multiple implementations at + run-time and chooses the best one. + +\item We modified ONETEP to use our library and carried out benchmarks on a + number of problems, comparing against unmodified ONETEP. + +\item Even though Fourier interpolation only makes up at most 50\% of ONETEP's + executution time, we still manage to significantly impact ONETEP's overall + running time. + +\end{itemize} + +} + + \frame{ \frametitle{Speedups in ONETEP Fourier Routines}