【コラム】
Snow Leopardが発売されてから2週間も経ちませんが、早くも「Mac OS X 10.6.1 Update」が公開されました。不具合の修正がメインですので、取り急ぎアップデートしたほうがよさそうです。
さて、今回は「OpenCL」について。従来は描画オンリーだったGPUのパワーをCPUとともに一般の演算にも活用するという、異種プロセッサを利用したヘテロジニアスな並列処理機構だが、Snow Leopardのシステム上を探せども探せどもその効果は見つからず……というわけで、Appleのサイト上で (非ADC会員にも) 一般公開されているサンプルコードをもとに、その効果のほどを検証してみたい。
OpenCLの仕様が確定し、「OpenCL 1.0」として公開されたのは2008年12月のこと。Snow LeopardはOpenCLを実装した世界最初のOSであり、その意味で"目に見える成果"を期待していたユーザは少なくないはずだ。
しかし、OpenCLの実装とはAPIおよびランタイム環境の提供であり、それを利用したアプリケーションの充実を意味しない。OpenCLの恩恵にあずかるには、プログラムにOpenCLのコード (実行されるマシンのGPUに応じてコンパイルされる) が含まれなければならず、しかも実行環境にはOpenCLに対応するGPUを必要とする。OpenCLのランタイム環境は、Snow Leopardにフレームワーク (/System/Library/Frameworks/OpenCL.framework) の形で収録されているため、otoolコマンドでアプリケーションの実行ファイルのリンク状況を調べれば見当はつくのだが、/Applications以下を一通り調べても、OpenCL.frameworkへリンクしているものは見当たらない。
つまり、Snow LeopardにアップデートすればOpenCLでビュンビュン……などと期待してはいけない。あくまで環境が整備されたという話で、Appleなどアプリケーション開発者がOpenCL対応を進めないかぎりは、特にメリットは得られない。
一方では、OpenCLはアプリケーションを選ぶ、という事情もある。GPUの特性を考えると、同じ種類の計算を大量に並行処理する必要があるアプリケーションでもないかぎり、OpenCLによる飛躍的なパフォーマンス向上は期待できない。身近な例では、テキストエディットやシステム環境設定をOpenCL対応にしたところで、特に効果はないだろう。オーディオ / ビデオのエンコーダや、Quartz Composerで作成するグラフィックモジュールのようなプログラムが、適していると考えられる。
とはいえど、OpenCLの効果を実感できるアプリケーションが欲しいもの。幸い、Appleがサンプルコードを「Mac OS X Reference Library」で公開しているので、これを自力でビルドするという方法がある。それでは早速、そのうちのいくつかを試してみよう。
Snow Leopardのインストールディスクには、「Xcode Developer Tools」が収録されている。統合開発環境のXcode 3.2をはじめ、コンパイラやデバッガなど開発支援ツール、ヘッダファイルに各種ドキュメントと、アプリケーション開発に必要な一式が揃っているため、事前にインストールを済ませておこう。
本稿執筆時点で公開されているOpenCL関連のサンプルコードは、以下に示すとおり。URLは変更される可能性があるため、リンク切れの際は「Mac OS X Reference Library」内を検索してほしい。使い方はかんたん、ダウンロードしたソースコードを適当なフォルダへ展開し、プロジェクトファイル (.xcodeproj) を開いて「ビルドと実行」ボタンをクリックするだけだ。
最初に試したのは「OpenCL RayTraced Quaternion Julia-Set Example」。4元数のジュリア集合を回転させつつレイトレーシングの技法で表示するというもので、OpenGLとの連携を伴う典型的なOpenCLの利用法となっている。
ビジュアル的には、「OpenCL Procedural Geometric Displacement Example」のほうがインパクト大かもしれない。「[」と「]」でオブジェクトの大きさを変えたり、ウインドウ上をマウスでドラッグしたりすれば、OpenCLの効果を実感できることだろう。
OpenCLのパワーを実感したければ、「OpenCL Procedural Grass and Terrain Example」が適当だろう。「.」と「/」キーでノイズバイアス値を上下したり、「-」と「=」キーで草の数を増減したりできる。「;」と「'」は風の強さだ。他にもパラメータ変更用のキーアサインがいくつか用意されているので、詳しくはソース (main.cpp) で確認してほしい。
| OS X ハッキング! 第305回 もっとわかりやすく「OpenCL」を解説する [2008/12/22] |
| OpenCLのパワーが一目瞭然のデモムービーが公開 [2009/2/4] |
| Snow Leopardの準備は万端? 「OpenCL 1.0」の仕様が公開 [2008/12/9] |
| レノボ・ジャパン、ウェブ広告モデルを一般公募 - 新生活キャンペーンの一環で [21:21 2/10] |
| 【レポート】スマートフォンを狙ったワンクリック詐欺やオンラインバンキングを狙うゼットボット - トレンドマイクロマンスリーレポート [20:43 2/10] |
| 【レポート】レノボ、大和研究所の開発陣らによる「ThinkPad X1 Hybrid」の技術解説 [20:41 2/10] |
| デル、「冬モデルファイナルセール」最終週 - 各種アップグレードが無料 [20:13 2/10] |
| Appleが3月初旬にスペシャルイベント開催の噂 - iPad 3の発表か [18:34 2/10] |
|
熊田曜子が最新DVDで美乳引き立つゴールドビキニ姿を披露『WOMAN~本性~』 [22:30 2/10] エンタメ |
|
「グラビア甲子園」特別賞の新人・藤村椿の"フレッシュ・ヒップ"が弾ける! [22:30 2/10] エンタメ |
|
TVアニメ『エウレカセブンAO』、新キャラおよびメカの設定画を紹介 [22:21 2/10] ホビー |
|
宮本恒靖を迎え「選手のセカンドキャリア」を考える! [22:08 2/10] キャリア |
|
NMB48山田菜々・福本愛菜、恋人モードで妄想セリフ!? [22:08 2/10] キャリア |