Mercurial > hg > Papers > 2011 > yutaka-sigos
changeset 8:8a5b9b4ed2a1
add file
author | Yutaka_Kinjyo |
---|---|
date | Tue, 15 Mar 2011 18:56:51 +0900 |
parents | 20c53b35f2ab |
children | 11c331ded259 |
files | paper/ARC195OS117-32.pdf paper/ARC195OS117-32.tex paper/images/amdahl.bb paper/images/amdahl.pdf |
diffstat | 4 files changed, 59 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/ARC195OS117-32.tex Sun Mar 13 09:09:42 2011 +0900 +++ b/paper/ARC195OS117-32.tex Tue Mar 15 18:56:51 2011 +0900 @@ -186,12 +186,12 @@ \begin{table}[!htb] \begin{center} - \caption{1秒辺りの Rendering Engine 全体の処理回数} \label{tab:FPS} - \ecaption {Frame per Second} + \caption{MailQueue の効果(ball\_bound)} \label{tab:mailqueue} + \ecaption {Effect of MailQueue(ball\_bound)} \hbox to\hsize{\hfil \begin{tabular}{|c|l|l|c|} \hline & 改良前 & 改良後 & 性能\\ \hline - ball\_bound & 32.4 FPS & 41.3 FPS & 27\%向上 \\ \hline + ball\_bound & 29 FPS & 33.3 FPS & 15\%向上 \\ \hline \end{tabular}\hfil} \end{center} \end{table} @@ -210,22 +210,38 @@ 生じる可能性が減る。 Rendering Engine の中で、最も数が多く生成される DrawSpanTask を Task Array 化した。 -地球と月を表示する例題を対象に効果を測った。 FPS(Frame Per Second) は、一秒間に -表示できる Frame 数のことである。 +ボールが跳ねる例題(ball\_bound)、地球と月を表示する例題を対象に効果を測った。 FPS(Frame Per Second) は、一秒間に +表示できる Frame 数のことである。TaskArray は MailQueue と同様に Mail通知に関係している。 +それぞれの有無の場合を計測した。 + +\begin{table}[!htb] + \begin{center} + \caption{TaskArrayの効果(ball\_bound)} \label{tab:taskarray} + \ecaption {Effect of TaskArray(ball\_bound)} + \hbox to\hsize{\hfil + \begin{tabular}{|c|l|l|c|} \hline + & 改良前 & 改良後 & 性能\\ \hline + ball\_bound & 29 FPS & 34 FPS & 17\%向上 \\ \hline + \end{tabular}\hfil} + \end{center} +\end{table} \begin{table}[htb] \begin{center} - \caption{Rendering Engine の Task Array 化による比較} - \label{tab:rendering-taskarray-compare} - \begin{tabular}{|c|c|c|c|} + \caption{Task Array と MailQueue の効果(universe)} + \ecaption{Effect of TaskArray and MailQueue(universe)} + \label{tab:taskarray-mailqueue} + \begin{tabular}{|c|c|c|c|c|} \hline - & Task & Task Array & 向上率\\ + TaskArray & MailQueue & FPS & dma wait & mail wait\\ \hline - FPS & 16.4 & 18.5 \% & 34\%\\ + あり & あり & 20 FPS & 1.78\% & 67\&\\ + \hline + あり & なし & 18.5 FPS & 1.88\% & 69\%\\ \hline - dma wait & 3.34\% & 1.88\% & 2.34\%\\ + なし & あり & 18.5 FPS & 1.4\% & 74\%\\ \hline - mail wait & 84\% & 69\% & 15\% \\ + なし & なし & 16.4 FPS & 3.3\% & 84\%\\ \hline \end{tabular} \end{center} @@ -270,38 +286,29 @@ \begin{center} \includegraphics[scale=0.5]{./images/rend-dep.pdf} \end{center} - \caption{パイプライン化} + \caption{RenderingEngineのパイプライン化の様子} \label{fig:rend-dep} \end{figure} 速度比較の対象として、SuperDandy と呼ばれる、学生実験で制作されたシューティングゲームを用いた。 +FPS は一秒あたりの Rendering Engine 全体の処理回数 (Frame per Scecond)、busy ration はSPE の +稼働率。 + \begin{table}[!htb] \begin{center} - \caption{SPE の稼働率(busy\_ratio)} \label{tab:busy_ratio} - \ecaption{busy ration of spe} + \caption{PipeLine化の結果} \label{tab:busy_ratio} + \ecaption{result of use Pipeline} \hbox to\hsize{\hfil \begin{tabular}{|c|l|l|c|} \hline & 改良前 & 改良後 & 性能\\ \hline - dandy & 47.2\% & 78.1\% & 向上 \\ \hline + FPS & 29.4 FPS & 49.5 FPS & 68\%向上 \\ \hline + busy\_ration & 47.2\% & 78.1\% & 30.9\&向上 \\ \hline \end{tabular}\hfil} \end{center} \end{table} - -\begin{table}[!htb] - \begin{center} - \caption{1秒辺りの Rendering Engine 全体の処理回数} - \ecaption {Frame per Second} \label{tab:rend} - \hbox to\hsize{\hfil - \begin{tabular}{|c|l|l|c|} \hline - & 改良前 & 改良後 & 性能\\ \hline - dandy & 29.4 FPS & 49.5 FPS & 68\%向上 \\ \hline - \end{tabular}\hfil} - \end{center} -\end{table} - -パイプライン化した結果(\tabref{tab:busy_ratio},\tabref{tab:rend})、SPEの稼働率が向上し、FPSも向上した。 +パイプライン化した結果(\tabref{tab:busy_ratio})、SPEの稼働率が向上し、FPSも向上した。 処理性能を維持するには、SPEはなるべく稼働させ続けなければならない。 その為には処理をTaskに分割し、並列実行するだけでなく、バリア同期などで、 SPEの待ち時間が発生することへ対処しないといけない。 @@ -476,6 +483,22 @@ Coreの待ち時間を減らすことは、Coreの稼働率の向上につながり処理性能が向上する。 各Coreの待ち時間は並列プログラミングにおいて、特に注意しなければならない。 +それは、Amdahlの法則からも言える。 + +並列実行には Amdahl の法則(\cite{amdahl})があり、使用する CPU を増やしても、元のプログラムの並列化率 +が低ければ、その性能を活かすことができないとされている。例えば、プログラムの 8 割 +を並列化したとしても、6CPU で 3 倍程度の性能向上しか得られない(\figref{fig:amdahl}) + +\begin{figure}[htb] + \begin{center} + \includegraphics[scale=0.75]{images/amdahl.pdf} + \caption{Amdahl の法則} + \label{fig:amdahl} + \end{center} +\end{figure} + +このことから、恒常的に並列度を維持する必要があることが分かる。 + \section{今後の課題} @@ -488,6 +511,7 @@ データの依存関係をシステム側で監視し、その依存関係を元に処理を行うことでシステ ム側からの依存関係の記述が実現できる。もしくは、Taskの依存関係は別の言語で記述 し、TaskManager がその記述に沿って、定義されたTaskの実行する方法も考えられる。 +また、TaskArrayもTaskとデータの依存関係から、自動で作成できると考える。 \subsection{Code Load} SPE は LS 以外のメモリに