Mercurial > hg > Papers > 2012 > nobu-thesis
changeset 14:003a659c528e draft
modify
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 23 Feb 2012 20:30:03 +0900 |
parents | b3ebb4a6ae75 |
children | 6a667be77762 |
files | paper/figure/conv1_linux.pdf paper/graffle/conv1_linux.graffle paper/resume.tex |
diffstat | 3 files changed, 21 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/graffle/conv1_linux.graffle Wed Feb 22 21:11:09 2012 +0900 +++ b/paper/graffle/conv1_linux.graffle Thu Feb 23 20:30:03 2012 +0900 @@ -44,7 +44,7 @@ <key>Creator</key> <string>Nobuyasu Oshiro</string> <key>DisplayScale</key> - <string>1 0/72 in = 1 0/72 in</string> + <string>1 0/72 in = 1.0000 in</string> <key>GraphDocumentVersion</key> <integer>8</integer> <key>GraphicsList</key> @@ -93,7 +93,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 1.07}</string> +\f0\fs24 \cf0 1.08}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -142,7 +142,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 1.17}</string> +\f0\fs24 \cf0 1.10}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -191,7 +191,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 1.58}</string> +\f0\fs24 \cf0 1.66}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -240,7 +240,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 1.07}</string> +\f0\fs24 \cf0 1.11}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -289,7 +289,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 1.85}</string> +\f0\fs24 \cf0 1.88}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -338,7 +338,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 1.91}</string> +\f0\fs24 \cf0 1.87}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -537,7 +537,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 1.13}</string> +\f0\fs24 \cf0 1.09}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -586,7 +586,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 1.15}</string> +\f0\fs24 \cf0 1.10}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -635,7 +635,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 2.64}</string> +\f0\fs24 \cf0 2.59}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -733,7 +733,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 3.677}</string> +\f0\fs24 \cf0 3.56}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -782,7 +782,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\f0\fs24 \cf0 4.66}</string> +\f0\fs24 \cf0 4.68}</string> <key>VerticalPad</key> <integer>0</integer> </dict> @@ -1384,7 +1384,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2012-02-20 18:22:12 +0000</string> + <string>2012-02-23 09:24:34 +0000</string> <key>Modifier</key> <string>Nobuyasu Oshiro</string> <key>NotesVisible</key> @@ -1465,7 +1465,7 @@ </dict> </array> <key>Frame</key> - <string>{{974, 113}, {693, 938}}</string> + <string>{{452, 42}, {693, 938}}</string> <key>ListView</key> <true/> <key>OutlineWidth</key>
--- a/paper/resume.tex Wed Feb 22 21:11:09 2012 +0900 +++ b/paper/resume.tex Thu Feb 23 20:30:03 2012 +0900 @@ -85,7 +85,7 @@ CbC には通常の C の関数からコードセグメントに継続する際, その関数から値を戻す処理への継続を得ることができる. これを環境付き継続という. -環境付き継続は, \verb+__environment+ と \verb+__return+ キーワードを +環境付き継続は, \verb+_CbC_environment+ と \verb+_CbC_return+ キーワードを 引数に渡しコードセグメントとして扱うことで使用できる. %\verb+environment+ は 環境を表す情報を持つ. %\verb+__return+ は環境付き継続の行き先であり, 関数の戻り値と\verb+__environment+ の二つの引数を @@ -93,7 +93,7 @@ %GCC内部では, \verb+__return+ は, 関数内で定義された \verb+_cbc_internal_return+関数へのポインタを返す. %戻値は, \verb+cbc_internal_return+ 関数内で定義された変数\verb+retval+を通して返される(Listing\ref{code:retval}) . %実際には \verb+__return+ キーワードにより GCC 内部でlisting\ref{code:retval}のコードが生成されている. -実際には \verb+__return+ キーワードにより GCC 内部で次の様なコードが生成されている. +実際には \verb+_CbC_return+ キーワードにより GCC 内部で次の様なコードが生成されている. \begin{figure}[h] \begin{minipage}[b]{.45\textwidth} % \begin{lstlisting}[caption=環境付き継続を行うコード,label=code:retval] @@ -119,7 +119,7 @@ \subsubsection{環境付き継続の問題と改良} 環境付き継続で特に重要になってくるのが retval 変数の値をどこに確保するかである. -元々の実装ではListing\ref{code:retval}の様に static で値の確保を行なっていた. +元々の実装では static で値の確保を行なっていた. しかしこれではスレッドセーフではない. そこで retval 変数の値を static thread local で確保することでこの問題の解決を行った. @@ -149,6 +149,7 @@ 今回実装を行った GCC-4.6 ベース と安定版である GCC-4.4 ベース, それと Micro-C の CbC コンパイラでベンチマークを行った. プログラムは Micro-C のベンチマークにも使用されるものである. +このプログラムは演算と継続を交互に行う. 引数 1 は C で書かれたプログラムをただ CbC へと変換したプログラムになる. 引数 2 と 3 は Micro-C 用に手動で最適化を行ったプログラムである. また評価は \verb+x86_64+ 上の CentOS 5.7 で行った. @@ -168,7 +169,9 @@ 次に GCC-4.5 と GCC-4.6 を比較してみる. 手動で最適化を行なっている引数 2 と 3 の時は余り差は無い. だが, 引数 1 の時は GCC-4.6 版が GCC-4.5 に比べて 1.67 倍程早い. -この結果から GCC-4.5 に比べ GCC-4.6 の最適化が修正されよりよくなっているのが確認できる. +アセンブラの比較も行なってみると, GCC-4.6 版の方では演算の結果が求められていて +必要最小限の継続だけを行なっていた. +アセンブラとこの結果から GCC-4.5 に比べ GCC-4.6 の最適化が修正されよりよくなっているのが確認できた. \section{今後の課題} 今回, CbC コンパイラを GCC-4.6 へとアップデートを行った.