changeset 8:68dd062a0b44

write
author Yutaka_Kinjyo
date Fri, 27 Aug 2010 16:38:54 +0900
parents dcffce1dcec8
children b781dc4132f8
files jssst.tex
diffstat 1 files changed, 47 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/jssst.tex	Fri Aug 27 15:28:31 2010 +0900
+++ b/jssst.tex	Fri Aug 27 16:38:54 2010 +0900
@@ -254,15 +254,43 @@
 \end{table}
 \vspace{-5mm}
 
-TaskArrayの効果は見られなかった。その原因はおそらくWordCountの場合はPPE側のTaskがないので、依存関係の解決にあまり待ち時間が発生しないからだと考える。また、WordCountにおいてはファイルをメモリにマッピングするので、ファイルの容量が大きい場合に大量にメモリを消費してしまう。その結果スワップが起きやすくなり、dma転送の待ち時間が長くなっている可能性がある。この解決として、一度にファイル全てをマッピングするのではなく、何回かに切り分けてマッピンするのがよいと考える。ある程度のWordCountし終わった領域に、次のWordCount領域を入れ替えて使うことでメモリを節約でき、スワップを減らすことができるはずである。その結果メモリアクセスが高速になり、dma転送の待ち時間も削減できると考える。
+TaskArrayの効果は見られなかった。その原因はおそらくWordCountの場合はPPE側のTaskがないので、依存関係の解決にあまり待ち時間が発生しないからだと考えられる。また、WordCountにおいてはファイルをメモリにマッピングするので、ファイルの容量が大きい場合に大量にメモリを消費してしまう。その結果スワップが起きやすくなり、dma転送の待ち時間が長くなっている可能性がある。この解決として、一度にファイル全てをマッピングするのではなく、何回かに切り分けてマッピンするのがよい。ある程度のWordCountし終わった領域に、次のWordCount領域を入れ替えて使うことでメモリを節約でき、スワップを減らすことができるはずである。その結果メモリアクセスが高速になり、dma転送の待ち時間も削減できる。
+
+\subsection{レンダリングのTask}
+
+レンダリングエンジンは主に、CreatePolygon、CreateSpan、DrawSpanという3つのTaskから構成されている。
+それぞれのTaskの動作とレンダリングの流れを示す。
 
+{\small
+\begin{enumerate}
+ \item CreatePolygonTaskによってSceneGraphをもとにモデリングデータから、実際に表示するポリゴンを生成する。
+ \item CreateSpanTaskで生成したポリゴンからSpanの生成する。
+ \item DrawSpanTaskでSpanをRGBにマッピングし描画する。
+ここでいうSpanとは、ポリゴンに対するある特定のY座標に関するデータを抜き出したものである。
+\end{enumerate}
+}
+
+\begin{figure}[htbp]
+  \begin{center}
+    \scalebox{0.3}{\includegraphics{pic/rendering3.pdf}}
+    \caption{レンダリングエンジンの流れ} \label{rendering}
+  \end{center}
+\end{figure}
 
 
 \subsection{レンダリングエンジンのTaskArray化}
 
-
+レンダリングエンジンの中で、もっとも数が多く生成されるDrawSpanTaskをTaskArray化した。
+地球と月を表示する例題を対象に効果を検証した。FPS(Frame Per Second)は、一秒間に表示できる
+Frame数のことである。
 
-レンダリングエンジンは、PPE側で座標の計算や
+\begin{figure}[htbp]
+  \begin{center}
+    \scalebox{0.5}{\includegraphics{pic/lightearth.pdf}}
+    \caption{地球と月を表示する例題} \label{rendering}
+  \end{center}
+\end{figure}
+
 
 \vspace{5mm}
 \begin{table}[htb]
@@ -285,8 +313,20 @@
 \end{table}
 \vspace{-5mm}
 
+結果からDrawSpanTaskをTaskArray化すると、FPSが多くなり、mailのwait時間が減ったことがわかる。レンダリングエンジンでは、PPE側でも
+処理すべきTaskがあり、常にPPEが忙しい状態になっている。そのためmailを処理する時間が送れSPEのmail待ちが発生していると考えられる。
+TaskArray化でTaskをまとめることでSPEが1つのTaskListで多くのTaskを実行できるようになったため、TaskListを要求する回数が減って、待ち時間が発生する
+回数も減少した。またそれはSPEからのmailの数が減ったということなので、PPE側のmail処理の時間短縮になったと考えられる。
+
+
 \section{まとめと今後の課題}
-PPE側がTaskを実行して忙しいときに、mailの待ち時間の削減にTaskArrayが有効なことがわかった。
+今回はTaskを複数にまとめるTaskArrayを提案、実装し効果を測った。
+TaskArrayの効果があるのは、PPE側にも実行すべきTaskがありPPEが忙しい場合ということがわかった。WordCountでは、PPE側のTask
+がなく、mail待ちがネックではなく、TaskArrayの効果がなかった。大量のファイルをマッピングし、メモリを多く消費するのでメモリアクセス、
+dma転送に待ち時間があると考えられ、TaskArrayを用いてもうまくdma転送が隠れてないようだ。dma転送をスケジュールリングによって
+うまく隠す、またはメモリ領域の節約をすることができれば、今回のWordCountのような大量のデータを用いる場合の速度向上が期待できる。
+またSPEへTaskの均等に割り振ること、複数のSPEが一度にメインメモリのアクセスする場合、なるべく近くのメモリにアクセスするようにしたほうがよい。
+
 
 
 {\bf 謝辞}\
@@ -312,9 +352,9 @@
 %% \end{adjustvboxheight} % needed only when Appendix follows
 
 \appendix
-\section{付録: \LaTeX による論文作成のガイド} 
+%\section{付録: \LaTeX による論文作成のガイド} 
 
-ここに,以前の \verb|sample.tex| では,論文作成のガイドがあったが,
-その内容は \verb|guide.tex| に移動した.
+%ここに,以前の \verb|sample.tex| では,論文作成のガイドがあったが,
+%その内容は \verb|guide.tex| に移動した.
 
 \end{document}