本サイトは、Cell トータルソリューションカンパニー -フィックスターズの技術者有志が運営するサイトです。

序章 チュートリアル全体概要

出典: PS3 Linux Information Site / Cell/B.E.のパワーを体験しよう

 本章では、Cellプログラミングチュートリアルの全体概要について解説します。

1. まずはじめに

 ここでは、本チュートリアルの内容にはいる前に、学習対象者、必要とされる前提知識について説明します。

1.1 学習対象者

 本チュートリアルは、Cellが持つ高い演算能力を活用したプログラムを作成できるようになることを目的とします。本チュートリアルでは、以下のような方を対象としています。

(1) Cell上でのプログラミングに興味がある方
(2) 既存のプログラムをCell上に移植したい方

1.2 前提知識

 本チュートリアルでは、Cell特有のプログラミングが中心に解説されるため、一般的なプログラミングについては特に触れられません。以下の項目について、学習者自身がある程度理解していることを前提に解説しています。

(1) C言語プログラミング
(2) 並列プログラミングの基礎的な概念
(3) Linux上でのプログラム開発手順

 プログラム開発手順のうち、Cell特有の部分については必要に応じて解説しますが、エディタの使い方など一般的な事柄については解説していません。C言語プログラミングやLinuxのコマンドなどについては、それぞれの専門書や参考書を確認してください。

2. 本チュートリアルの読み進め方

 本チュートリアルは、章単位に学習テーマを定めています。各章の学習テーマに従って、Cellプログラミングに必要な知識を学習します。これからCellプログラミングを始めようとする方は、基本的に第1章から順番に読み進めることで、チュートリアルの学習内容を理解できます。

2.1 チュートリアルの全体構成

 本チュートリアルは、次の4つの章から構成されています。

 「第1章 Cellアーキテクチャの基礎」では、Cellアーキテクチャの基礎について学習します。Cellのハードウェアおよびソフトウェアの特徴について解説します。

 「第2章 SIMDプログラミングの基礎」では、複数のデータに対する処理を1命令で実行できるSIMD演算について学習します。SIMD演算の基礎とCell上でのSIMD演算を利用したプログラミング方法について解説します。

 「第3章 SPEプログラミングの基礎」では、Cellアーキテクチャ固有のプロセッサコアであるSPEを利用したプログラミングについて学習します。SPEでのプログラム実行方法と複数SPEへの処理の分割方法について解説します。

 「第4章 Cellを深く理解する」では、より高度なCellプログラミングについて学習します。ここまでの章で扱われていない、Cellプログラミングにおける注意事項や性能向上テクニックについて解説します。

2.2 参考資料

 本チュートリアルでは、Cellプログラミングの基礎となる内容を中心に解説します。本チュートリアルの内容からさらに詳しく学習したい場合は、文中に記載された参考資料を参照してください。

2.3 例題と演習問題

 第2章以降は、プログラミングに関する学習内容となっています。各章では、学習テーマをいくつかの学習項目に分け、例題プログラムを用いてその内容について解説します。また各章の最後に、学習内容を復習できるようなプログラミング問題を演習問題として用意しています。

3. 本チュートリアルの表記について

 本チュートリアルでは、文中の表記について以下の規約を利用します。

3.1 プログラムコードおよびコマンド実行例について

(1) PPE用プログラムコード

#include <stdio.h>

int main(int argc, char **argv)
{
    return 0;
}

(2) SPE用プログラムコード

#include <stdio.h>

int main(unsigned long long spe, unsigned long long arg, unsigned long long envp)
{
    retrun 0;
}

(3) シェルコマンドの実行例

$ spu-gcc spe_hello.c –o spe_hello.elf

3.2 文中の表記について

(1) シェルコマンド (オプション)

SPEプログラムをコンパイルするには、spu-gccというコマンドを使用します。

(2) 関数

spe_image_open()関数を利用して、SPEプログラム・イメージをオープンします。

(3) 型・変数

vector signed int型の変数には4個の符号なし整数を格納できます。ここで、変数vcは変数vaと変数vbを加算した結果になります。

(4) プログラムコードの引用

用例 (2-4) では、キーワード__attribute__を用いて、スカラ配列aaligned属性が指定されています。



チュートリアル目次 第1章」へ進む
表示
個人用ツール
Open Source Projects
ツールボックス