« Cell SDK 3.0のアップデート | トップページ | Cell Open CV »

Cell SDK 3.1のインストール

久しぶりの更新になります。

Cell SDK 3.1が公開されましたので、PS3とPC(クロス開発環境)にインストールを行いました。SDK 3.1はFedora 9が動作条件のため、Linux環境もFedora 9に更新しました。インストールの手順と気がついた点を記載します。

PS3へのSDK 3.1インストール

□1. ファイルのダウンロード

IBM Cell Broadband Engine resource centerからインストールに必要なファイルをダウンロードします。上記のページから、「Download SDK 3.1 for Fedora 9 from developerWorks」のリンクに進み以下のファイルをダウンロードします。(ダウンロードにはUser ID登録が必要です)。

  • CellSDK-Devel-Fedora_3.1.0.0.0.iso
  • CellSDK-Extras-Fedora_3.1.0.0.0.iso
  • cell-install-3.1.0-0.0.noarch.rpm

ダウンロードしたファイルを適当なディレクトリに保存します。例えば;
   /tmp/cellsdk31

□2. インストール手順

1)yum update daemonが動いている場合事前に停止

デフォルトではインストールされないと思います。以下のコマンドを実行して、エラーになったらそのまま次に進みます。
# /etc/init.d/yum-updatesd stop
bash: /etc/init.d/yum-updatesd: そのようなファイルやディレクトリはありません
 →エラーの例

2)インストールに必要なパッケージを追加

# yum install glibc-devel.ppc64 numactl numactl-devel rsync sed tcl wget
glibc-devel.ppc64/numactlはサンプルソースのコンパイル時に必要となります。

3)インストールスクリプトの実行

ダウンロードファイルを保存したディレクトリ移動して以下のファイルを展開
# rpm -ivh cell-install-3.1.0-0.0.noarch.rpm

/opt/cellに移動して、インストールスクリプトを実行
# ./cellsdk --iso </tmp/cellsdk31> install
< >内は、ダウンロードファイルを保存したディレクトリ名を指定

インストーラーの指示(ライセンス条件に同意など)に従えば作業完了です。

4)後処理

libspe2などがyumで更新されないように、/etc/yum.confに以下の定義を追加
exclude=blas blas-devel elfspe2 kernel lapack lapack-devel libspe2 libspe2-debuginfo libspe2-devel oprofile oprofile-devel

#./cellsdk verifyにてインストール内容を確認。

追加インストールしたいパッケージがあれば、以下の手順で追加が可能。
#opt/cell/cellsdk --iso /tmp/cellsdk31 mount
#yum install <追加したいパッケージ名>

パッケージの概要はマニュアルを参照。


PCへのSDK 3.1のインストール

基本的には、PS3へのインストールと同様です。

1)事前作業

# yum install rsync sed tcl wget
PCによるクロス開発環境の場合、yum-updateの影響はないため、yum updateの停止やexcludeの設定は不要だと思います。

2)インストールスクリプトの実行

PS3版と同様です。

3)後処理

#./cellsdk verifyにてインストール内容を確認。


Cell IDEのインストール

Eclipse IDE用に、Cellプログラム開発用プラグインが提供されています。導入手順は以下の通りです。

1)Eclipse IDEのインストール

EclipseはFedora 9のディストリビューションに入っている3.3を使用します。Eclipseはデフォルトではインストールされないため追加が必要ですが、Fedora 9のパッケージ管理(gpk-application)はグループ単位の指定ができず、Eclipseのパッケージが列挙されてしまうため、最低限何をインストールすればよいのかが分かりません。以前のPuirtの方がよっぽど使いやすかったのですが、、、 YumExをインストールして、Fedora Eclipseグループを指定すればOKです。

2) IBM Java環境の導入

Fedora 9のデフォルトでは、以下の通り、Open JDKがインストールされます。

$ java -version
java version "1.6.0"
OpenJDK  Runtime Environment (build 1.6.0-b09)
OpenJDK Server VM (build 1.6.0-b09, mixed mode)

IDEのインストールマニュアルによると、IDEにはIBMのJREが必要となるため、以下の手順でインストールします。

# /opt/cell/cellsdk --iso /tmp/cellsdk31 mount  → ダウンロードしたisoイメージをマウント
# yum install ibm-java2-i386-jre

パスを以下のように編集
JAVA_HOME=/opt/ibm/java2-i386-50/jre
SYSTEMSIM_TOP=/opt/ibm/systemsim-cell
PATH=$JAVA_HOME/bin:$SYSTEMSIM_TOP/bin:$HOME/bin:$PATH

export SYSTEMSIM_TOP
export JAVA_HOME
export PATH

$  java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pxi32dev-20080710 (SR8))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20080710 (JIT enabled)

3)シミュレーターのインストール

SDKのisoイメージには入っていないため、「IBM Full-System Simulator」サイトから追加ダウンロードが必要です。ダウンロードしたrpmファイルをインストールします。
# yum install sysroot_image-3.1-1.noarch
# yum install libBLT24.so
# rpm -ivh systemsim-cell-3.1-8.f9.i386.rpm

ただし、シミュレーターの起動スクリプトに問題があるようで、IDEのデバックモードでシミュレーターを使うことはできませんでした。以前投稿した方法で、PS3実機をリモートマシンとしてPCのIDEからデバッグが可能です。

4)IDEプラグインのインストール

# yum install cellide
/opt/cell/ide/eclipseにプラグインのファイルが展開されます。

Eclipseを起動して、以下のメニューをたどり、プラグインをインストールします。
Help→ Software Update→ Find and Install→ Select new features to install →
next→ New local site→ /opt/cell/ide/eclipseを指定


使ってみて

IDEはCDT 4.0ベースとなったため、コード補完機能が賢くなり以前より使い勝手が向上しました。SDK 3.0 (CDT 3.1)で作成したプロジェクトは概ね自動変換ができました。(ただし、一部変換がエラーになり、プロジェクトを再作成したケースがありました)。

IDEからのデバックですが、SDK 3.0では、speプログラム内に設定したブレークポイントでうまく停止しない問題によく遭遇しましたが、今のところspeプログラム内のブレークも問題なく動いており、SDK 3.0のデバック環境より安定していると感じています。

以前このブログで投稿した、行列積の計算プログラムが今回も添付されていますが、speプログラムがフルアセンブラ化され、より最適化が進んでいます。gccでコンパイルして3072 x 3072の行列積計算を実行してみると、何と152.24 GFlopsとなりました;

# ./matrix_mul -i 5 -m 3072 -p -H -s 6 -o 4
Initializing Arrays ... done
Running test ... done
Performance Statistics:
  number of SPEs     = 6
  execution time     = 1.90 seconds
  computation rate   = 152.24 GFlops/sec
  data transfer rate = 9.62 GBytes/sec

SDK 3.0では同様の条件で、139.36 GFlopsでしたので、かなり性能が向上しています。152.24 GFlopsは論理性能(153.6GFlops)の99%に達しており、いくらアセンブラでカリカリにチューニングしているとは言え、この値を信じてよいものか若干疑問ではありますが、、、

自作の行列和プログラムをSDK 3.1でコンパイルして実行したところ、SDK 3.0と同一の実行時間となったため、コンパイラの最適化レベルは上がっていないようです。SDK 3.0, 3.1ともgcc 4.1.1を使用しているため当然です。

と言う訳で、IDEを使用したPCのクロス環境を使う場合、SDK 3.1に切り替える価値はありだと思います。

« Cell SDK 3.0のアップデート | トップページ | Cell Open CV »

Linux」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« Cell SDK 3.0のアップデート | トップページ | Cell Open CV »