このページの本文へ

WWDC 2009 総力レポート 第14回

解体Snow Leopard(後編)

OS Xを加速する「GCD」「OpenCL」という新技術

2009年06月15日 20時00分更新

文● 千種菊里

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

GPUを活用する「OpenCL」

OpenCL

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)と呼ばれる環境を提供している。

GPGPU

GPUのパワーを普通のソフトでも使えるようにするというのがGPGPUだ

 しかし現状は、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の上でも展開されるのは間違いない。

 開発者にはそのソリューションが見えている。むしろ、自分たちが積極的に実現しようと、一歩先の世界を提供しようと虎視眈々と狙っているのだ。だからこそ、こうした「地味な」発表でも、基調講演で喝采を上げたのだ。

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中