Mercurial > hg > Papers > 2010 > kent-master
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 |