
\begin{figure}[H]
	\centering
	\includegraphics[width=15cm]{report/results/amdsingle.PNG}
	\caption{AMD profiler \cite{amd} results of running 800x800x800 cube with a size 13 filter on a single core CPU}
	\label{amdsingle}
\end{figure}

The AMD profiler has been mentioned before in this report and has been used quite frequently while developing the CPU implementations as it helps to supervise memory and cache behavior. The profiler is developed by AMD \cite{amd} and is integrated in Microsoft Visual Studio 2008 Proffesional Edition. Below one can find Figures \ref{amdsingle} and \ref{amdmulti} taken from running the profiler and the results returned from both the single-core implementation and the quad-core implementation. Notice the close to zero miss rate for caches and prefetcher. The fields marked in these figures from left to right are memory misses, L1 and L2 misses, memory misses in precentage and the amount of mispredictions the prefetcher had during execution

\begin{figure}[H]
	\centering
	\includegraphics[width=15cm]{report/results/amdmulti.PNG}
	\caption{AMD profiler \cite{amd} results of running 800x800x800 cube with a size 13 filter on a quad-core CPU}
	\label{amdmulti}
\end{figure}

Other than using the AMD profiler, the CUDA visual profiler was used to analyze the GPU executions. The CUDA profiler is Developed by NVIDIA to analyze CUDA code run on their GPUs. The Profiler is able to illustrate the time used for copying data from host to device and vice versa, and the time used on running kernels. In the case of the Convolution kernel 96 \% of the time is used on convolution, which is not surprising since it is computationally demanding, and 4 \% of the time on copying memory back and forth from host and device. This is illustrated in Figure \ref{cudapro} where the conv\_kernel is the kernel used to convolute.

\begin{figure}[H]
	\centering
	\includegraphics[width=15cm]{report/results/cudapro.png}
	\caption{CUDA profiler \cite{nvidia_cuda} results of running 800x800x800 cube with a size 13 filter on a NVIDIA Tesla c 1060}
	\label{cudapro}
\end{figure}