Snow Leopardの深層・その3
GPUをフル活用する、Snow Leopardの「OpenCL」
2009年09月04日 19時00分更新
OpenCLの仕組み
OpenCLはベンダーに依存しない、異種プロセッサーに対する計算を実行するためのフレームワークである。
OpenCLは通常の「C」でGPUに依頼したい処理を記述する。この記述されたコードは実行時に、その環境にあるGPU向けの実行バイナリーに変換される。Javaなどで使われているJIT(Just In Time)とよばれる技術だ。その後、実際にGPUで処理が始まる。
もしOpenCLに対応したGPUがない場合は、CPUがその肩代わりをするため、性能は落ちるものの実行できないということはない。CUDAやATI Stream SDKを使った場合とは異なり、ユーザーの環境を気にせず、ひとつのプログラムをきっちり開発できればいいというわけだ。
著名企業がサポート
また、GPUに依存しないだけではなく、 OpenCLはオープンな技術である。
提唱こそアップルだが、その仕様は「クロノスグループ」と呼ばれる標準化団体にて管理される。この標準化に参加するのは、NVIDIAやAMD(ATI)、IntelといったGPUベンダーだけではない。ARM、IBM、Freescale Semiconductor、Motorola、Qualcomm、Texas Instrumentsといった組み込み向けのプロセッサベンダーやハードウェアベンダー、SAMSUNG、Ericsson、Nokiaといった携帯電話ベンダーなどなど、多数の企業や大学など研究機関が参加している。
3Dグラフィックスの標準仕様である「OpenGL」には、iPhoneでも採用している「OpenGL ES」という組み込み向けのサブセットがある。同じようにOpenCLにも「OpenCL Embeded Profile」というサブセットが存在する。
この OpenCLは、昨年12月に正式版のOpenCL 1.0の仕様を公開しており、アップルだけではなく多くのベンダーがOpenCLをサポートするだろう。
もちろん、Snow Leopardが現実の実装のトップバッターであることは疑いがないが、それ以外の環境でも、例えばiPhoneのような携帯電話や、AppleTVのようなセットトップボックス、Linuxを使ったあらゆるデバイスでも採用されることが期待される。
64bit対応がこれまでのCPUの制約緩和を、Grand Central Dispatchが一般的な処理の並列化/高速化を狙ってるとするなら、OpenCLは特定用途での高速化を狙うものだ。
何もしなくても64bit対応のために速くなり、Grand Central Dispatchに対応することで諸々の処理が並列化され、そしてエンコーディングなどの一部の処理ではそれを得意とするOpenCLが受け持つ。
Snow Leopardの高速化は三段構えで用意されているのだ。

この連載の記事
-
第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 - この連載の一覧へ