123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- \section{Introduction}
- The main purpose of this document is to sum up the work done during the development of the project for the \textit{Advanced Operating Systems} course.
- \subsection{Problem statement}
- Quoting the project assignment of the project, the goal is to \textit{Compile a OpenCL runtime (pocl) on a ARM board. Run some benchmarks. Provide a comparison in terms of execution time, power/energy consumption.}\\
- Let's characterize more in detail the hardware and software used for the project.
- \subsection{Hardware}
- \label{sec:hardware}
- \subsubsection{ARM Board}
- The main ARM board used for the project is an \textbf{ODROID-XU3} produced by \textbf{Hardkernel co., Ltd.} \cite{hardkernelwebsite} provided by the \textbf{HEAP lab}.\\
- The specifics are:
- \begin{itemize}
- \item A CPU belonging to the \textbf{Arm big.LITTLE} series, in particular a Samsung Exynos5422 Cortex\texttrademark-A15 2Ghz and Cortex\texttrademark-A7 Octa core CPU.
- \item A \textbf{Mali-T628 MP6} GPU that is certified for OpenGL ES 3.1/2.0/1.1 and OpenCL 1.2 Full profile.
- \item This configuration of the board is equipped with \textbf{2Gbyte LPDDR3 RAM} PoP stacked.
- \end{itemize}
- You can visit the product page \cite{odroidxu3website} for further details on the hardware.\\
- I also used an \textbf{ODROID-XU4} of my own to advance in the completion of the project during the summer. I opted for this model since the previous model wasn't available from the producer, and the SOC platform (CPU and GPU) is identical with respect to the \textbf{ODROID-XU3}, except for small differences with ports and integrated peripherals, but I don't expect that this to influence the results of the benchmarks, also because the final results proposed here have been \textbf{always} produced with the board present in the \textbf{laboratory}.\\
- There is a small chance that problems may arise from the fact that I manly tested the auto-deployment scripts on my personal board during the summer when the University was closed. Keep that in mind if there are some problems with the deploy scripts, since it may simply be a difference on packages names or a broken dependency.
- \subsubsection{Power Measurement}
- For the energy consumption measurements I used the \textbf{Hardkernel Smart Power} \cite{power1website} provided me by the laboratory. I also had available an \textbf{Hardkernel Smart Power 2} \cite{power2website}, but unfortunately it wasn't compatible with the measurement software(detailed explanation on this in the software paragraph \ref{sec:smartpower}).
- \subsubsection{x86 Platform}
- The comparison of performances with the \textbf{x86} platform have been made on a Thinkpad X1 Carbon 3rd gen. that mounts and \href{https://ark.intel.com/products/85212/Intel-Core-i5-5200U-Processor-3M-Cache-up-to-2_70-GHz}{\textbf{Intel i5 5200U CPU}} and 8 GB of ram.
- \subsection{Software}
- In this section we will describe the software component used for the development of the project.
- \subsubsection{OS}
- For what concerns the OS used during the development, I used the \textbf{Ubuntu 16.04.2 Kernel 4.9} image downloaded from the \href{http://odroid.com/dokuwiki/doku.php?id=en:xu3_release_linux_ubuntu_k49}{Hardkernel site}. I used the suggested utility called \textbf{Etcher} \cite{etcherwebsite} to flash the image to the eMMC of the ODROID-XU4. I assume that also the flash of the ODROID-XU3 has been done in a similar way.
- \subsubsection{OpenCL Runtime}
- For the benchmarks we actually used two OpenCL runtimes. The one used for the integrated Mali GPU is provided in the distribution repositories directly by the Hardkernel developers, and can be installed via the \textbf{mali-fbdev} package.\\
- Instead for the CPU platform we manually fetched and compiled the runtime provided by the \textbf{Portable Computing Language (\textbf{pocl})} \cite{poclwebsite} work group, \href{http://portablecl.org/downloads/pocl-0.14.tar.gz}{version 0.14}.
- \subsubsection{Benchmark Suite}
- The benchmark suite used is the \href{https://www.cs.virginia.edu/~skadron/wiki/rodinia/index.php/Rodinia:Accelerating_Compute-Intensive_Applications_with_Accelerators}{\textbf{Rodinia Benchmark Suite}, version 3.1}. This suite includes a lot of benchmarks specifically designed for systems that provide accelerators, and thus belong to the \textbf{heterogeneous computer systems} category. In fact the benchmarks provides parallelization features for three of the main parallel computing paradigms, that are \textbf{OpenMP, CUDA, and OpenCL}. We will of course use only the OpenCL benchmarks. The project has been started and it is mantained by the Computer Science Department of \textbf{University of Virginia} \cite{virginiawebsite}.
- \subsubsection{Result Analysis}
- For what concerns the gathering and the analysis of the results obtained from the run of the benchmarks, I mainly take advantage of \textbf{Bash} and \textbf{Python(v2)} scripts to collect the results, and also of \textbf{Gnuplot} \cite{gnuplotwebsite} to create graphs representing the results.
- \pagebreak
|