view paper/fft_benchmark.tex @ 0:9e88a388ec83

first commit
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 05 Nov 2013 23:18:04 +0900
parents
children b7c8a956c10b
line wrap: on
line source

\section{Benchmark}\label{fft_benchmark}
続いて、フーリエ変換と周波数フィルタによる画像処理を行う例題を用いてベンチマークを行った。
512*512の画像を High Pass Filter で変換する例題である。

実験環境
\begin{itemize}
\item OS : MacOS 10.9
\item CPU : 2*2.66GHz 6-CoreIntel Xeon
\item Memory : 16GB
\item Compiler : Apple clang version 4.1 (based on LLVM 3.1svn)
\item GPU : AMD ATI Radeon HD 5870 1024MB
\end{itemize}

\subsection{Run Time}
\begin{tiny}
  \begin{table}[h]
    \begin{center}
      \caption{Run Time}
      \label{table:fft_runtime}
      \small
      \begin{tabular}[t]{c||r}
        \hline
        &Run Time \\
        \hline
        1 CPU&453 ms \\
        \hline
        2 CPU&261 ms \\
        \hline
        4 CPU&178 ms \\
        \hline
        8 CPU&117 ms \\
        \hline
        GPU&94 ms \\
        \hline
      \end{tabular}
    \end{center}
  \end{table}
\end{tiny}

表\ref{table:fft_runtime}は CPU,GPU 上,及び CPU + GPU 上で同時実行して比較を行った。
1 CPU を利用した場合と比較して,2 CPU では約 1.7 倍,GPU では約 4.8 倍の速度向上が見られる。しかしながら,8 CPU を利用した場合,4 CPU を利用した場合と比較して速度はあがっているが速度上昇率は約 1.5 倍に落ちている。これはアムダールの法則から,並列化率が低いために速度向上が頭打ちになっていると考えられる。

\subsection{Busy Time}
次に,RDTSC 命令を用い Busy Time の測定を行った。

\begin{tiny}
  \begin{table}[h]
    \begin{center}
      \caption{Busy Time}
      \label{table:fft_busytime}
      \small
      \begin{tabular}[t]{c||r|r}
        \hline
        &Time Stamp&Busy Time \\
        \hline
        1 CPU&1202282702&451 ms \\
        \hline
        2 CPU&687813186&258 ms \\
        \hline
        4 CPU&421398464&158 ms \\
        \hline
        8 CPU&265192153&99 ms \\
        \hline
        GPU&3532807&1.3 ms \\
        \hline
      \end{tabular}
    \end{center}
  \end{table}
\end{tiny}

CPU を利用した場合,表\ref{table:fft_runtime}とほぼ同様の結果が得られた。
しかしながら,GPU を利用した場合,Busy Time が 1.3 ms なのに対し,表\ref{table:fft_runtime}の Run Time は 94 ms となっている。この結果から,GPU 上で実行する場合,データの転送がネックになっていることがわかる。