comparison evaluations.tex @ 4:30c102343b37

modify gcc. fix references.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Sat, 06 Feb 2010 18:28:43 +0900
parents 50e23a4b2f40
children dfb89e32eea1
comparison
equal deleted inserted replaced
3:d2999e94b97d 4:30c102343b37
137 \end{itemize} 137 \end{itemize}
138 なお、mcはmips,armにも対応しているが、現在その処理系が用意できなかった 138 なお、mcはmips,armにも対応しているが、現在その処理系が用意できなかった
139 ので割愛している。また、GCC-4.2.3ベースコンパイラはppcでは実行不能であ 139 ので割愛している。また、GCC-4.2.3ベースコンパイラはppcでは実行不能であ
140 ったためx86のみとなる。 140 ったためx86のみとなる。
141 141
142 各評価マシンの詳細は付録\ref{sec:}に掲載する。 142 各評価マシンの詳細は付録\ref{sec:machine-specs}に掲載する。
143 143
144 %gccのコンパイルでは``-O2 -fomit-pointer''の最適化を付加して測定している。 144 %gccのコンパイルでは``-O2 -fomit-pointer''の最適化を付加して測定している。
145 % noreturnもON. 145 % noreturnもON.
146 % x86ではfastcallもON, 146 % x86ではfastcallもON,
147 147
148 \subsection{評価結果} 148 \subsection{評価結果}
149 実効速度の測定結果を表\ref{tab:eval-speed}に示す。 149 実効速度の測定結果を表\ref{tab:speed-mc-vs-gcc}に示す。
150 ただし環境毎にCPU速度は異なるので、上下の比較には意味はない。 150 ただし環境毎にCPU速度は異なるので、上下の比較には意味はない。
151 % -O2で約10秒になる要素数を選んだ方がいいかもしれない 151 % -O2で約10秒になる要素数を選んだ方がいいかもしれない
152 \begin{table}[htpb] 152 \begin{table}[htpb]
153 \centering 153 \centering
154 \begin{tabular}{|c|c|c|c|c|} \hline 154 \begin{tabular}{|c|c|c|c|c|} \hline
160 ppc/OS X &14.875 & 2.146 & 2.170 & 4.811 \\ \hline 160 ppc/OS X &14.875 & 2.146 & 2.170 & 4.811 \\ \hline
161 ppc/Linux &19.793 & 3.955 & 4.013 & 6.454 \\ \hline 161 ppc/Linux &19.793 & 3.955 & 4.013 & 6.454 \\ \hline
162 ppc/PS3 &39.176 & 5.874 & 6.111 &11.121 \\ \hline 162 ppc/PS3 &39.176 & 5.874 & 6.111 &11.121 \\ \hline
163 \end{tabular} 163 \end{tabular}
164 \caption{アーキテクチャ毎のgccとmcの速度比較(単位: 秒)} 164 \caption{アーキテクチャ毎のgccとmcの速度比較(単位: 秒)}
165 \label{tab:eval-speed} 165 \label{tab:speed-mc-vs-gcc}
166 \end{table} 166 \end{table}
167 167
168 次に実行ファイルのstrip前のファイルサイズを表\ref{tab:eval-nostrip} 168 次に実行ファイルのstrip前のファイルサイズを表\ref{tab:eval-nostrip}
169 に、strip後のファイルサイズを表\ref{tab:eval-strip}に示す。 169 に、strip後のファイルサイズを表\ref{tab:eval-strip}に示す。
170 170
198 \end{tabular} 198 \end{tabular}
199 \caption{実行ファイルのファイルサイズ比較 stripped(単位: bytes)} 199 \caption{実行ファイルのファイルサイズ比較 stripped(単位: bytes)}
200 \label{tab:eval-strip} 200 \label{tab:eval-strip}
201 \end{table} 201 \end{table}
202 202
203 最後に、本研究での実装GCC-4.4.2と以前のバージョンGCC-4.2.3との比較であ 203 最後に、本研究での実装GCC-4.4.2と以前のバージョンGCC-4.2.3との比較を表
204 る。こちらはx86のみ、最適化も-Osは対応していない。 204 \ref{tab:speed-old-vs-new}に示す。こちらはx86のみ、最適化も-Osは対応し
205 ていない。
205 \begin{table}[htpb] 206 \begin{table}[htpb]
206 \centering 207 \centering
207 \begin{tabular}{|c|c|c|c|c|} \hline 208 \begin{tabular}{|c|c|c|c|c|} \hline
208 \multirow{2}{*}{ \backslashbox{CPU/OS}{コンパイラ} } 209 \multirow{2}{*}{ \backslashbox{CPU/OS}{コンパイラ} }
209 & \multicolumn{2}{c|}{CbC on GCC-4.4.2} & 210 & \multicolumn{2}{c|}{CbC on GCC-4.4.2} &
211 & -O0 & -O2 & -O0 & -O2 \\ \hline 212 & -O0 & -O2 & -O0 & -O2 \\ \hline
212 x86/OS X & 5.907 & 2.434 & 4.668 & 3.048 \\ \hline 213 x86/OS X & 5.907 & 2.434 & 4.668 & 3.048 \\ \hline
213 x86/Linux & 5.715 & 2.401 & 4.525 & 2.851 \\ \hline 214 x86/Linux & 5.715 & 2.401 & 4.525 & 2.851 \\ \hline
214 \end{tabular} 215 \end{tabular}
215 \caption{GCC-4.2.3ベースとGCC-4.4.2ベースの速度比較(単位: 秒)} 216 \caption{GCC-4.2.3ベースとGCC-4.4.2ベースの速度比較(単位: 秒)}
216 \label{tab:eval-speed} 217 \label{tab:speed-old-vs-new}
217 \end{table} 218 \end{table}
218 219
219 220
220 % ppcのが圧倒的に早い 221 % ppcのが圧倒的に早い
221 % x86ではあまりさはでない 222 % x86ではあまりさはでない
230 まずは速度面からこの測定結果を考察する。 231 まずは速度面からこの測定結果を考察する。
231 232
232 まずどのアーキテクチャにおいても、GCCの最適化が大きな速度差を生み出し 233 まずどのアーキテクチャにおいても、GCCの最適化が大きな速度差を生み出し
233 ている事が分かる。最適化なしと速度最適化を比較すると、x86では2.4倍、 234 ている事が分かる。最適化なしと速度最適化を比較すると、x86では2.4倍、
234 ppcでは5〜7倍もの差が生じている。 235 ppcでは5〜7倍もの差が生じている。
235 ただしppcのこの以上な速度差は\ref{ssec:}並列代入で示した様に、継続の引 236 ただしppcのこの以上な速度差は\ref{sec:impl-parallel}並列代入で示した様に、継続の引
236 数を全て一時変数に入れていることが大きい。その場合最適化なしではすべて 237 数を全て一時変数に入れていることが大きい。その場合最適化なしではすべて
237 の引数を一度メモリに確保するので、その分逆に遅くなっているのだと考えら 238 の引数を一度メモリに確保するので、その分逆に遅くなっているのだと考えら
238 れる。しかしながら最適化を有効にすることでそのメモリへの一時変数の確保 239 れる。しかしながら最適化を有効にすることでそのメモリへの一時変数の確保
239 も解消されるということが分かった。 240 も解消されるということが分かった。
240 241