GPUを活用する「OpenCL」
もうひとつのOpenCLは、CPUだけではなくGPUという異なるアーキテクチャのプロセッサも活用して並列化を実行する。いわゆる「GPGPU」(General Purpos GPU)という、グラフィック用途以外でのGPUの利用を支援するためのフレームワークだ。
GPUは条件分岐や基本的な演算といった一般的な用途には向いてないが、ある種の演算についてはCPUを凌駕する性能を発揮する。この演算能力はグラフィック処理のために発展してきたのだが、それを普通のプログラミングでも活用しようというのがGPGPUである。例えば、動画のエンコーディングや音声処理、画像認識など、GPUの能力を活かして高速化できる分野はあちこちに存在する。
GPUベンダーも早くからこのGPGPUという新たな方向性に注目しており、エヌビディアは「CUDA」(Compute unified device architecture)、AMD(ATI)は「CTM」(Close To Metal)と呼ばれる環境を提供している。
しかし現状は、GPUベンダーごとに環境が異なり、統合型チップセットを使っていてGPUがない場合のフォローも考えると、普通のPCで扱いにくかった。そのため、GPGPUの活用例は、特定のハードウェアで構成した科学技術演算用PCなどにとどまっている。
これを一般化しようというのがOpenCLだ。名前に「Open」が含まれることから分かるように、仕様が公開されており、下記のような技術的な詳細も読むことができる。
OpenCLを使えば、開発者はひとつのコードで処理を記述するだけでいい。プログラムの実行時、パソコンが搭載したGPUに対して適切なバイナリが作られて、高速化の恩恵にあずかれる。
かつてのCoreImageの再来!?
アップルはかつて、OpenCLと同じことを行なったことがある。それは、OS X 10.4 Tigerで搭載した「CoreImage」だ。
CoreImageはGPUの持つ画像処理機能「シェーダー」を使い、エフェクトの処理を共通化したもの。「slang」という言語でひとつの処理を記述しておくと、実行時、GPUに合わせて展開して、どのGPUでも同じエフェクトを高速に実行してくれる。
このCoreImageがあるおかげで、OS XはCPUに負荷をかけることなく派手なグラフィックを提供できるのだ。MacやiPhoneで、目に楽しく、かつ使い勝手も向上するグラフィック処理ができている裏には、このCoreImageの支援があるのだ。
OpenCLは、そのままではどこにメリットがあるのか分かりにくい。しかし、今回、iPhone 3G Sで見せた音声認識のように、強力な演算能力を活かした新しいソリューションがSnow Leopardの上でも展開されるのは間違いない。
開発者にはそのソリューションが見えている。むしろ、自分たちが積極的に実現しようと、一歩先の世界を提供しようと虎視眈々と狙っているのだ。だからこそ、こうした「地味な」発表でも、基調講演で喝采を上げたのだ。
この連載の記事
-
第13回
iPhone
なぜMac OS Xの64bit移行はスムーズなのか? -
第12回
iPhone
ジョブズという「One More Thing」は必要なかった -
第11回
iPhone
iPhone 3.0、知っておきたい6つの「画期的」新機能 -
第10回
iPhone
林信行に聞く「Mac&iPhoneの未来予想図」 -
第9回
iPhone
まとめて読むiPhone 3G Sの魅力 WWDC 2009基調講演【後編】 -
第8回
iPhone
写真でわかる、iPhone OS 3.0新機能 WWDC 2009基調講演【中編】 -
第7回
iPhone
開発者が見る、ここがスゴいぞ新iPhone -
第6回
iPhone
iPhone for everybodyでiPhone 3G Sが安く買える -
第5回
iPhone
Snow Leopardも出没! WWDC 2009基調講演【前編】 -
第4回
iPhone
値下げで魅力UP MacBook Pro&Air新機種が登場 - この連載の一覧へ