Mercurial > hg > Papers > 2008 > gongo-sigos
view compare.tex @ 8:b70a62630a57
*** empty log message ***
author | gongo |
---|---|
date | Tue, 25 Mar 2008 20:45:05 +0900 |
parents | bd8574dedd1b |
children | fea1ac32de27 |
line wrap: on
line source
\section{評価と考察} Cerium Rendering Engine を用いて、 OSMesa と同様に立方体を回転させる処理を評価する。 今回、\figref{fig-cerium} で示した Task に対する CPU の割り振りは \tabref{tab:hyoka1} とする。 \begin{table}[htbp] \caption{Task の実行 CPU} \label{tab:hyoka1} \hbox to\hsize{\hfil \begin{tabular}{c|l} \hline \hline Task & CPU \\ \hline SceneGraph to PolygonPack & PPE \\ Polygonpack to SpanPack & PPE \\ Rendering & SPE \\ \hline \end{tabular}\hfil} \end{table} PPE/SPE に対するコンパイルの最適化レベル及びその時の実行 FPS を \tabref{tab:hyoka2} に示す。描画領域は 640x80 である。 \begin{table}[htbp] \caption{Cerium 実行速度 (640x80)} \label{tab:hyoka2} \hbox to\hsize{\hfil \begin{tabular}{cc|l} \hline \hline PPE & SPE & FPS \\ \hline 最適化なし & 最適化なし & 263 FPS \\ -O2 & 最適化なし & 317 FPS \\ 最適化なし & -O2 & 812 FPS \\ -O2 & -O2 & 1355 FPS \\ \hline \end{tabular}\hfil} \end{table} \tabref{tab:hyoka2} より、SPE に対する最適化が非常に有効であるといえる。 また、描画領域の大きさと実行速度は反比例すると考えると、 1920x1080の時、OSMesa も合わせると \tabref{tab:hyoka3} のようになる。 \begin{table}[htbp] \caption{実行速度 (1920x1080)} \label{tab:hyoka3} \hbox to\hsize{\hfil \begin{tabular}{r|l|l} \hline \hline & 実行環境 & 実行速度\\ \hline 1 & SDL(1.2)+OSMesa(6.5.2) & 18 FPS \\ 2 & SDL(1.2)+OSMesa(6.5.2) with SPE & 24 FPS \\ 3 & SDL(1.2.13)+OSMesa(7.0.2) with SPE & 43 FPS \\ 4 & Cerium & 33 FPS \\ \hline \end{tabular}\hfil} \end{table} Cerium は 環境 3 の速度を下回っている。 この理由としては、SPE 上で動かしていない Task があるのが挙げられる。 現在、Cerium には DMA で SPE 上にプログラムをロードする機能を 実装していないため、必要なプログラムを入れ替えることができない。 そのため、現在は Renderer の Task だけを SPE 上にマッピングしてある。 また、Texture の分割と、Texture の必要な部分だけ DMA で 取得するという機能も実装されていない。 そのため、ここでは開始直後に Texture を全て SPE 上にロードしている。 Cerium の描画領域の横幅が 640 に抑えてあるのも、上記の問題が原因で 1920 pixel 分の Z Buffer を SPE 上に置くスペースが無いからである。 オーバーレイ機能を導入するという手法もあるが、 ロード中は SPE が止まってしまうため好ましくない。 また、パイプラインが正常に動いているかなど、 アルゴリズムの検証を行う必要もある。 この場合、C の下位言語である Continuation based C (CbC) を用いて、 開発過程の各段階で検証する手法がある \cite{kono} 。