« YDL5にCell SDK 2.1をインストール | トップページ | Cell vs Pentium4 - スカラー演算編 »

PC LinuxにCell SDK2.1をインストールする

今回は、前回の「PS3 LinuxへのCell SDK2.1インストール」に続いて、PC Linux(Intel CPU)へのCell SDKインストールを行いました。なぜPCでCellのプログラムを作成する必要があるのかというと、Todotani的には以下の理由になります:

  • Eclipseのような統合開発環境(IDE)が使いたい
    プロな人とたちは、Emacs一本で、コーディング・コンパイル・Tag Jumpを使用したエラー箇所の修正・デバッグまで行うのでしょうが、私はEmacsの複雑なキーバインディングについていけないので、GUI環境でお気軽にプログラミングができるIDEが重宝します
  • 我が家ではPS3はリビングにおいてあり、32型セミHD(720p)の液晶TVにHDMI接続しているのですが、液晶TVではどうしても文字が滲んでしまい、フォントサイズを大きくする必要があるためプログラミングには向きません
  • プログラミングでリビングのTVを占有していると家族からブーイングが出ます

ということで、PC上でCellのプログラムを作成・デバッグできると便利です。幸いなことに、Linux PCにCell SDK2.1のIntel CPU版とEclipse IDEをインストールするとこれらが全部実現できます。PC用のLinuxとしてはFedora Core6 (FC6)が必要です。

なんとCellのシミュレーターまであり、PPC用のLinux kernelとCellのプログラムをIntel CPUの上で動かすことができます(エミュレーションですので速度は遅いですが)。まだ使ったことはないのですが、SPUの稼働率をグラフ化することで、SPUへの負荷分散が適切に働いているかを確認することもできるようです。

Cell SDK 2.1のインストール

前回のPS3 LinuxへのCell SDK2.1インストールで使用したSDK2.1のisoイメージがそのまま使えます。また、前回バルセロナスーパーコンピュータセンタ(BSC)のLinux on Cellのサイトからダウンロードしたパッケージが/tmp/cellsdk-2.1ディレクトリに残っている場合、CPU種別に依存しないパッケージはそのまま使用できるため、再ダウンロードの手間が省けます。今回はインストールするパッケージ数が多いため、SDKに添付のインストールスクリプトを使用します。実はSDKのisoイメージを、以下のようにそのままmountしてインストールを行います。私はこんな事ができることを始めて知りました。

isoイメージのmout point作成
#mkdir –p /mnt/cellsdk

isoイメージをmount
#mount –o loop CellSDK21.iso /mnt/cellsdk

パッケージの格納ディレクトリに移動してインストールスクリプトを実行
#cd /mnt/cellsdk/software
#./cellsdk install

ISOイメージをCD-ROMに焼いてファイルを消去してしまった方は(何を隠そう私もそうです)、CD-ROMの/sofware ディレクトリをHDDにコピーして、./cellsdk install でインストールスクリプトを実行します(CD-ROM上のファイルを指定しても、書き込み許可がないせいか起動できません)。

前回も書きましたが、私がインストールを行った際はBSCからのダウンロードが途中で止まってしまう現象が何回も発生しました。ダウンロードが進まなくなったら、ダウンロードが再開するのを待つよりも、CTRL-Cで一旦スクリプトを止めて、再度最初からやり直した方が早いと思います。やり直しと言っても、ダウンロード済のパッケージはダウンロードをスキップするので中断した続きから作業を再開することができます。注意しなければならないのは、ダウンロードを中断した際の不完全なファイルが/tmp/cellsdk-2.1に残ってしまうため、このファイルを削除してからインストールスクリプトを再実行する必要があります。不完全なダウンロードファイルが存在すると、このファイルのダウンロードをスキップしてしまうため、ファイルをディスクに展開する段階でエラーが発生します。

インストールが完了したら、以下のコマンドを実行します。
# ./cellsdk verify
INSTALL SUMMARYで全てのモジュールがinstalledと表示されればインストール完了です。

環境変数(PATH)に以下の指定を追加して、SDKのコンパイラ類にPATHを通しておきます。
PATH=$PATH:$HOME/bin:/opt/ibm/systemsim-cell/bin:/opt/cell/bin:/opt/ibmcmp/xlc/8.2/bin:/opt/ibm/cell-sdk/prototype/bin
gccを実行するとx86のコードが生成され、ppu-gccでPPCのコードが生成されるクロス開発環境のできあがりです。

最後に以下のコマンドを実行してサンプルプログラムがビルドできることを確認します。
# ./cellsdk build

Eclipse IDEとCell SDKプラグインのインストール

IDEというと、私はこれまではWindows上で動く、Microsoft Visual StudioやBoland Jbuilderしか使ったことがなく、Eclipseは今回初めて知りました。EclipseはJavaのIDEとしてはメジャーな無償ソフトで、書店のJavaコーナーに行くと関連書籍が多数見つかります。これだけで、私がプログラマーとしてはもぐりであることがバレバレですね。

Eclipseは元々はJavaの開発環境ですが、プラグインによって各種の開発環境に柔軟に拡張が可能です。C/C++用の開発環境としてCDT (C/C++ Development Tools)が存在します。Cell SDKでは、Cell用のプラグインが提供されます。従って、Cellの開発環境としてはCDT+Cell SDKプラグインを使用します。

Eclipseをインストールする前に、先ずJavaの実行環境(JRE)をインストールしておきます。FC6のディストリビューションにはjre-1.4が入っていますが、SDKのドキュメント(Software Development Kit 2.1 Installation Guide)によると、FC6のJava実行環境は不完全なので、IBMもしくはSunのJREをインストールする必要があると書いてあります。FC6に入っているJREを使用した状態でEclipseを動かして、簡単なCのコードをコンパイル・デバックする範囲では特に問題はなかったのですが、念のためにSunのJREをインストールします。確かにFC6標準のJava環境では、Javaアプリが動作しないため、JREをアップデートしておくと何かメリットがありそうです。

JREは以下のSun Javaダウンロードサイトから取得します。
ダウンロードに進み、Linux RPM (自己解凍ファイル)を選択します。その他の詳細はダウンロードサイトに掲載されている「手順」のリンクに従います。インストールが終了したら、環境変数にJREのディレクトリを追加します。旧版のjava-1.4.2-gcj-compatはパッケージマネージャーを使用して削除しました。

JAVA_HOME=/usr/java/jre1.6.0_01
PATH=$PATH:$HOME/bin:/opt/ibm/systemsim-cell/bin:/opt/cell/bin:/opt/ibmcmp/xlc/8.2/bin:/opt/ibm/cell-sdk/prototype/bin:$JAVA_HOME/bin

最後にEclipseの導入になります。
FC6にはEclipseが入っており、パッケージマネージャーで開発-> Eclipseを選択すると、Eclipse本体とCDTがインストールされます。これにCell SDKのプラグインを追加するだけでインストールは終了です。

ただ、一点だけ注意すべき点があります。SDK 2.1に添付のCell SDKプラグインはversion 2.1.0ですが、デバッグ時にPPU/SPUコードをシミュレーターにロードする段階で異常終了してしまう問題があります。私は当初この原因が分からずに思いっきりはまりました。修正版のcom.ibm.celldt_2.1.1.2007032901.tar.gzが公開されているためこちらをダウンロードしてインストールします。インストール方法は以下です。
・上記のプラグインを適当なディレクトリに解凍。
・EscipseのHelpメニュー → Software Updates → Find and Install... を選択
・Search for new features to installを選択して、Nextをクリック
・New Local Site... をクリック
・解凍したファイルを指定して、OKをクリック
・Finishをクリック

これでEclipse上でPPU/SPUプログラムのコーディングとデバックができるようになりました。プログラム開発の流れについては、Helpメニュー → Help Contents → IDE for Cell Broadband Engine SDK にTutorial(チュートリアル)がありますので、こちらを参照して下さい。

これでやっと開発環境が整いました。あとは、SPUのSIMD命令を使用したプログラミングのお勉強や、Pentium4とのベンチマークを行いたいと思います。

« YDL5にCell SDK 2.1をインストール | トップページ | Cell vs Pentium4 - スカラー演算編 »

Linux」カテゴリの記事

コメント

この記事へのコメントは終了しました。

2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ