Mercurial > hg > Papers > 2009 > gongo-master
changeset 10:cd28a12aa36a
add Texture Hash and Scaling effect
line wrap: on
line diff
--- a/paper/cerium.tex Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/cerium.tex Fri Feb 13 18:29:33 2009 +0900 @@ -685,6 +685,37 @@ 現在、SPE 上で保存する Tile は 128 個としている。 領域は \verb+global_alloc()+ (\ref{sec:tm_sm_global} 節)で確保する。 +ここで、SPE 上で保存する Tile の数を変化させることによって +レンダリングの実行速度がどのように変化するかを実験した。 +使用する画像は \figref{cerium_hash_test} を用いる。 + +\begin{figure}[htb] + \begin{center} + \includegraphics[scale=0.5]{images/cerium_scale_test1.pdf} + \caption{Texture 例題 (512x384)} + \label{fig:cerium_hash_test} + \end{center} +\end{figure} + +\begin{table}[htb] + \begin{center} + \caption{SPE 上での Tile 管理数による実行速度比較} \label{tab:cerium_hash_test} + \hbox to\hsize{\hfil + \begin{tabular}{c|l} \hline \hline + Tile 保存数 & 実行速度 (FPS) \\ \hline + \hline + 1 & 11.051374 \\ \hline + 128 & 29.411765 \\ \hline + \end{tabular}\hfil} + \end{center} +\end{table} + +\tabref{cerium_hash_test} より、 +SPE 上で保存する Tile の数を増やすことにより +テクスチャのヒット率が上昇し、DMA 転送回数が減ることで +実行速度が向上することがわかる。 + + \subsection{Texture の縮小} \label{sec:cerium_rendering_texture_scale} 遠くにいるオブジェクトに対して、原寸のテクスチャを貼る必要はなく、 @@ -739,6 +770,7 @@ 以下が、Span で使用するテクスチャの scale を求め、その scale にあった Tapestry を決定するコードである。 +{\small \begin{verbatim} /** * span の width,height と texture の width,height を比べて @@ -807,12 +839,54 @@ return addr_top + index; } \end{verbatim} +} \figref{cerium_rendering_tex_tapestry} を見てわかるように 縮小すれば Tile の数は減るので、Span に必要な Tile の数も抑えられる。 そのことにより、SPE 上での Tile の入れ替えも少なくなり、 Tile のヒット率も上昇する。 +\figref{cerium_scale_test} が、実際にテクスチャの縮小を行った結果である。 +画像は \figref{cerium_hash_test} と同じ物を使う。 +この画像の scale\_max は 16 となる。 +左が通常(1/1)のテクスチャを用いた図、右が scale\_max (1/16) のテクスチャを +用いた図である。 + +\figref{cerium_scale_test} を実際にレンダリングし、その実行速度を +\tabref{cerium_scale_test} に示す。 + +\begin{figure}[htb] + \begin{center} + \begin{tabular}{cc} + \begin{minipage}[t]{.45\hsize} + \includegraphics[scale=0.40]{images/cerium_scale_test1.pdf} + \end{minipage} + \begin{minipage}[t]{.45\hsize} + \includegraphics[scale=0.40]{images/cerium_scale_test2.pdf} + \end{minipage} + \end{tabular} + \caption{Texture Scaling の結果 左:1/1、右:1/16} + \label{fig:cerium_scale_test} + \end{center} +\end{figure} + +\begin{table}[htb] + \begin{center} + \caption{Texture Scaling による実行速度比較} \label{tab:cerium_scale_test} + \hbox to\hsize{\hfil + \begin{tabular}{c|l} \hline \hline + Scale & 実行速度 (FPS) \\ \hline + \hline + 1 (\figref{cerium_scale_test} 左) & 29.411765 FPS \\ \hline + 16 (\figref{cerium_scale_test} 右) & 64.643800 FPS \\ \hline + \end{tabular}\hfil} + \end{center} +\end{table} + +\tabref{cerium_scale_test} より、 +Texture の Scaling によって、 +実行速度を向上させる効果があることがわかる。 + \subsection{Rendering (DrawSpan)} \label{sec:cerium_rendering_draw_span} 現在、PlayStation 3 の GPU にアクセスする API は公開されていないため、 @@ -927,7 +1001,6 @@ タスク終了後、linebuf をフレームバッファに DMA 転送することで、描画が完了する。 - \section{Cerium を用いた学生によるゲーム開発} \label{sec:cerium_student} \figref{cerium_game_1} は、学生が Cerium を実際に
--- a/paper/conclusion.tex Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/conclusion.tex Fri Feb 13 18:29:33 2009 +0900 @@ -55,13 +55,17 @@ また、コンパイラの最適化により、自動的に SIMD 演算に変換されるような データ構造を採用するのも効果的だと考えている。 -\subsection{テクスチャのロードアルゴリズム} +\subsection{SPE 上でのテクスチャデータの管理} \ref{sec:cerium_rendering_texture_hash}節 で述べたように、 現在テクスチャの追い出し処理は FIFO で実装している。 そのため、テクスチャのヒット率が確保できない可能性がある。 高いヒット率を維持するためには、さらに効果的な追い出し法を採用する必要がある。 + また、同じテクスチャを使う Span を同じ SPE に集めるなどの、 データ構造や SPE への割り振り処理を修正する必要がある。 +テクスチャの圧縮による、SPE 上のテクスチャデータの保存数を増やすことも +効果的だと考えられる。 + %\subsection{コードの入れ替え}
--- a/paper/images/amdahl.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/amdahl.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./amdahl.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 360 252 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cell_arch.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cell_arch.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_arch.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 505 339 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cell_mailbox.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cell_mailbox.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_mailbox.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 514 342 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cell_ppe.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cell_ppe.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_ppe.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 370 327 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cell_simd.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cell_simd.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_simd.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 402 261 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cell_spe.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cell_spe.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spe.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 380 340 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cell_spurs_pipeline.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cell_spurs_pipeline.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spurs_pipeline.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 533 187 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cell_spurs_task.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cell_spurs_task.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spurs_task.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 507 229 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_game_1.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_game_1.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_game_1.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 1920 1080 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_game_sg.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_game_sg.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_game_sg.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 491 207 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_rendering_draw_span.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_rendering_draw_span.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_draw_span.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 591 313 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_rendering_half.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_rendering_half.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_half.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 372 274 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_rendering_spack.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_rendering_spack.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_spack.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 533 319 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_rendering_span.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_rendering_span.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_span.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 413 247 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_rendering_span_tex.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_rendering_span_tex.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_span_tex.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 408 420 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_rendering_tex_tapestry.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_rendering_tex_tapestry.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_tex_tapestry.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 563 305 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_rendering_tile.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_rendering_tile.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_tile.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 510 385 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/cerium_scale_test1.bb Fri Feb 13 18:29:33 2009 +0900 @@ -0,0 +1,5 @@ +%%Title: ./cerium_scale_test1.pdf +%%Creator: ebb Version 0.5.2 (+ArtBox) +%%BoundingBox: 0 0 500 372 +%%CreationDate: Fri Feb 13 18:23:06 2009 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/cerium_scale_test2.bb Fri Feb 13 18:29:33 2009 +0900 @@ -0,0 +1,5 @@ +%%Title: ./cerium_scale_test2.pdf +%%Creator: ebb Version 0.5.2 (+ArtBox) +%%BoundingBox: 0 0 498 374 +%%CreationDate: Fri Feb 13 18:23:06 2009 +
--- a/paper/images/cerium_sg_create.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_sg_create.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_sg_create.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 487 228 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_sg_createlist.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_sg_createlist.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_sg_createlist.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 557 496 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_sg_example.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_sg_example.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_sg_example.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 625 466 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_sg_tree.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_sg_tree.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_sg_tree.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 425 274 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cerium_task.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cerium_task.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_task.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 470 535 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/com_gallium.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/com_gallium.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./com_gallium.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 1920 1080 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/cp_opencl_plat.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/cp_opencl_plat.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cp_opencl_plat.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 510 237 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/manycore_data_split.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/manycore_data_split.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./manycore_data_split.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 587 154 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/manycore_step.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/manycore_step.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./manycore_step.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 549 335 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_scheduler.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_scheduler.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_scheduler.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 517 562 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_sm_global.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sm_global.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_global.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 523 364 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_sm_pipeline_wait.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sm_pipeline_wait.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_pipeline_wait.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 395 213 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/tm_sm_pipeline_wait2.bb Fri Feb 13 18:29:33 2009 +0900 @@ -0,0 +1,5 @@ +%%Title: ./tm_sm_pipeline_wait2.pdf +%%Creator: ebb Version 0.5.2 (+ArtBox) +%%BoundingBox: 0 0 560 124 +%%CreationDate: Fri Feb 13 18:23:06 2009 +
--- a/paper/images/tm_sm_rbuf.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sm_rbuf.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_rbuf.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 405 225 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_sm_state.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sm_state.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_state.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 370 342 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_sm_wbuf.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sm_wbuf.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_wbuf.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 505 487 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_sort.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sort.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sort.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 553 371 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_sort_calc.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sort_calc.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sort_calc.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 360 216 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_sort_calc1m.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sort_calc1m.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sort_calc1m.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 360 216 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_sync.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_sync.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sync.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 577 554 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_task_depend.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_task_depend.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_task_depend.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 527 383 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_task_post.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_task_post.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_task_post.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 335 388 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/images/tm_task_struct.bb Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/images/tm_task_struct.bb Fri Feb 13 18:29:33 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_task_struct.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 591 364 -%%CreationDate: Tue Feb 10 14:06:13 2009 +%%CreationDate: Fri Feb 13 18:23:06 2009
--- a/paper/taskmanager.tex Tue Feb 10 14:06:39 2009 +0900 +++ b/paper/taskmanager.tex Fri Feb 13 18:29:33 2009 +0900 @@ -718,9 +718,10 @@ 特にユーザが触れることが一番多い機能である。 ここでは、実際に TaskManager を用いて学生に並列プログラミングを行ってもらい、 -その結果と学生の総評から、TaskManager の評価を述べる。 +その結果と学生からの評価、さらにパイプライン実行による効果を検証し、 +TaskManager の評価を述べる。 -\subsection{並列ソーティングプログラム} +\subsection{並列ソーティングプログラム} \label{tm_sort} 今回は整数のデータをソートするプログラムを学生に記述してもらった。 SPE のメモリ領域(LS) は 256KB と少ないため、 @@ -761,6 +762,52 @@ SPE 6個の台数効果が 5.1 となり、理論値にはおよばないものの、 充分な台数効果が出ていると言える。 +\section{パイプライン実行による並列度の検証} + +\figref{tm_sm_pipeline_wait} で示したように、CPU スレッドでは +read()、exec()、write() のステージをパイプラインで実行している。 +この時、exec() を read() や write() の DMA 転送中に実行せず、 +転送完了後に実行すればパイプライン実行による効果は現れない +(\figref{tm_sm_pipeline_wait2})。 + +\begin{figure}[htb] + \begin{center} + \includegraphics[scale=0.8]{images/tm_sm_pipeline_wait2.pdf} + \caption{\figref{tm_sm_pipeline_wait} でパイプライン実行を行わない場合のCPU スレッド 処理} + \label{fig:tm_sm_pipeline_wait2} + \end{center} +\end{figure} + +そこで、\ref{tm_sort} 節の Sort プログラムを用いて、 +パイプライン実行を行った場合とそうでない場合の実行速度を比較した。 +SPE の数は 1 個とし、ソートする整数は 100 万とした。 +結果を \tabref{tm_sm_pipeline_wait2} に示す。 + +\begin{table}[htb] + \begin{center} + \caption{パイプライン実行の有無による速度の比較} \label{tab:tm_sm_pipeline_wait2} + \hbox to\hsize{\hfil + \begin{tabular}{c|c} \hline \hline + 環境 & 実行速度 (sec) \\ \hline \hline + パイプライン実行 & 1079.885128 \\ \hline + パイプライン非実行 & 1084.194156 \\ \hline + \hline + \end{tabular} +% \begin{tabular}{c|c} \hline \hline +% 速度差 & 参考 (16KB DMA 実行時間)\\ \hline \hline +% 4.309028 sec & 0.204330 (msec) \\ \hline +% \hline +% \end{tabular}\hfil} + \hfil} + \end{center} +\end{table} + +速度差は約 4.3 秒となった。 +研究環境では、ソートのブロックサイズである 16KB の DMA 転送時間は +0.204330 msec を示したため、$4.309028 (sec) / 0.204330 (msec) = 21088 回$ の +DMA 転送回数を隠蔽できたことになる。 + + \subsection{画像の拡大縮小回転、色の変換} 変換を行う画像の読み込みは SDL \cite{sdl} を使用しており、