Snow Leopardの深層・その3
GPUをフル活用する、Snow Leopardの「OpenCL」
2009年09月04日 19時00分更新
「64bit対応」や「Grand Central Dispatch」など、Snow Leopard には様々なソフトウェアの高速化のための技巧が込められている。これらに加えて外せないのが、GPU(グラフィック専用のユニット)を計算に流用する「OpenCL」だ。
目次
64bit対応 アプリケーションを64bit化、カーネルを64bit化、Windowsの64bit化は?
Grand Central Dispatch GCDが生まれた背景、GCDとは何か?、GCDの仕組み、GCDを使ったプログラミング、GCDの今後と将来
OpenCL OpenCLが生まれた背景、OpenCLの仕組み、著名企業がサポート
QuickTime X QuickTimeが歩んできた道、大きく変わったQuickTime Player、新しいフレームワーク「QuickTime X」、HTTPライブストリーミング、Carbon アプリケーションの終焉
OpenCLが生まれた背景
GPUの性能を持て余している
昨今のGPUは、CPU以上に強力な演算性能を持つ。CPUとは異なり条件分岐や細かなデータの処理は苦手だが、大量のデータに対して一気に同じような演算を実行することにかけてはCPUを凌駕する性能を発揮する。
この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」だ。

この連載の記事
-
第8回
iPhone
Macのバックアップ、Time Machineで始めよう! -
第7回
iPhone
もふもふしたい! Snow Leopardの赤ちゃんを激写 -
第6回
iPhone
18年越しの大改修! Snow LeopardのQuickTime X -
第4回
iPhone
マルチコア時代の新機軸! Snow LeopardのGCD -
第3回
iPhone
やっぱりスゴい! Snow Leopardの「64bit対応」 -
第2回
iPhone
一挙30連発! 画像で見るSnow Leopard新機能 -
第1回
iPhone
Mac OS X「Snow Leopard」インストール完璧ガイド -
第-1回
iPhone/Mac
もっと知りたい! Snow Leopard - この連載の一覧へ