GPUをグラフィック処理以外に使う
もうひとつ、Snow Leopardで外せないのが「OpenCL」だ。このOpenCL、特に学術研究者にとってとても魅力ある新機能となる。
OpenCLは、GPUの計算能力を使って一般的な計算を行なうことから、Snow Leopardが「GPGPU」(General Perpose GPU)をサポートすることと考えられる。GPGPUとは、科学技術計算の分野から提唱されたアイデアで、GPUを一般的な演算処理に転用し、科学技術計算などの高度な計算を高速化するのに利用しようというものだ。
GPUといえば、これまではグラフィックス処理の高速化を目的としたプロセッサーだった。いくら高い演算能力を持つGPUでも、グラフィックス処理以外のときはその性能をフルに使えていなかったのだ。
しかし昨今のDirectX対応のGPUは、機能をグラフィックスに固定しない「シェーダー」と呼ばれるユニットが複数搭載されており、より柔軟な演算が可能になった。もちろんシェーダーの本来の用途はグラフィックス処理だが、VRAMに計算対象のデータを転送し、シェーダーに計算プログラムを送ることで、CPUでは処理が遅くなる大量で複雑な演算をGPUと分担して高速化できる可能性がある。
GPUのベンダーの一つであるエヌビディアでは、「CUDA」(Compute unified device architecture)という開発環境を提供しており、GeForceなどエヌビディアのGPUを搭載したパソコンで、GPGPUを利用可能としている。一方のAMD(ATI)も、「CTM」(Close to Metal)と呼ばれるGPGPUのSDKを提供している。
「OpenCL」が「OpenGL」を模したワケ
それでは、アップルが新しく発表したOpenCLは、既存のCUDA/CTMとどう異なるのだろうか? これは、既存のLeopardやTigerの機能からある程度の推測が付く。
ひとつはOpenCLという名前だ。これは「OpenGL」や「OpenAL」という名称を模している。
OpenGLは仕様が公開されたオープンなグラフィックAPIセットであり、Mac OS Xでも積極的に採用している(iPhoneでも組み込み向けのサブセットである「OpenGL ES」をサポートした)。APIが共通のため、OpenGLを使ったグラフィックのコードは、OpenGLをサポートするどのOSでも、どのGPUベンダのチップでも同じ描画を行なってくれる。
OpenALも仕様およびソースコードが公開された、クロスプラットホームのAPIで、やはりMac OS Xに限らず複数の環境で同じように動作する。
OpenCLがアップルの主導するプロジェクトである以上、名前を模したことには意味がある──、すなわちオープンでOSやハードウェアに依存しないものと考えられる。