このページの本文へ

前へ 1 2 3 4 次へ

アップルが放つ「OpenCL」とは?

新Mac OS X「Snow Leopard」を徹底解剖

2008年06月16日 16時00分更新

文● 白屋麻

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

「write once run anywhere」の思想


WWDC 2006の基調講演で紹介されたCore Image

 また、OpenCL以外にも、Mac OS XにはGPUを活用したフレームワークがある。そう「CoreImage」だ。

 CoreImageは、Mac OS X上でGPUに依存しない共通のAPIを提供し、アプリケーションが「gslang」で記述されたフィルターを実行する際、メーカーが異なる各種GPUのシェーダのコードにコンパイル/最適化した上で送付している(なお、このCore Imageのコードの最適化にはオープンソースのコンパイラである「LLVM」を利用している)。


●Core Image以前

Core Image以前

GPU向けのプログラムはそれぞれ互換性がない。このため、同じ処理内容のプログラムでも、GPUごとにプログラムを作り直さなければならなかった。これでは高度なグラフィックを駆使するアプリケーションを開発する側の負担が大きくなる


●Core Image以後

Core Image以後

Core Image は多数のフィルターを用意しており、アプケーションはこれを指定するだけでいい。あとはCore Image が動的にフィルターを変換、最適化した上で各GPU へ受け渡す。フィルターはプラグインで拡張可能であり、アプリケーション独自のフィルターも用意できる

 つまり、これまでの先例をふまえるなら、OpenCLはGPUベンダーに依存しないAPIセットであり、gslangないしは類似の中間言語で記述したシェーダー向けのコードを、実行時に各メーカーのGPU向けにコンパイル/最適化した上で送付するというものになるだろう。

 Macでは、エヌビディアとAMD(ATI)のGPUを用いたマシンがある。また、MacBookやMac miniといった普及機レベルのMacでは、別にGPUを用意せず、インテルのチップセット統合型GPUを利用している。

 アプリケーションが個別にCUDAやCTMで作ったモジュールを用意し、実行するハードウェアでどちらを使用するか決める、などといったやりかたはアップルの流儀ではない。提供するからには「write once run anywhere」──、ひとつのアプリケーションですべての環境をサポートすべきである。この流儀は先のCore Imageだけではなく、Universal BinaryなどMacのあらゆるところで見られる。



学術用途での魅力を増す?


 Macはコンシューマ向けの「扱いやすいPC」として一般に広まるのと同時に、学術研究関係でも受け入れられている。

 Xgridのようなグリッドコンピューティングフレームワークや、Cocoaをはじめとする扱いやすいフレームワークの存在、Xanのような共有ファイルシステム、Fibre Channelのサポート、Xserveという「安価なXeonサーバ」の存在、そして何より安定していて頑強な基盤であるMac OS Xの存在が、非常に魅力的であるからだ。

 OpenCLの存在はそうした科学技術をはじめとするHPC分野で、Macの存在感をさらに際だたせるものになるに違いない。

 Snow Leopardは新機能の搭載には注力しないとは記載されているが、こうした足回りのフレームワークの強化や新搭載は行なわれる。決して「現行のLeopardのサービスパック」ではない。有償でのアップグレードの価値があるものとなるのであろう。

前へ 1 2 3 4 次へ

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン