view paper/chapter4.tex @ 19:79d16cee0afd

Benchmark gpu.minor fix abstruct
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Fri, 13 Feb 2015 09:29:41 +0900
parents 712576635154
children 417431560eed
line wrap: on
line source

\chapter{マルチコアへの対応}
Cerium は Cell 上で並列に動作するフレームワークであったが、 Mac OS X 、 Linux 上でも並列に実行させることを可能にした。

\section{マルチコア上での実行の機構}
Cell には MailBox という機能がある。
Cell は Shared Memory でないので、 Memory に直接アクセスできない。
そこで MailBox を用いて双方向のデータの受け渡しを可能にしている。
 MailBox は FIFO キュー構造になっており、Device と Host で
この MailBox に対応させる形で Synchronized Queue を用いて MacOSX 、
Linux 用の TaskManager へ MailBox を移植した。

Syncronized Queue はバイナリセマフォで管理されており、Queue を操作しているスレッドは常に一つになる。
各スレッドは Input 用と Output 用として Synchronized Queue を2つ持っており、管理スレッドから Task を受けて
並列に実行する。

\section{DMA}
Cell ではデータの受け渡しとして MailBox 以外に DMA 転送を使用する方法がある。
CPU を介さずに周辺装置とメモリ間でデータ転送を行う方式である。

Cerium も DMA 転送を用いている箇所がある。
しかしマルチコア CPU 上で実行する場合は各 CPU で同じメモリ空間を利用できる。
よって DMA 転送を用いていた部分をポインタ渡しを行うように修正し、
メモリに直接アクセスさせることで速度の向上が見込める。