Mercurial > hg > Papers > 2012 > yutaka-master
diff paper/chapter2.tex @ 5:b8d790bccfe7 draft
fix
author | Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 09 Feb 2012 04:31:13 +0900 |
parents | 6cf0f731cbde |
children | cb430c965050 |
line wrap: on
line diff
--- a/paper/chapter2.tex Wed Feb 08 21:49:40 2012 +0900 +++ b/paper/chapter2.tex Thu Feb 09 04:31:13 2012 +0900 @@ -459,27 +459,6 @@ を参照する場合、新たに DMA 転送を行わずに保存してある Tile を使用する。新たに Tile を参照し且つ領域に 空きが無い場合、 FIFO で Tile の入れ替えを行う。Tile の検索は、テクスチャのアドレスを key とし、 Tile を value としてハッシュを用いる。 -\begin{comment} -SPE 上で保存する Tile の数を変化させることによって、Rendering の実行速度がどのように変化するか -実験した(\figref{cerium_hash_test})。 - -\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 & &\\ \hline - 128 & &\\ \hline - \end{tabular}\hfil} - \end{center} -\end{table} - -\figref{cerium_hash_test} より、SPE 上で保存する Tile の数を増やすことによりテクスチャ -のヒット率が上昇し、DMA 転送回数が減ることで実行速度が向上するがわかる。 - -\end{comment} \subsection{Texture の縮小} \label{sec:cerium_scale} @@ -514,19 +493,37 @@ 転送コストの削減に繋がる。 この Texture hash の効果を示す。(\tabref{ball_bound})例題として、ball bound を使用した。 +解像度は 1980x1080 である。FPSは一秒あたりの RednderingEngine 全体の処理回数(Frame per Scecond)である。 \begin{table}[!htb] \begin{center} - \caption{キャッシュの効果(ball bound)} \label{tab:ball_bound} + \caption{Effect of cache(ball bound)} \label{tab:ball_bound} \hbox to\hsize{\hfil \begin{tabular}{|c|c|c|c|c|} \hline キャッシュ & FPS & DMA転送待ち時間 & mail待ちの割合 & SPE稼働率\\ \hline - なし & 24.6FPS & 5.5\% & 72.4\% & 22.1\% \\ \hline - あり & 27.2FPS & 1.8\% & 76.2\% & 22.0\% \\ \hline + なし & 24.6 & 5.5\% & 72.4\% & 22.1\% \\ \hline + あり & 27.2 & 1.8\% & 76.2\% & 22.0\% \\ \hline \end{tabular}\hfil} \end{center} \end{table} +DMA転送待ち時間が減り、FPSの向上が見られた。 + +続いて 解像度1980x1080の画面いっぱいに一枚の画像を描画する例題である panel で効果を測定した。 panel でのキャッシュの効果を示す(\tabref{cache_panel}) + +\begin{table}[!htb] + \begin{center} + \caption{Effect of cache(panel)} \label{tab:cache_panel} + \hbox to\hsize{\hfil + \begin{tabular}{|c|c|c|c|c|} \hline + キャッシュ & FPS & DMA転送待ち時間 & mail待ちの割合 & SPE稼働率\\ \hline + なし & 3.9 & 21.1\% & 13.2\% & 65.9\% \\ \hline + あり & 2.9 & 0.5\% & 9.9\% & 89.5\% \\ \hline + \end{tabular}\hfil} + \end{center} +\end{table} + +panel では使用する画像のサイズが大きいために、キャッシュの HIT するまでの時間がかかる。キャッシュの HIT 確認は SPE の稼働率に含まれるため、稼働率が向上している。キャッシュ HIT 時間が、DMA転送待ち時間の削減の効果よりも高いため、FPSが減少した結果になった。このようなケースでは、キャッシュを用いない方が、高いFPSが得られる。ball bound の場合は、小さな画像を用いてるため、キャッシュの効果が見られた。 \subsection{DrawSpanTask} \label{drawspan} @@ -558,7 +555,7 @@ \item バリア同期が完了し、PPE 側で次の Task が作られる時間 \end{itemize} -この二つの時間の間SPEの処理が止まり、処理性能の低下につながる。この待ち時間を回避するためには、Taskの粒度を下げる、他の SPE の処理完了を待っている SPE に、別の Task を割り当てる、等の方法がある。別の Task を割り当てるには Task の実行をパイプライン化する方法がある。そこで、特に3つの Task の中でも処理の重い DrawSpanTask と、CreatePolygonTask, CreateSpanTask の Task でパイプライン化を行っている。(\figref{rend-dep}) 速度比較の対象として、ball bound を用いる。FPSは一秒あたりの RednderingEngine 全体の処理回数(Frame per Scecond)であり、busy ration はSPEの稼働率である。(\tabref{pipeline_ballbound}) +この二つの時間の間SPEの処理が止まり、処理性能の低下につながる。この待ち時間を回避するためには、Taskの粒度を下げる、他の SPE の処理完了を待っている SPE に、別の Task を割り当てる、等の方法がある。別の Task を割り当てるには Task の実行をパイプライン化する方法がある。そこで、特に3つの Task の中でも処理の重い DrawSpanTask と、CreatePolygonTask, CreateSpanTask の Task でパイプライン化を行っている。(\figref{rend-dep}) 速度比較の対象として、レンダリング例題の ball bound と panel を用いる。(\tabref{pipeline_ballbound})(\tabref{pipeline_panel}) \begin{figure}[htb] \begin{center} @@ -570,12 +567,24 @@ \begin{table}[!htb] \begin{center} - \caption{パイプライン化の効果(ball bound)} \label{tab:pipeline_ballbound} + \caption{Effect of use pipeline(ball bound)} \label{tab:pipeline_ballbound} \hbox to\hsize{\hfil \begin{tabular}{|c|c|c|c|c|} \hline PipeLine & FPS & DMA転送待ち時間 & mail待ちの割合 & SPE稼働率\\ \hline - なし & 27.2FPS & 1.8\% & 76.2\% & 22.0\% \\ \hline - あり & 30.2FPS & 1.8\% & 74.3\% & 23.7\% \\ \hline + なし & 27.2 & 1.8\% & 76.2\% & 22.0\% \\ \hline + あり & 30.2 & 1.8\% & 74.3\% & 23.7\% \\ \hline + \end{tabular}\hfil} + \end{center} +\end{table} + +\begin{table}[!htb] + \begin{center} + \caption{Effect of use pipeline(panel)} \label{tab:pipeline_panel} + \hbox to\hsize{\hfil + \begin{tabular}{|c|c|c|c|c|} \hline + PipeLine & FPS & DMA転送待ち時間 & mail待ちの割合 & SPE稼働率\\ \hline + なし & 3.9 & 21.1\% & 13.2\% & 65.9\% \\ \hline + あり & 4.0 & 21.3\% & 11.1.\% & 67.6\% \\ \hline \end{tabular}\hfil} \end{center} \end{table} @@ -585,3 +594,5 @@ その為には処理をTaskに分割し、並列実行するだけでなく、バリア同期などで、 SPEの待ち時間が発生することへ対処しないといけない。 その対処の一つとしてそれにパイプライン化は有効である。 + +