Mercurial > hg > Papers > 2009 > gongo-master
changeset 8:0789faebeac1
fix
line wrap: on
line diff
--- a/paper/cerium.tex Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/cerium.tex Mon Feb 09 17:59:31 2009 +0900 @@ -210,7 +210,7 @@ \begin{table}[htb] \begin{center} - \caption{SceneGraphRoot API} \label{tab:cerium_sg_api} + \caption{SceneGraph API} \label{tab:cerium_sg_api} \hbox to\hsize{\hfil \begin{tabular}{l|l} \hline \hline addChild(SceneGraph*) & 自身に子を追加する \\ \hline
--- a/paper/compare.tex Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/compare.tex Mon Feb 09 17:59:31 2009 +0900 @@ -1,1 +1,51 @@ \chapter{比較} \label{chapter:compare} + +ここでは + +\section{OpenCL} + +OpenCL (Open Computing Language) \cite{opencl} とは、 +マルチコアCPU や GPU、その他のプロセッサによる、 +ヘテロジニアスコンピューティングのフレームワークである。 +OpenCL C プログラミング言語は ISO/IEC 9899:1999 (C99) 規格を +ベースとしている。 + + +OpenCL のプラットフォームモデルは \figref{cp_opencl_plat} のようになり、 +一つの Host と複数の OpenCL Device で構成されている。 +OpenCL devices の中では Compute Units (CUs) として分割され、その中でさらに +Processing Elements (PEs) として分割される。 + +\begin{figure}[htb] + \begin{center} + \includegraphics[scale=0.7]{images/cp_opencl_plat.pdf} + \caption{OpenCL Platform} + \label{fig:cp_opencl_plat} + \end{center} +\end{figure} + +OpenCL アプリケーションでは、実行する処理 command が Host から +PEs へ送られる。PEs では SIMD (Single Instruction Multiple Data) +もしくは SPMD (Single Program Multiple Data) で実行される。 + +OpenCL devices や Host には kernel があり、Host kernel では +OpenCL devices context や実行 command の管理、Opencel devies kernel では +Host から送られて来た実行 command の処理を行う。 +Host は OpenCL devices での kernel の実行を調整するために、 +command-queue を生成し context へ渡す。 +command-queue には以下の command がある。 + +\begin{itemize} +\item Kernel execution commands \\ + 実行コマンド queue +\item Memory commands \\ + データの送受信に関する情報(Host アドレス空間) +\item Synchronization commands \\ + command の依存や同期等に関する情報 +\end{itemize} + +また、OpenCL Device は4つの違うメモリ領域(Global Memory、Constant Memory、 +Local Memory、Private Memory)を持ち、それぞれ Host や CUs、PEs からの +アクセス権限が異なる (アドレス空間が異なる)。 + +プログラミングモデルとしては、データ並列、タスク並列をサポートしている。
--- a/paper/images/amdahl.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/amdahl.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./amdahl.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 360 252 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cell_arch.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cell_arch.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_arch.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 505 339 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cell_mailbox.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cell_mailbox.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_mailbox.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 514 342 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cell_ppe.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cell_ppe.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_ppe.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 370 327 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cell_simd.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cell_simd.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_simd.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 402 261 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cell_spe.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cell_spe.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spe.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 380 340 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cell_spurs_pipeline.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cell_spurs_pipeline.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spurs_pipeline.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 533 187 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cell_spurs_task.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cell_spurs_task.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spurs_task.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 507 229 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_rendering_draw_span.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_rendering_draw_span.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_draw_span.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 591 313 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_rendering_half.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_rendering_half.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_half.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 372 274 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_rendering_spack.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_rendering_spack.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_spack.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 533 319 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_rendering_span.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_rendering_span.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_span.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 413 247 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_rendering_span_tex.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_rendering_span_tex.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_span_tex.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 408 420 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_rendering_tex_tapestry.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_rendering_tex_tapestry.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_tex_tapestry.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 563 305 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_rendering_tile.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_rendering_tile.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_rendering_tile.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 510 385 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_sg_create.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_sg_create.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_sg_create.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 487 228 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_sg_createlist.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_sg_createlist.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_sg_createlist.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 557 496 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_sg_example.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_sg_example.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_sg_example.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 625 466 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_sg_tree.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_sg_tree.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_sg_tree.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 425 274 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/cerium_task.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/cerium_task.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cerium_task.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 470 535 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/cp_opencl_plat.bb Mon Feb 09 17:59:31 2009 +0900 @@ -0,0 +1,5 @@ +%%Title: ./cp_opencl_plat.pdf +%%Creator: ebb Version 0.5.2 (+ArtBox) +%%BoundingBox: 0 0 510 237 +%%CreationDate: Mon Feb 9 17:47:56 2009 +
--- a/paper/images/manycore_data_split.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/manycore_data_split.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./manycore_data_split.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 587 154 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/manycore_step.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/manycore_step.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./manycore_step.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 549 335 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/tm_scheduler.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_scheduler.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_scheduler.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) -%%BoundingBox: 0 0 517 492 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%BoundingBox: 0 0 517 562 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/tm_sm_global.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_sm_global.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_global.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 523 364 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/tm_sm_pipeline_wait.bb Mon Feb 09 17:59:31 2009 +0900 @@ -0,0 +1,5 @@ +%%Title: ./tm_sm_pipeline_wait.pdf +%%Creator: ebb Version 0.5.2 (+ArtBox) +%%BoundingBox: 0 0 395 213 +%%CreationDate: Mon Feb 9 17:47:56 2009 +
--- a/paper/images/tm_sm_rbuf.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_sm_rbuf.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_rbuf.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 405 225 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/tm_sm_state.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_sm_state.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_state.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 370 342 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/tm_sm_wbuf.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_sm_wbuf.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_wbuf.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 505 487 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/tm_sort.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_sort.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sort.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 553 371 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/tm_sort_calc.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_sort_calc.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sort_calc.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 360 216 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/tm_sort_calc1m.bb Mon Feb 09 17:59:31 2009 +0900 @@ -0,0 +1,5 @@ +%%Title: ./tm_sort_calc1m.pdf +%%Creator: ebb Version 0.5.2 (+ArtBox) +%%BoundingBox: 0 0 360 216 +%%CreationDate: Mon Feb 9 17:47:56 2009 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/tm_sort_calc1m.plt Mon Feb 09 17:59:31 2009 +0900 @@ -0,0 +1,148 @@ +#!/opt/local/bin/gnuplot -persist +# +# +# G N U P L O T +# Version 4.2 patchlevel 4 +# last modified Sep 2008 +# System: Darwin 9.6.0 +# +# Copyright (C) 1986 - 1993, 1998, 2004, 2007, 2008 +# Thomas Williams, Colin Kelley and many others +# +# Type `help` to access the on-line reference manual. +# The gnuplot FAQ is available from http://www.gnuplot.info/faq/ +# +# Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot> +# +# set terminal aqua 0 title "Figure 0" size 846 594 font "Times-Roman,14" noenhanced solid +# set output 'tm_sort_calc1m.pdf' +unset clip points +set clip one +unset clip two +set bar 1.000000 +set border 31 front linetype -1 linewidth 1.000 +set xdata +set ydata +set zdata +set x2data +set y2data +set timefmt x "%d/%m/%y,%H:%M" +set timefmt y "%d/%m/%y,%H:%M" +set timefmt z "%d/%m/%y,%H:%M" +set timefmt x2 "%d/%m/%y,%H:%M" +set timefmt y2 "%d/%m/%y,%H:%M" +set timefmt cb "%d/%m/%y,%H:%M" +set boxwidth +set style fill empty border +set style rectangle back fc lt -3 fillstyle solid 1.00 border -1 +set dummy x,y +set format x "% g" +set format y "% g" +set format x2 "% g" +set format y2 "% g" +set format z "% g" +set format cb "% g" +set angles radians +unset grid +set key title "" +set key inside right top vertical Right noreverse enhanced autotitles nobox +set key noinvert samplen 4 spacing 1 width 0 height 0 +unset label +unset arrow +set style increment default +unset style line +unset style arrow +set style histogram clustered gap 2 title offset character 0, 0, 0 +unset logscale +set offsets 0, 0, 0, 0 +set pointsize 1 +set encoding default +unset polar +unset parametric +unset decimalsign +set view 60, 30, 1, 1 +set samples 100, 100 +set isosamples 10, 10 +set surface +unset contour +set clabel '%8.3g' +set mapping cartesian +set datafile separator whitespace +unset hidden3d +set cntrparam order 4 +set cntrparam linear +set cntrparam levels auto 5 +set cntrparam points 5 +set size ratio 0 1,1 +set origin 0,0 +set style data points +set style function lines +set xzeroaxis linetype -2 linewidth 1.000 +set yzeroaxis linetype -2 linewidth 1.000 +set zzeroaxis linetype -2 linewidth 1.000 +set x2zeroaxis linetype -2 linewidth 1.000 +set y2zeroaxis linetype -2 linewidth 1.000 +set ticslevel 0.5 +set mxtics default +set mytics default +set mztics default +set mx2tics default +set my2tics default +set mcbtics default +set xtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 +set xtics autofreq +set ytics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 +set ytics autofreq +set ztics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0 +set ztics autofreq +set nox2tics +set y2tics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0 +set y2tics 200.000,200 +set cbtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 +set cbtics autofreq +set title "SPEs number effect" +set title offset character 0, 0, 0 font "" norotate +set timestamp bottom +set timestamp "" +set timestamp offset character 0, 0, 0 font "" norotate +set rrange [ * : * ] noreverse nowriteback # (currently [0.00000:10.0000] ) +set trange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] ) +set urange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] ) +set vrange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] ) +set xlabel "SPE NUM" +set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate +set x2label "" +set x2label offset character 0, 0, 0 font "" textcolor lt -1 norotate +set xrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) +set x2range [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) +set ylabel "effect" +set ylabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by 90 +set y2label "time(sec)" +set y2label offset character 0, 0, 0 font "" textcolor lt -1 rotate by 90 +set yrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) +set y2range [ 200.000 : 1100.00 ] noreverse nowriteback +set zlabel "" +set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate +set zrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) +set cblabel "" +set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by 90 +set cbrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) +set zero 1e-08 +set lmargin -1 +set bmargin -1 +set rmargin -1 +set tmargin -1 +set locale "C" +set pm3d explicit at s +set pm3d scansautomatic +set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean +set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB +set palette rgbformulae 7, 5, 15 +set colorbox default +set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault +set loadpath +set fontpath +set fit noerrorvariables +GNUTERM = "aqua" +p 'tm_sort_calc1m.txt' using 1:3 title 'number effect' with lines, 'tm_sort_calc1m.txt' using 1:2 title 'sort time' axes x1y2 with lines +# EOF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/tm_sort_calc1m.txt Mon Feb 09 17:59:31 2009 +0900 @@ -0,0 +1,6 @@ +1 1080.842031 1 +2 557.823441 1.937605 +3 383.732214 2.816657 +4 295.992751 3.651582 +5 243.952017 4.430551 +6 209.308946 5.163859 \ No newline at end of file
--- a/paper/images/tm_sync.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_sync.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sync.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 577 554 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/tm_task_depend.bb Mon Feb 09 17:59:31 2009 +0900 @@ -0,0 +1,5 @@ +%%Title: ./tm_task_depend.pdf +%%Creator: ebb Version 0.5.2 (+ArtBox) +%%BoundingBox: 0 0 527 383 +%%CreationDate: Mon Feb 9 17:47:56 2009 +
--- a/paper/images/tm_task_post.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_task_post.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_task_post.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 335 388 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/images/tm_task_struct.bb Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/images/tm_task_struct.bb Mon Feb 09 17:59:31 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_task_struct.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 591 364 -%%CreationDate: Sat Feb 7 11:08:56 2009 +%%CreationDate: Mon Feb 9 17:47:56 2009
--- a/paper/master_paper.bib Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/master_paper.bib Mon Feb 09 17:59:31 2009 +0900 @@ -124,4 +124,10 @@ author = "", title = "{SDL\_image}", howpublished = "{http://www.libsdl.org/projects/SDL\_image/}" -} \ No newline at end of file +} + +@manual{opencl, +author = "{Aaftab Munshi, Khronos OpenCL Working Group}", +title ="{The OpenCL Specification Version 1.0}", +year = 2007 +}
--- a/paper/taskmanager.tex Sat Feb 07 11:10:54 2009 +0900 +++ b/paper/taskmanager.tex Mon Feb 09 17:59:31 2009 +0900 @@ -213,7 +213,20 @@ HTask *task = manager->create_task(ID); \end{verbatim} -このタスクに渡す入力として、add\_inData と add\_param がある。 +Task ID とは、各タスクに割り振られたグローバルIDである。 +通常の逐次型プログラムでは、タスクを選択して実行する場合、 +その関数ポインタを指定して実行すればいい。 +しかし Cell の場合、PPE と SPE 上ではアドレス空間が異なるため、 +SPE 上で実行されるタスクをメインスレッドから直接アドレス指定 +することはできない。 +そこで、タスク毎に ID を割り振り、その ID から、 +SPE 上にある Task が格納された配列を参照して実行する。 +この処理が \figref{tm_task_struct} の (2) にあたる。 + + +\subsection{Task の入出力} + +タスクに渡す入力として、add\_inData と add\_param がある。 \verb+add_inData(addr, size)+ は、タスクに渡すデータのアドレスと、 そのデータのサイズを引数として入力する。 @@ -239,9 +252,19 @@ \end{verbatim} このとき、task1 は ActiveQueue へ、task2 は WaitQueue へ格納される。 -各 CPU は、タスクが終了したらメインスレッド(PPE) へタスク終了のコマンドを +ActiveQueue から 各 CPU へタスクが割り振られ、 +タスクが終了したらメインスレッドへタスク終了のコマンドを 発行する。メインスレッドはそれを受け取り、WaitQueue のタスクを調べ、 -タスク依存を満たしたタスクを ActiveQueue に移し替える。 +タスク依存を満たしたタスクを ActiveQueue に移し替える +(\figref{tm_task_depend})。 + +\begin{figure}[htb] + \begin{center} + \includegraphics[scale=0.7]{./images/tm_task_depend.pdf} + \end{center} + \caption{Task の依存関係の解決} + \label{fig:tm_task_depend} +\end{figure} wait\_for は複数のタスクを指定でき、以下の場合は、 task3 が task1、task2 の二つのタスク終了を待つ形となる。 @@ -325,11 +348,12 @@ 生成された Task にしたがって、実際のタスクを実行するのがスケジューラである。 スケジューラは、メインスレッドで生成された TaskList を受け取り、 -その中にある Task をパイプラインに沿って実行していく (\figref{tm_scheduler}) 。 +その中にある Task をパイプラインに沿って、ステージを遷移しながら +実行していく。(\figref{tm_scheduler}) 。 \begin{figure}[htb] \begin{center} - \includegraphics[scale=0.8]{images/tm_scheduler.pdf} + \includegraphics[scale=0.72]{images/tm_scheduler.pdf} \caption{スケジューラ} \label{fig:tm_scheduler} \end{center} @@ -352,9 +376,30 @@ } while (task1); \end{verbatim} -このパイプラインでは、実際に三つの task が同時に動作しているわけではない。 +%このパイプラインでは、実際に三つの task が同時に動作しているわけではない。 + read() や write() での DMA 待ちの間に、exec() を行うことで -DMA の待ち時間を隠蔽することを目的としている。 +DMA の待ち時間を隠蔽することができる。 +しかし、各ステージの終了のタイミングによっては +待ちが入ってしまう場合がある (\figref{tm_sm_pipeline_wait})。 + +\begin{figure}[htb] + \begin{center} + \includegraphics[scale=0.9]{images/tm_sm_pipeline_wait.pdf} + \caption{パイプラインの待ち時間の発生} + \label{fig:tm_sm_pipeline_wait} + \end{center} +\end{figure} + +step 1 では全てのステージが同じタイミングで終了しているが、 +step 2 では、read() 以外は早く終わり、step 3 では +exec() 以外が早く終わっている。このことにより、早くに終了したステージには +待ち時間が入ってしまい、結果として並列度が下がってしまう。 + +待ち時間を減らすには、早く終わったステージの余った時間を +他のタスクに割り当てたり、終了するタイミングが同じタスクが +同時に実行されるようなスケジューリングが必要となる。 +現在の TaskManager には実装されていない。 TaskList にある Task が全て終了し、メインスレッドから終了のメッセージを 受け取ったら、 task1 は NULL となり、while 文を抜ける。 @@ -467,7 +512,7 @@ \begin{figure}[htb] \begin{center} - \includegraphics[scale=0.8]{images/tm_sm_rbuf.pdf} + \includegraphics[scale=0.7]{images/tm_sm_rbuf.pdf} \caption{add\_inData による rbuf の構造} \label{fig:tm_sm_rbuf} \end{center} @@ -498,23 +543,45 @@ \begin{figure}[htb] \begin{center} \includegraphics[scale=0.8]{images/tm_sm_wbuf.pdf} - \caption{add\_onData による rbuf の構造} + \caption{add\_outData による rbuf の構造} \label{fig:tm_sm_wbuf} \end{center} \end{figure} -wbuf から対応するバッファを取得するには以下の様に記述する。 +wbuf から対応するバッファを取得し、add\_outData で指定した領域に +書き込むには以下の様に記述する。 \begin{verbatim} -int *out = (int*)smanager->get_output(id); +// メインスレッド +int *data = new data[10]; + +task->add_outData(data, sizeof(int)*10); +task->add_param(10); + +// CPU スレッド +int *out = (int*)smanager->get_output(0); // data +int size = smanager->get_param(0); // 10 for (int i = 0 ; i < size; i++) { - out[i] = i; + out[i] = i*i; } + +// 実行結果 +% ./a.out +data[0] = 0; +data[1] = 1; +data[2] = 4; +data[3] = 9; +data[4] = 16; +data[5] = 25; +data[6] = 36; +data[7] = 49; +data[8] = 64; +data[9] = 81; \end{verbatim} -タスク終了後、out に該当するメインメモリの領域が -out と同じ値になっている。 +タスク終了後、out に書き込まれた値が、out に対応する +メインメモリの data に DMA 転送される。 \subsection{タスク間の共用領域} \label{sec:tm_sm_global} @@ -677,21 +744,21 @@ この手法では、各ブロックのソートを独立して行えるため、 他タスクとの待ち合わせの回数を最小限に抑えることが出来る。 -このプログラムを、使用する SPE の個数を 1から6に変化させて、その -実行速度を計測した (\figref{tm_sort_calc} ) 。 -今回はソートする整数の数は 10 万とした。 -横軸が使用した SPE の数、縦が、SPE 1個の時の実行結果を 1 をしたときの -台数効果である。 +このプログラムを、使用する SPE の個数を 1から6に変化させ、それぞれ +実行速度を計測した (\figref{tm_sort_calc}) 。 +今回はソートする整数の数は 100 万とした。 +横軸が使用した SPE の数、左縦軸が、SPE 1個の時の実行結果を 1 をしたときの +台数効果、右縦軸が実行時間(sec) である。 \begin{figure}[htb] \begin{center} - \includegraphics[scale=1.2]{images/tm_sort_calc.pdf} + \includegraphics[scale=1.2]{images/tm_sort_calc1m.pdf} \caption{Sort 実験結果} \label{fig:tm_sort_calc} \end{center} \end{figure} -SPE 6個の台数効果が 5.6 となり、理論値にはおよばないものの、 +SPE 6個の台数効果が 5.1 となり、理論値にはおよばないものの、 充分な台数効果が出ていると言える。 \subsection{画像の拡大縮小回転、色の変換}