Mercurial > hg > Papers > 2017 > ikkun-thesis
view paper/main.tex~ @ 9:7c79cd6dae0a
add
author | ikkun |
---|---|
date | Wed, 15 Feb 2017 23:42:26 +0900 |
parents | e4c33c7f162f |
children |
line wrap: on
line source
\documentclass[a4j,12pt]{jreport} \usepackage[dvipdfmx]{graphicx} \usepackage{mythesis} \usepackage{multirow} \usepackage{here} \usepackage{url} \usepackage{listings, jlisting} \lstset{ language=java, tabsize=2, frame=single, basicstyle={\ttfamily\footnotesize},% identifierstyle={\footnotesize},% commentstyle={\footnotesize\itshape},% keywordstyle={\footnotesize\bfseries},% ndkeywordstyle={\footnotesize},% stringstyle={\footnotesize\ttfamily}, breaklines=true, captionpos=b, columns=[l]{fullflexible},% xrightmargin=0zw,% xleftmargin=1zw,% aboveskip=1zw, numberstyle={\scriptsize},% stepnumber=1, numbersep=0.5zw,% lineskip=-0.5ex, numbers=left } \renewcommand{\lstlistingname}{Code} \setlength{\itemsep}{-1zh} \title{Code Gear Data Gear によるGPGPU処理実装} %\title{Supporting NAT in Screen Sharing System TreeVNC} \icon{ \includegraphics[width=80mm,bb=0 0 595 642]{fig/ryukyu.pdf} %%元は 642じゃなくて842 } \year{平成27年度 卒業論文} \belongto{琉球大学工学部情報工学科} \author{135704C 東恩納 琢偉 \\ 指導教員 {河野 真治} } %% TreeVNC のNATへの対応 %% マルチスクリーン TreeVNC %% プリアンブルに記述 %% Figure 環境中で Table 環境の見出しを表示・カウンタの操作に必要 %% \makeatletter \newcommand{\figcaption}[1]{\def\@captype{figure}\caption{#1}} \newcommand{\tblcaption}[1]{\def\@captype{table}\caption{#1}} \makeatother \setlength\abovecaptionskip{0pt} \begin{document} %%% \input{./future.tex} % タイトル \maketitle \baselineskip 17pt plus 1pt minus 1pt \pagenumbering{roman} \setcounter{page}{0} \tableofcontents % 目次 \listoffigures % 図目次 \listoftables % 表目次 %以下のように、章ごとに個別の tex ファイルを作成して、 % main.tex をコンパイルして確認する。 %章分けは個人で違うので下のフォーマットを参考にして下さい。 % はじめに \chapter{GearsOSでのGPU実行} CPU の処理速度の向上のためクロック周波数の増加は発熱や消費電力の増大により難しくなっている。 そのため、クロック周波数を上げる代わりに CPU のコア数を増やす傾向にある。 マルチコア CPU の性能を発揮するには、処理をできるだけ並列化しなければならない。 また、PC の処理性能を上げるためにマルチコア CPU 以外にも GPU や CPU と GPU を複合したヘテロジニアスなプロセッサが登場している。 並列処理をする上でこれらのリソースを無視することができない。 しかし、これらのプロセッサで性能を出すためにはこれらのアーキテクチャに合わせた並列プログラミングが必要になる。 並列プログラミングフレームワークではこれらのプロセッサを抽象化し、CPU と同等に扱えるようにすることも求められる。 本研究室で開発しているGears OS は Code Gear と Data Gear によって構成される。 Code Gear は処理の単位、Data Gear はデータの単位となる。 Gears OS では Code/Data Gear を用いて記述することでプログラム全体の並列度を高めて、効率的に並列処理することが可能になることを目的とする。 また、Gears OS の実装自体が Code/Data Gear を用いたプログラミングの指針となるように実装する。 Gears OS における Task は実行する Code Gear と実行に必要な Input Data Gear, 出力される Output Data Gear の組で表現される。 Input/Output Data Gear によって依存関係が決定し、それに沿って並列実行する。 依存関係の解決などの Meta Computation の実行は Meta Code Gear で行われる。 Meta Code Gear は Code Gear に対応しており、 Code Gear が実行した後にそれに対応した Meta Code Gear が実行される。 本論文ではGears OS のGPU 処理のプロトタイプとして Gears によるGPU処理を実装し、簡単な例題を用いて評価する。 \label{chap:introduction} \pagenumbering{arabic} %序論の目安としては1枚半ぐらい. %英語発表者は,最終予稿の「はじめに」の英訳などを載せてもいいかも. \chapter{概要} % 研究内容の概要、要するに序論で書いた問題点と解決方法の要点をまとめて紹介するところ。なのでCudaの例題を紹介するのはここでいいのか疑問。 \label{chap:concept} \section{Cudaの例題} Cuda による GPU 処理の例題として twice を用いて評価する。tiwce は与えられた整数配列を2倍にする例題である。 以下の流れで処理は行われる。 \begin{itemize} \item 配列サイズを元に index, alignment, 配列へのポインタを持つ Data Gear に分割。 \item Data Gear を Persistent Data Tree に挿入。 \item 実行する Code Gear(Twice) と実行に必要な Data Gear への key を持つ Task を生\ 成。 \item 生成した Task を TaskQueue に挿入。 \item Worker の起動。 \item Worker が TaskQueue から Task を取得。 \item 取得した Task を元に必要な Data Gear を Persistent Data Tree から取得。 \item 並列の処理される Code Gear(Twice) を実行。 \end{itemize} \section{GPUプログラミングの問題点} GPU処理をするにはCPUで計算を行う場合とは違い、GPUは単純な計算しか出来ないが多数のコアを持つ演算ユニットであり、CPUのように直接命令を送ることが出来ない。 そのためCPU からGPUへのデータの送信、また計算結果をGPUから受け取る事によってGPU処理は成り立っている。 しかし、使用するコア数が増えるとCPUとコアの間でのデータの受取の回数が増えるため送受信の時間が増大する、これによって送受信の時間がボトルネックとなり処理を並列化するして速くしたとしても、データの受信時間分だけ計算時間が長くなってしまう。 また、 \section{Meta計算によるGPU並列実行の制御} \chapter{GearsOS} \section{Continuation Baseed C} \section{並列性} \section{柔軟性} \section{Gears でのMeta computation の実行} \chapter{Gears OSの構成} \section{Queue} \section{Red Black Tree} \section{TaskManager} \section{Worker} \chapter{GPGPU} \section{GPGPUとは} \section{CUDAでの実行} \chapter{GPU 実装} \section{GPUWoker の実装} \section{性能評価} \section{比較} \chapter{GPU並列実行} \section{画像データ伝達の遅延} % 今後の課題 \chapter{結論} \section{まとめ} \section{今後の課題} % 参考文献 \def\line{−\hspace*{-.7zw}−} \nocite{*} \bibliographystyle{junsrt} \bibliography{reference} \chapter*{謝辞} \thispagestyle{empty} %基本的な内容は以下の通り.参考にしてみて下さい. %厳密な決まりは無いので,個々人の文体でも構わない. %GISゼミや英語ゼミに参加した人はその分も入れておく. %順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.) \begin{flushright} 2017年 3月 \\ \end{flushright} % 付録 \end{document}