# HG changeset patch # User Shohei KOKUBO # Date 1383603694 -32400 # Node ID 4ecae227af0ca61f41bb0df04cecd431d0d72881 # Parent 7bd8b3a075a2bb0597b806af8ebd4477cafe2ab4 write concurrency diff -r 7bd8b3a075a2 -r 4ecae227af0c paper/fft_benchmark.tex --- a/paper/fft_benchmark.tex Tue Nov 05 05:48:05 2013 +0900 +++ b/paper/fft_benchmark.tex Tue Nov 05 07:21:34 2013 +0900 @@ -32,14 +32,6 @@ \hline GPU&94 ms \\ \hline - GPU \& 1 CPU&542 ms \\ - \hline - GPU \& 2 CPU&357 ms \\ - \hline - GPU \& 4 CPU&256 ms \\ - \hline - GPU \& 8 CPU&180 ms \\ - \hline \end{tabular} \end{center} \end{table} @@ -47,7 +39,6 @@ 表\ref{table:fft_runtime}は CPU,GPU 上,及び CPU + GPU 上で同時実行して比較を行った。 1 CPU を利用した場合と比較して,2 CPU では約 1.7 倍,GPU では約 4.8 倍の速度向上が見られる。しかしながら,8 CPU を利用した場合,4 CPU を利用した場合と比較して速度はあがっているが速度上昇率は約 1.5 倍に落ちている。これはアムダールの法則から,並列化率が低いために速度向上が頭打ちになっていると考えられる。 -また,GPU \& 1 CPU を利用した場合,1 CPU を利用した場合と比較して約 0.8 倍の速度低下が見られる。これは各 Task に依存関係があり,交互に Task を割り振っているため CPU,GPU 間でのデータの転送が増えたことがネックになっていると考えられる。 \subsection{Busy Time} 次に,RDTSC 命令を用い Busy Time の測定を行った。 diff -r 7bd8b3a075a2 -r 4ecae227af0c paper/ipsj.pdf Binary file paper/ipsj.pdf has changed diff -r 7bd8b3a075a2 -r 4ecae227af0c paper/ipsj.tex --- a/paper/ipsj.tex Tue Nov 05 05:48:05 2013 +0900 +++ b/paper/ipsj.tex Tue Nov 05 07:21:34 2013 +0900 @@ -68,7 +68,7 @@ \input{cerium_gpu} % GPU上での実行の機構 \input{data_parallel} \input{fft_benchmark} -\input{benchmark1} +%\input{benchmark1} \input{scheduling} \input{conclusion} % まとめ %\input{manycore} % many core system diff -r 7bd8b3a075a2 -r 4ecae227af0c paper/scheduling.tex --- a/paper/scheduling.tex Tue Nov 05 05:48:05 2013 +0900 +++ b/paper/scheduling.tex Tue Nov 05 07:21:34 2013 +0900 @@ -5,6 +5,31 @@ 他にも、各アーキテクチャの得意とする計算が異なる事からも実行速度に差異が出ることが予想できる。 これらの事から、 CPU と GPU に対して均等に Task を割り振ると並列度は低くなる。 並列度を維持するためにアーキテクチャのコア数によってどちらかに優先して Task を振る必要がある。 +\subsection{Benchmark} +\begin{tiny} + \begin{table}[h] + \begin{center} + \caption{Run Time for Heterogeneous} + \label{table:fft_heterogeneous} + \small + \begin{tabular}[t]{c||r} + \hline + &Run Time \\ + \hline + GPU \& 1 CPU&542 ms \\ + \hline + GPU \& 2 CPU&357 ms \\ + \hline + GPU \& 4 CPU&256 ms \\ + \hline + GPU \& 8 CPU&180 ms \\ + \hline + \end{tabular} + \end{center} + \end{table} +\end{tiny} +表\ref{table:fft_heterogeneous}は,セクション\ref{fft_benchmark}で用いた例題を,CPU,GPU で Task を順番に割り振って同時実行して時間を測定を行った。 +GPU \& 1 CPU を利用した場合,表\ref{table:fft_runtime}の 1 CPU を利用した場合と比較して約 0.8 倍の速度低下が見られる。これは各 Task に依存関係があり,交互に Task を割り振っているため CPU,GPU 間でのデータの転送が増えたことがネックになっていると考えられる。 \subsection{Scheduling} Scheduling を行う際は、並列実行する Task を CPU と GPU で事前に一度実行し、実行速度を測定する。 それぞれの実行速度の割合で重みをつけて Task を振り分けていく。