Mercurial > hg > Papers > 2009 > gongo-master
view paper/compare.tex @ 8:0789faebeac1
fix
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Mon, 09 Feb 2009 17:59:31 +0900 |
parents | 10f410903952 |
children | df0056a7b95d |
line wrap: on
line source
\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 からの アクセス権限が異なる (アドレス空間が異なる)。 プログラミングモデルとしては、データ並列、タスク並列をサポートしている。