「write once run anywhere」の思想
また、OpenCL以外にも、Mac OS XにはGPUを活用したフレームワークがある。そう「CoreImage」だ。
CoreImageは、Mac OS X上でGPUに依存しない共通のAPIを提供し、アプリケーションが「gslang」で記述されたフィルターを実行する際、メーカーが異なる各種GPUのシェーダのコードにコンパイル/最適化した上で送付している(なお、このCore Imageのコードの最適化にはオープンソースのコンパイラである「LLVM」を利用している)。
●Core Image以前
●Core Image以後
つまり、これまでの先例をふまえるなら、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のサービスパック」ではない。有償でのアップグレードの価値があるものとなるのであろう。