このページの本文へ

前へ 1 2 3 次へ

もっと知りたい! Snow Leopard ― 第5回

Snow Leopardの深層・その3

GPUをフル活用する、Snow Leopardの「OpenCL」

2009年09月04日 19時00分更新

文● 千種菊里

  • この記事をはてなブックマークに追加
  • 本文印刷

 「64bit対応」や「Grand Central Dispatch」など、Snow Leopard には様々なソフトウェアの高速化のための技巧が込められている。これらに加えて外せないのが、GPU(グラフィック専用のユニット)を計算に流用する「OpenCL」だ。

Mac OS X 10.6 Snow Leopard Mac OS X 10.6 Snow Leopard

OpenCLが生まれた背景

GPUの性能を持て余している

 昨今のGPUは、CPU以上に強力な演算性能を持つ。CPUとは異なり条件分岐や細かなデータの処理は苦手だが、大量のデータに対して一気に同じような演算を実行することにかけてはCPUを凌駕する性能を発揮する。

アップルが公開している下記URLの技術資料より引用。GPUのパフォーマンスは1Tflopsに達成しようとしている。かつてのスーパーコンピュータ並の計算能力が眠っているのだ

 このGPUの能力は、より高解像度のディスプレーに、より精細で豊かな色彩を、より高速に描画するために利用されてきた。巨大な画像データを変形させ画面上の立体に貼り合わせたり、光源からの光の反射を計算してより自然な影を映し出したりといった作業が、GPUの得意分野だ。

 CPUを見てみると、Power PCには「AltiVec」、 Intel Coreには「SSD」というベクトル計算ユニットが備わっていた。現在のGPUは、これらのユニットの強化版と見ていい。

 この計算能力を画像描画以外に使えないだろうか? 例えば、MPEG-4などの動画やMP3の音声のエンコード/デコード、インターネット上を飛び交う複雑な暗号化されたデータの復号化、マイクから入ってきた音声のリアルタイムでの認識、画像に含まれる顔認識──。こうした膨大なデータの処理にGPUを利用できれば、より高速化が果たせるだろう。


GPUベンダーも手をつけているが……

 一方、CPUもそうだが、GPUも性能としては過剰に近付いている。普通にメールを読み書きしたり、ウェブを見たり、オフィスソフトで業務をする分には、チップセットに内蔵されたそこそこの性能の統合型GPUで十分であったりする。

 そうした状況を踏まえて、GPUを開発するメーカーも次の一手を打ってきている。それが一般的な処理をGPUで実行するための仕組み「General Purpose GPU」(GPGPU)だ。

 GPUはCPUとは異なる命令を持っているため、CPU向けの実行ファイルはそのままGPUで実行できないし、そもそもただCPUの命令をエミュレーションしただけではGPUの能力を生かせない。一般処理に優れるCPUからGPUの得意な特定処理を切り出し、GPUに受け渡して処理する手法が必須になる。加えて、そうした異種環境を橋渡しする開発環境も必要だ。

 これまでも NVIDIAは「CUDA」、AMD(旧ATI)は「ATI Stream SDK」といったGPGPUのための開発環境を提示してきた。

 しかし、これらの開発環境はそのベンダーのGPUでは最高の性能を発揮する一方、他社製品では動作しない。用途を特定してハードウェアを用意できる環境ならばともかく、ユーザーがどこのベンダーのGPUを使っているか分からないコンシューマー市場では、いまいち使いにくいものだった。

 そこでアップルが提唱したのが「OpenCL」だ。

前へ 1 2 3 次へ

この特集の記事

ASCII.jp RSS2.0 配信中