タイトルPower Mac G4による開発モデルへの影響カテゴリーMacintosh本体
作成日1999/9/15 23:9:49作成者新居雅行
1999年9月上旬に、Macintoshのデスクトップ、プロシューマ向け製品が、Power Mac G4へと進化した。それまでのG3シリーズとの大きな違いは、PowerPC G4と呼ばれる新しい世代のCPUを搭載したことだ。FPUの高速化や内部バスが広くなったことなどさまざまな進化があるが、いちばん大きな違いは、Velocity Engineと呼ばれる128ビットのベクトル演算プロセッサを搭載したことだ。これまではAltiVecと呼ばれていたものが、実際の製品として登場する時にVelocity Engineと名前が変えられた。Velocity Engineにより、アセンブラレベルでの処理命令¥が増えて、それらの命令を使うことによってソフトウエアの動作が高速化される。従来のG3向けのソフトウエアのバイナリでは、基本的にVelocity Engineによる高速化は行われない(もちろん、G3向けのソフトウエアがVelocity Engineを内部的に使っているシステムコールを行っていれば話は別である)。つまり、Veloctiy Engineのメリットを利用するには、ソフトウエアを作り替えるという作業が必要になる。

G4に搭載されるMac OS 8.6はG4向けのカスタムバージョンで、演算ライブラリ、Mac OS ROMのブロックムーブ、OpenGL 3D、QuickTimeのDVコーデックの部分はVelocity Engineによる高速化が施されている。他に、Power Mac G4には、Photoshopのプラグインも付属するが、それはフィルタ処理をVelocity Engineで高速化するというものだ。Velocity Engineを使って高速化するとなると、1つの方法としては、独自に開発しているソースコード部分に、Velocity Engineの命令を埋め込むことだ。CodeWarriorではすでにアセンブラレベル、あるいはコンパイラでの対応が取られているので、開発作業にとりかかることは可能である。一方、システムがVelocity Engineで高速化されている部分を使うという手もある。たとえば、グラフィックス処理をOpenGLで作成すれば、G4ではVelocity Engineで高速化され、G3であってもバイナリはそのままで稼動するので互換性も確保できる。大別すると、これらのいずれかの方法を利用するということになるだろう。

独自にVeloctiy Engine対応のプログラムを作成する場合の指針について説明しておこう。まず、CodeWarriorでPowerPCのコードを生成する場合、ターゲットの設定での「PPCプロセッサ」の設定に「AltiVecプログラミングモデル」というチェックボックスがある。また、ターゲットプロセッサとしても、AltiVecという選択肢がある。まず、コンパイラのこれらの設定があることを知っておく必要があるだろう。この設定については、CodeWarriorのCD-ROMにあるDocumentationフォルダのマニュアル(「PowerPCのターゲット設定」という章)にもいくらかは説明があるが、実際のプログラミングに関わる情報は、リリースノートを参照することになる。AltiVec関連のことは、日本語版のCD-ROMの、以下のパスにあるファイルに書かれている。日本語版CD-ROMの中ではあるが、英語のドキュメントのままだ。このドキュメントを開いて、AltiVecを検索すれば、いろいろな情報に当たる。

CodeWarrior Pro 5J:CWPro Release Notes:Compiler Notes:CW Mac PPC Notes 2.3.txt

まだ、CodeWarrior自体に、AltiVecを使ったプログラムのサンプルがないため、認識の間違いがあるかもしれないが、モトローラのサンプルを見る限りは、ともかくAltiVecのアセンブラに近いレベルのソースを作成しないと、AltiVec対応のコードは生成されないようだ。普通にC++で書いたプログラムを最適化のような雰囲気で自動的にAltiVecのコードで展開するというところまでは行っているのかどうかだが、ターゲット設定での「自動ベクタライズ」が実際にどの程度の自動化がなされているのかと言う情報がないため、判断はしづらい面もある。AltiVecの情報は、モトローラの以下のページがいちばん詳しいと思われる。

また、G4は現在はハイエンドデスクトップ機だけだが、今後はPowerBookやiMacなどの従来のラインもG4になっていくのかという将来展望も、開発で力を入れるかどうかを判断するには重要な要素だろう。こればかりは想像するしかないが、こうした判断を助けるロードマップを開発者に対してアップルから示す必要もあると言えるだろう。
関連リンクモトローラ社のAltiVec関連の情報