view prepaper/Benchmark.tex @ 14:6d9c4f5f08bb

update abstract
author oc
date Tue, 17 Feb 2015 12:29:31 +0900
parents 16c5f065f7e7
children
line wrap: on
line source

\section{Benchmark}
本研究で実装した GpuScheduler および CudaScheduler を用いて、WordCountを測定する。

実験環境
\begin{itemize}
\item OS : MacOS 10.9.1
\item CPU : 2*2.66GHz 6-Core Intel Xeon
\item GPU : NVIDIA Quadro K5000 4096MB
\item Memory : 16GB 1333MHz DDR3
\item Compiler : Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
\end{itemize}

表:\ref{table:wc}は100MB のテキストファイルに対して WordCount を行なった場合の実行時間である。
\begin{table}[!h]
  \begin{center}
    \small
    \begin{tabular}[t]{c||r} \hline
      & Run Time \\ \hline
      1 CPU & 0.69s \\ \hline
      2 CPU & 0.35s \\ \hline
      4 CPU & 0.18s \\ \hline
      8 CPU & 0.09s \\ \hline
      12 CPU & 0.07s \\ \hline
      OpenCL(no pipeline) & 48.32s \\ \hline
      OpenCL(pipeline) & 46.74s \\ \hline
      OpenCL Data Parallel & 0.50s \\ \hline
      CUDA(no pipeline) & 55.71s \\ \hline
      CUDA(pipeline) & 53.30s \\ \hline
      CUDA Data Parallel & 0.73s \\ \hline
    \end{tabular}
  \end{center}
  \label{table:wc}
  \caption{WordCount}
\end{table}

パイプラインありの方が少しだけ実行結果が向上している。しかし、期待するほどの効果が出ていない。
これは図:\ref{fig:parallel_exec}のように綺麗なパイプラインで実行されていないことが考えられる。
綺麗なパイプラインで実行するためにはデータ転送と kernel の実行が同じ時間で終了することが望ましい。
また、まだ各 Operation の待ち方がおかしく待つ必要がない部分を待っている可能性もある。