CTKのインストールとサンプルアプリの実行

出典: CTK: Cell ToolKit Library

CTKユーザマニュアル」に戻る

CTKをダウンロードしてインストールし、サンプルアプリの動作確認をするまでの方法について説明します。

目次

ダウンロードと解凍

  • CTKの 最新版のソースコード・アーカイブ をダウンロードし、tarコマンドで解凍してください。ソースコードのアーカイブには ctk_vX.X.tgz のようなファイル名がつけられています。 X.X の部分はバージョン番号をあらわします。例えば、バージョン0.73のソースコード・アーカイブは「ctk_v0.73.tgz」というファイル名を持ち、次のようなコマンドラインで解凍することができます。
$ tar xzf ctk_v0.73.tgz
  • 解凍すると、アーカイブ名から拡張子 .tgz を除いた名前のディレクトリ ctk_vX.X 以下に必要なファイルが展開されます。例えばバージョン 0.73 のアーカイブ「ctk_v0.73.tgz」を解凍した場合、「ctk_v0.73」というディレクトリ以下にファイルが展開されます。

ビルドとインストール

  • CTKをビルドするには、「Libspe2」ライブラリなどのSPE(演算プロセッサ)を使うための開発環境が必要になります。Libspe開発環境の構築方法についてはPS3 Linux Information Siteなどを参照してください。Libspeを含む開発・評価環境を1セットインストールするには、IBMのCell SDK (Cell/B.E. Software Development Kit)をインストールするのが便利でしょう。
  • 具体的には、CTKは以下のライブラリおよびツール一式に対応しています (= 以下のバイナリを必要とします):
    • Libspe (1.1, 1.2. 2.0.0, 2.0.1 SCEパッチ版, 2.0.2, 2.1, 2.2のいずれか) あるいは東芝SDKの開発用ヘッダとライブラリ
    • PPEおよびSPE用の開発ツール一式 (ppu-binutils, spu-binutils, ppu-gcc, spu-gccなど)
(* PPE用の開発環境は、PPC用の標準の開発環境でも代替できます。)
  • CTKのソースコードディレクトリである「ctk_vX.X/ctk」以下にカレントディレクトリを移して、CTKのバイナリイメージを作るために「configure」スクリプトと「make」コマンドを実行します。例えば、バージョン0.73のCTKを一式ビルドしてインストールするには次のようなコマンドラインを実行します:
$ cd ctk_v0.73/ctk $ ./configure --prefix=CTKインストール先ディレクトリ $ make → CTKバイナリのビルド $ make doc → API文書の生成 $ su → root権限が必要な場所にインストールする場合はsuする Password: rootパスワードの入力 $ make install → インストール
  • ./configureスクリプトへのオプション「--prefix=」の後ろの部分には、CTKのライブラリやヘッダファイルをインストールしたい先のディレクトリパスを指定してください。なお、何も指定せずにただ「./configure」とのみ入力して実行した場合、「/usr/local」ディレクトリ以下がインストール先ディレクトリとなります。
    • 「/usr/local」のようなシステムパスにインストールする場合、susudoコマンドで管理者(root)としてインストール(「make install」)を実行する必要があります。
    • クロス環境などでは、標準のシステムパスにCTKなどのCellのバイナリをインストールするのは避けた方が良いでしょう。
  • ./configureスクリプトには、「--prefix」以外にもCTKが利用する(依存する)Libspeのバージョンや場所などを指定するための次のようなオプションを指定することが出来ます:
configureスクリプトで指定できるオプション
--prefix=dirCTKのバイナリをインストールする先のディレクトリパス (デフォルト: /usr/local)
--with-libspe2[=dir]Libspe 2.xを使ってビルドします。Libspe2がデフォルトの場所にインストールされていない場合、dirでLibspe2のある場所を指定します。特殊な場所にインストールされているLibspe2を使いたいという場合ではない限り、このオプションを指定する必要はありません
--with-libspe[=dir](Libspe2ではなく)Libspe 1.xを使ってビルドします。Libspeがデフォルトの場所にインストールされていない場合、dirでLibspeのある場所を指定します。LibspeとLibspe2の両方がインストールされていてかつLibspeの方を使いたいという場合や、特殊な場所にインストールされているLibspeを使いたいという場合ではない限り、このオプションを指定する必要はありません
--with-tsdk[=dir]東芝Cell用のSDKを使ってビルドします。東芝SDKがデフォルトの場所にインストールされていない場合、dirで東芝SDKのある場所を指定します。Libspe2やLibspeがインストールされているようなクロス開発環境で特別に東芝SDKを使いたいという場合や、特殊な場所にインストールされている東芝SDKを使いたいという場合ではない限り、このオプションを指定する必要はありません
  • なお、「--with-libspe2」「--with-libspe」「--with-tsdk」のどれも指定しなかった場合、CTKはlibspe2, libspe, tsdkの順でインストールされているライブラリを探し、利用可能なものがあればそれを使ってビルドされます。
  • また、バージョン0.73以降ではビルドするCTKバイナリのアーキテクチャを指定するために次のようなオプションを指定することができます(通常は指定する必要はありません)。
v0.73 以降の configureスクリプトで指定できるオプション
--host=cpu-vendor-osビルドしているマシンのアーキテクチャと異なるアーキテクチャのバイナリを明示的にビルドしたい場合に指定します(Intelなどのx86上のクロス開発環境で(Cell向けの)CTKをビルドする場合には指定する必要はありません)。例えば、64bit PPC環境であるCellマシン上で32bit PPCバイナリ向けのCTKライブラリをビルドしたい場合、「--host=powerpc-unknown-linux --build=`./config.guess`」のように指定します。なお、「--host」オプションを指定する際には必ずビルド環境の情報も「--build」オプションで指定してください。通常は「--build=`./config.guess`」のように「config.guess」コマンドの実行結果をそのまま渡せば問題ありません(詳細は autoconf のマニュアルなどを参照してください)。

インストールされたCTKの概要

  • CTKをインストールすると、「./configure」スクリプトの「--prefix」オプションで指定したディレクトリ(デフォルトでは /usr/local)以下にCTKの各ファイルが以下のように配置されます。
bin/ CTKアプリ開発のための補助ツール
lib/ CTKライブラリ
include/ CTKヘッダファイル
share/doc/ CTKライブラリAPI文書
  • 例えば、インストール先ディレクトリを「/usr/local/ctk」と指定した場合(「./configure --prefix=/usr/local/ctk」のように指定した場合)、「/usr/local/lib」以下にCTKのライブラリが、「/usr/local/include」以下にCTKのヘッダファイルがインストールされます。


* * * *

お疲れさまです。以上まででCTKの基本的なビルドとインストールは終了です。特に問題なくここまで来たのであれば、このままCTKユーザマニュアルのページに戻ってCTKを使ったプログラムの開発や実行へ進んで頂いて構いません。

ただし、自分で書いたプログラムがうまく動かなかったりした場合、本ページに戻ってきて以降に記述されている「サンプルアプリのビルドと実行」を試してみることで、インストールがうまくいっているかどうか改めて確認してみると良いでしょう。

ここからは、CTKに付属するCTKサンプルアプリのビルドと実行について説明します。以下の手順はCTKを使った自前のプログラムを開発したり実行したりするために必要なものではありません。CTKのインストールがうまくいっているかどうかの確認や、CTKを使ってどんなプログラムが作れそうかを見る参考にしてください。

* * * *

サンプルアプリのビルドとインストール

  • サンプルアプリのソースコードは、CTKのソースコード・ディレクトリ (ctk_vX.X) 以下の「apps」というディレクトリにあります。
  • サンプルアプリのビルドにはCTKが必要になりますので、CTKがインストールされたディレクトリ(./configureの「--prefix=」で指定した場所)を環境変数CTKBASEDIRに設定してください (この手順はサンプルアプリのビルドのときだけに必要なものであり、サンプルアプリの実行や自分で書いたCTKプログラムのコンパイル時には必要ありません)。
  • Bash(sh系)の場合
$ export CTKBASEDIR=CTKインストール先ディレクトリ
  • Csh系の場合
% setenv CTKBASEDIR CTKインストール先ディレクトリ
  • 例えば、デフォルトの「/usr/local」以下にCTKをインストールしたのであれば、「export CTKBASEDIR=/usr/local」や「setenv CTKBASEDIR /usr/local」のように実行します。
  • なお、クロスビルドなどのためにビルド環境と実行環境でディレクトリ構成が異なる場合、別途CTKBASEDIR_RUNTIMEという環境変数で実行環境におけるCTKディレクトリを指定してください(この環境変数もサンプルアプリのビルドのときだけに必要なものです)。
  • CTKのソースコード・ディレクトリ「ctk_vX.X」の下の「apps」ディレクトリ (例えば「ctk_v0.73/apps」ディレクトリ以下)にカレントディレクトリを移して、「make」コマンドを実行してサンプルアプリをビルドし、「make install」コマンドでサンプルアプリを実行できるように実行ファイルを配置します。
$ cd ctk_v0.73/apps $ make $ make install
  • 「make install」コマンドを実行すると、サンプルアプリのバイナリが「CTKインストール先ディレクトリ/samples」ディレクトリ以下に配置されます(つまり、CTKのライブラリなどがインストールされている場所と同じ場所(=$CTKBASEDIR以下) に置かれます)。
    • CTKライブラリを管理者(root)権限が必要なシステムパス以下にインストールしている場合、「make install」はrootになって(or root権限で)実行してください。
$ su Password:
  1. make install

サンプルアプリの実行

  • インストールされたサンプルアプリは、PS3などのCellマシン上でそのまま実行できます。例えば、以下のようにするともっとも基本的な(ほとんど何もしない)CTKのサンプルアプリsimpleを実行することができます。
$ CTKインストール先ディレクトリ/samples/simple
  • なお、クロス環境などでビルドしていて、ビルドした環境と実行環境のディレクトリ構成が異なっている場合、実行環境においてCTKインストール先ディレクトリ/libおよびCTKインストール先ディレクトリ/samples/speが実行時のライブラリ検索パスに入っているようにしてください。具体的には、サンプルを実行する前に例えば次のようなコマンドラインを実行してください:
  • 実行環境がビルド環境のディレクトリ構成と異なる場合 (Bash(sh系)の場合)
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:CTKインストール先ディレクトリ/lib:CTKインストール先ディレクトリ/samples/spe
  • 実行環境がビルド環境のディレクトリ構成と異なる場合 (Csh系の場合)
% setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:CTKインストール先ディレクトリ/lib:CTKインストール先ディレクトリ/samples/spe
  • 多くのサンプルは動作テストを兼ねており、ユーザにとって特に意味のあるものではありません。また、テスト用の出力や挙動が入っているものもありますのでご了承ください。

画像変換のサンプルアプリ

  • カレントディレクトリにin.ppmというファイル名のPPM画像ファイルを用意すると、SPEを使って簡単な画像処理を行うサンプルを試すことができます。
PPM画像はあまり一般的な画像形式ではありませんが、jpegやgifなどの画像ファイルから変換・生成できます。例えば、PS3 Linux上でjpeg画像ファイルをin.ppmというファイル名のPPM画像ファイルに変換するには、「djpeg JPEG画像ファイル > in.ppm」のようなコマンドラインを実行します。また、テスト用の画像ファイルがCTKのソースコード・ディレクトリ「ctk_vX.X/apps/sample-data」の下に置かれているため、これらを使っても良いでしょう。
$ cp ctk_v0.73/apps/samples-data/in.ppm . → ソースディレクトリから テスト用画像をコピー(自分で変換して用意してもよい) $ CTKインストール先ディレクトリ/samples/filter apply grayscale filter? (y/n): y sharpen image? (y/n): y soften image? (y/n): y resize image? (y/n): y number of SPE to use (1 ~ 6): 6 use default input file "in.ppm"? (y/n): y use default output file "out.ppm"? (y/n): y ...

PS3のフレームバッファを使ったサンプルアプリ

  • PS3上であれば、フレームバッファを使った簡単なレイトレーシングのサンプルアプリを試すことが出来ます。このサンプルアプリはデフォルトではビルドされませんので、次のようにして個別にビルドしてください。
  1. CTKのソースコード・アーカイブを解凍したディレクトリ以下の「ctk_vX.X/apps/rtrace_ctk」にカレントディレクトリを移します。
  2. テキストエディタで「Makefile」を開き、1行目にあるCTKBASEDIR変数の値をCTKをインストールしたディレクトリに変更します。また、PPE用の開発環境としてppu-gccppu-g++ではなく標準のgccg++を使っている場合、PPU_CCおよびPPU_CXXの変数の値をそれぞれ適切に修正してください。
  3. 「make」を実行してサンプルアプリをビルドします。
  4. 「rtrace.ppu」という実行ファイル名でPPE用の実行ファイルが生成されます。この実行ファイルはPS3上であればその場で(インストールせずに)実行できます。
$ cd ctk_v0.73/apps/rtrace_ctk → ソースディレクトリへ移動 $ make → フレームバッファサンプルのビルド $ ./rtrace.ppu → フレームバッファサンプルの実行
  • 「rtrace.ppu」を実行すると、実行オプションの指定のためにいくつかの選択肢が表示されます。指示に従って適切な数字を入力してください。実際に聞かれる選択肢は以下のようになります:
  • number of SPU to use (0 - 6): 処理に使うSPUの数を指定します(0から6までの数値を指定します)。数を多くするほどレイトレーシングが高速になります。
  • use SIMD (0:no, 1:yes): SIMD最適化を(部分的に)施したコードを使うかを指定します。
  • sample to run (1 - 5): どのオブジェクト・動きサンプルを使って描画するかを指定します(1から5までの数値を指定します)。指定する数字を変えると描画されるオブジェクトの数や位置、動きが変わります。
  • output color: (0:grayscale, 1:color): レイトレーシング処理後にグレイスケール変換を行うかを指定します。実行中でも、gキーを押すことでグレイスケール変換を行うかどうかを動的に切り替えることができます。
  • number of loops to run (0:run infinitely): 何回処理をループするかを指定します。ずっと動かし続けたい場合は0を指定します(qキーで終了できます)。

CTKユーザマニュアル」に戻る

表示