【コラム】
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] |
| 【レポート】Yahoo! JAPANの不正アクセス - 自分のIDが流出していないか調べておこう [17:18 5/19] |
| 【レビュー】PCもタブレットもスマホも、ワンタッチ切替で使えるBluetoothキーボード - ロジクール「Bluetooth Illuminated Keyboard K810」を試す [00:00 5/19] |
| abee、フロント面にメッシュパネルを採用したMini-ITXケース「acubic G20」 [21:04 5/18] |
| abee、左サイドから右サイドへのエアフローを形成するMicro ATXケース [20:03 5/18] |
| 「mora」の公式Win 8アプリに最新バージョン - 自動ダウンロードなどに対応 [19:07 5/18] |
|
(初対面で)「けっこう習い事しているんだね」【男性の恋愛心理】 [06:00 5/20] 恋愛・結婚 |
|
[福山雅治]主演映画「そして父になる」がカンヌで上映 「男泣きでした!」 [05:00 5/20] エンタメ |
|
[壇蜜]冠番組が放送2カ月で早くも特番 「『今でしょ!』だけど『今だけ』には…」と冷静分析 [05:00 5/20] エンタメ |
|
ニュルブルクリンク24時間耐久にチャレンジするスバルがレースを生中継! 日本時間2013年5月19日23時〜!! [23:00 5/19] ライフ |
|
ももクロ、『5TH DIMENSION』ツアーのBD&DVDとアナログ盤アルバムを発売! [22:30 5/19] エンタメ |