Mercurial > hg > Papers > 2009 > tkaito-sigos
changeset 15:599e461dcb09
chapter "compare" add
author | admin@mb22-no-macbook.local |
---|---|
date | Mon, 23 Mar 2009 01:52:05 +0900 |
parents | 08e4a7952793 |
children | d1e6ef9c38dc |
files | paper/ARC183OS111-39.tex paper/compare.tex paper/rendering.tex |
diffstat | 3 files changed, 111 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/ARC183OS111-39.tex Mon Mar 23 00:05:42 2009 +0900 +++ b/paper/ARC183OS111-39.tex Mon Mar 23 01:52:05 2009 +0900 @@ -1,1 +1,1 @@ -\documentclass{ipsjpapers} \usepackage[dvipdfm]{graphicx} \usepackage{url} %\input{dummy.tex} %% Font % 巻数,号数などの設定 \setcounter{volume}{50} \setcounter{number}{2} \setcounter{volpageoffset}{1234} \received{2008}{9}{17} \accepted{2008}{11}{28} % ユーザが定義したマクロなど. \makeatletter \let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY} \def\<{\(\langle\)\nobreak} \def\>{\nobreak\(\rangle\)} %\def\|{\verb|} \def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline} \def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\} \def\LATEX{\iLATEX\Large} \def\LATEx{\iLATEX\normalsize} \def\LATex{\iLATEX\small} \def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX} \def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi} \def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi} \def\Quote{\list{}{}\item[]} \let\endQuote\endlist \def\TT{\if@LaTeX@e\tt\fi} \def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else $\backslash$#1\fi} %\checklines % 行送りを確認する時に使用 \begin{document}%{ % 和文表題 \title{Cell Task Manager Cerium のSPU内データ管理} %%\title[{\protect\LaTeX} による論文作成のガイド]%{{\protect\LATEX} による論文作成のガイド(第7.1版)} % 英文表題 \etitle{} % 所属ラベルの定義 \affilabel{1}{琉球大学理工学研究科情報工学専攻 \\Interdisciplinary Infomation Engineering, Graduate School of Engineering and Science, University of the Ryukyus.} \affilabel{2}{琉球大学工学部情報工学科\\Infomation Engineering, University of the Ryukyus.} \affilabel{3}{琉球大学理工学研究科情報工学専攻 \\Interdisciplinary Infomation Engineering, Graduate School of Engineering and Science, University of the Ryukyus.} \affilabel{4}{琉球大学工学部情報工学科\\Infomation Engineering, University of the Ryukyus.} % 和文著者名 \author{ 多賀野海人\affiref{4}\and 宮國 渡\affiref{1}\and 河野 真治\affiref{2}\and 小林佑亮\affiref{4} } % 英文著者名 \eauthor{ Kaito TAGANO\affiref{4}\and Wataru MIYAGUNI\affiref{1}\and Shinji KONO\affiref{2}\and Yusuke KOBAYASHI\affiref{4} } % 和文概要 \begin{abstract} PlayStation 3 では、 搭載されている Linux を用いてゲームを開発することができるが、 GPU の詳細が公開されていないため、 Frame Buffer 上に描画する必要がある。 Frame Buffer 上の描画は非常に低速である。 本研究では Cell 用の Task Manager を実装し、 Frame Buffer 上で高速な 3D Graphics Renderer を開発する。 \end{abstract} \begin{eabstract} % 英文概要 In PS3, the game can be developed by using installed Linux. However, because details of GPU are unpublished, it is necessary to draw on Frame Buffer. Drawing on Frame Buffer is very low-speed. In this research, we implement Task Manager for Cell and develop 3D Graphics Renderer high-speed on Frame Buffer. \end{eabstract} % 表題などの出力 \maketitle %}{ % 本文はここから始まる \input{introduction} % 研究目的 \input{cell} % Cell \input{cerium} % Cerium \input{rendering} % 開発過程 \input{compare} % 評価と考察 \input{conclusion} % まとめ \nocite{kono} \nocite{libspe2} \bibliographystyle{ipsjunsrt} \bibliography{sigos} \end{document} \ No newline at end of file +\documentclass{ipsjpapers} \usepackage[dvipdfm]{graphicx} \usepackage{url} %\input{dummy.tex} %% Font % 巻数,号数などの設定 \setcounter{volume}{50} \setcounter{number}{2} \setcounter{volpageoffset}{1234} \received{2008}{9}{17} \accepted{2008}{11}{28} % ユーザが定義したマクロなど. \makeatletter \let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY} \def\<{\(\langle\)\nobreak} \def\>{\nobreak\(\rangle\)} %\def\|{\verb|} \def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline} \def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\} \def\LATEX{\iLATEX\Large} \def\LATEx{\iLATEX\normalsize} \def\LATex{\iLATEX\small} \def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX} \def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi} \def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi} \def\Quote{\list{}{}\item[]} \let\endQuote\endlist \def\TT{\if@LaTeX@e\tt\fi} \def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else $\backslash$#1\fi} %\checklines % 行送りを確認する時に使用 \begin{document}%{ % 和文表題 \title{Cell Task Manager Cerium のSPU内データ管理} %%\title[{\protect\LaTeX} による論文作成のガイド]%{{\protect\LATEX} による論文作成のガイド(第7.1版)} % 英文表題 \etitle{} % 所属ラベルの定義 \affilabel{1}{琉球大学理工学研究科情報工学専攻 \\Interdisciplinary Infomation Engineering, Graduate School of Engineering and Science, University of the Ryukyus.} \affilabel{2}{琉球大学工学部情報工学科\\Infomation Engineering, University of the Ryukyus.} \affilabel{3}{琉球大学理工学研究科情報工学専攻 \\Interdisciplinary Infomation Engineering, Graduate School of Engineering and Science, University of the Ryukyus.} \affilabel{4}{琉球大学工学部情報工学科\\Infomation Engineering, University of the Ryukyus.} % 和文著者名 \author{ 多賀野海人\affiref{4}\and 宮國 渡\affiref{1}\and 河野 真治\affiref{2}\and 小林佑亮\affiref{4} } % 英文著者名 \eauthor{ Kaito TAGANO\affiref{4}\and Wataru MIYAGUNI\affiref{1}\and Shinji KONO\affiref{2}\and Yusuke KOBAYASHI\affiref{4} } % 和文概要 \begin{abstract} PlayStation 3 では、 搭載されている Linux を用いてゲームを開発することができるが、 GPU の詳細が公開されていないため、 Frame Buffer 上に描画する必要がある。 Frame Buffer 上の描画は非常に低速である。 本研究では Cell 用の Task Manager を実装し、 Frame Buffer 上で高速な 3D Graphics Renderer を開発する。 \end{abstract} \begin{eabstract} % 英文概要 In PS3, the game can be developed by using installed Linux. However, because details of GPU are unpublished, it is necessary to draw on Frame Buffer. Drawing on Frame Buffer is very low-speed. In this research, we implement Task Manager for Cell and develop 3D Graphics Renderer high-speed on Frame Buffer. \end{eabstract} % 表題などの出力 \maketitle %}{ % 本文はここから始まる \input{introduction} % 研究目的 \input{cell} % Cell \input{cerium} % Cerium \input{rendering} % 開発過程 \input{compare} % 評価と考察 \input{conclusion} % まとめ \nocite{kono} \nocite{libspe2} \bibliographystyle{ipsjunsrt} \bibliography{sigos} \end{document} \ No newline at end of file
--- a/paper/compare.tex Mon Mar 23 00:05:42 2009 +0900 +++ b/paper/compare.tex Mon Mar 23 01:52:05 2009 +0900 @@ -1,1 +1,42 @@ +\newpage \section{評価と考察} + +\subsection{Scale を用いた描画処理の効果検証} +\begin{itemize} +\item 検証に用いたサンプル (10個のオブジェクト) +\begin{itemize} +\item Polygon 総数 : 19860 +\item Texture 総数 : 10 \\ +(8x8(3)、512x384(2)、616x123(4)、1024x768(1)) pixel +\end{itemize} +\item 1つのオブジェクトが親、その他のオブジェクトが +その子になり回転しながら移動する。 +\end{itemize} + \\ +\subsection{実行結果} + +\begin{table}[!h] + \begin{center} + \caption{Scale を用いることによる実行速度の比較} + \hbox to\hsize{\hfil + \begin{tabular}{c|l|l|l} \hline + & Scaleなし(FPS) & Scaleあり (FPS) & 速度の向上 (\%)\\ \hline + \hline + Mac OSX & 7.0 & 8.5 & 21 \\ \hline + PS3Linux(SPE 1) & 4.3 & 5.6 & 30 \\ \hline + PS3Linux(SPE 6) & 10.8 & 13.5 & 25 \\ \hline + \end{tabular}\hfil} + \label{tb:scale} + \end{center} + \begin{center} + {\small *FPS とは Frame Per Second の略で、1秒間に何回画面を書き換えたかを表している。} + \end{center} +\end{table} +\begin{itemize} +\item 実行速度の比較を行った結果、20 〜 30\% の速度向上が見られる。 +\item Mac OSX は SDL 経由で出力、PlayStation 3 は Frame Buffer へ直接出力している。 +\end{itemize} + \\ +\subsection{考察} + +
--- a/paper/rendering.tex Mon Mar 23 00:05:42 2009 +0900 +++ b/paper/rendering.tex Mon Mar 23 01:52:05 2009 +0900 @@ -53,9 +53,77 @@ \end{figure} 以下に Scale の作成と選択のプログラムを示す。 - + \\ +\begin{itemize} +\item Scale の作成 +{\scriptsize \begin{verbatim} +static uint32* +makeTapestry(int tex_w, int tex_h, uint32 *tex_src, + int all_pixel_num, int scale_cnt) +{ + uint32 *tex_dest; + int t = 0; + int diff = TEXTURE_SPLIT_PIXEL; + int p_diff = 1; + + tex_dest = (uint32*)manager->allocate(sizeof(int)*all_pixel_num); + while (scale_cnt) { + for (int y = 0; y < tex_h; y += diff) { + for (int x = 0; x < tex_w; x += diff) { + for (int j = 0; j < diff; j += p_diff) { + for (int i = 0; i < diff; i += p_diff) { + tex_dest[t++] = tex_src[(x+i) + tex_w*(y+j)]; + } + } + } + } + + diff <<= 1; + p_diff <<= 1; + scale_cnt >>= 1; + } + + return tex_dest; +} \end{verbatim} +} + \\ +\item 最適 Scale の選択 + +{\scriptsize +\begin{verbatim} + +static int +getScale(int width, int height, int tex_width, int tex_height, int scale_max) +{ + int base, tex_base; + int scale = 1; + + /** + * width と height で、長い方を基準に、 + * texture の scale を決める + */ + if (width > height) { + base = width; + tex_base = tex_width; + } else { + base = height; + tex_base = tex_height; + } + + if (tex_base > base) { + int t_scale = tex_base/base; + while (t_scale >>= 1) { + scale <<= 1; + } + } + + return (scale > scale_max) ? scale_max : scale; +} +\end{verbatim} +} +\end{itemize}