2008年6月10日 16:52

OpenCL(!)はスタンダードとなるか

このエントリーを含むはてなブックマーク

先日、米西海岸時刻6月9日にAppleのCEOであるSteve JobsはWWDCにおいてキーノートスピーチを行いました。例年通りAppleの新製品のプレビューが行われましたが、その中でもGPGPU用のオープンな技術"OpenCL"に注目してみます。

どうやらGoogle等で検索しても公式の情報がないようなので、アップルジャパンによるニュースリリースを引用させていただきます。

Snow Leopardはまた、Open Computing Language (OpenCL) でモダンなハードウェアへのサポートをさらに拡大します。OpenCLは、これまでグラフィックスアプリケーションでしか利用できなかった膨大なギガフロップスものGPU計算能力をどのアプリケーションでも利用できるようにします。OpenCLはC言語をベースとしており、オープンスタンダードとして提案されています。

アップルジャパン プレスリリースより

また、米Appleのサイトには既にSnow Leopardのページが作成されているので、そこからも引用させていただきます。

OpenCL

Another powerful Snow Leopard technology, OpenCL (Open Compute Library), makes it possible for developers to efficiently tap the vast gigaflops of computing power currently locked up in the graphics processing unit (GPU). With GPUs approaching processing speeds of a trillion operations per second, they're capable of considerably more than just drawing pictures. OpenCL takes that power and redirects it for general-purpose computing.

Apple - Mac OS Leopard - Snow Leopardより

どちらもほぼ同じ内容で、要するところGPUによる汎用計算、すなわちGPGPU(General Purpose GPU)のための技術であるという記述で、それ以上技術的な詳細は描かれていません。

さて、GPGPUそのものは新たな発想ではなく、GPUは以前から高性能ベクトルプロセッサとして注目されていました。最近のGPUはプログラマブルシェーダーを持っており、テクスチャや頂点などグラフィクスデータの代わりに任意の数値を与え、計算させる事となります。

GPGPUとしての実装方法はいくつかあり、GPUに対する所謂アセンブリ、グラフィクスライブラリを使用した場合、NVIDIA社のCg、OpenGLではGLSL、DirectXではHLSLなどがあります。

ただし、上記の実装は本来グラフィクス用である、という前提があり、プログラマはデータをテクスチャ等に変換した後、プログラムに与える必要があります。GPGPUとして利用する場合にもグラフィクスプログラミング特有のデータ構造を利用しなければならないという事です。一方、GPGPUに特化した手法も登場しており、NVIDIA社のCUDAが代表的です。今回の"OpenCL"も同様のものでしょう。

一方、WikipediaでCUDAの項を見るとOpenCLとCUDAは同一であるという記述があります。自分はWikipedia以外のソースを見つける事が出来なかったため真偽は不明です。(ソースをご存知の方はお知らせくださると幸いです。)どちらにせよ、現状ではまだ大きな課題があるように思います。

OpenCL=CUDAであると仮定すると、

  • 現状のCUDAはNVIDIA製のGPUおよびGPGPUでしか動作しない。MacBook Pro、Mac ProおよびハイエンドのiMacでは実行可能だが、MacBookやローエンドiMacはIntel製やATI製のGPUなので、各製造元が対応ドライバを開発しなければならない。

OpenCL≠CUDAであると仮定すると、

  • Mac OS Xに搭載される事となるが、他のプラットフォームではどうなるか。各OSベンダやGPUベンダを巻き込まなければならない。特にNVIDIAは既にCUDAを持っているので、あらたにOpenCLに対応するのか。

どちらのケースでも要点は同じで、OS/GPU/デベロッパなど、各ベンダを巻き込んで盛り上げていき、スタンダードとなれるかどうか、となります。恐らく各社間でしがらみのようなものもあるかと思いますので一筋縄ではいかないような気がします。

しかしGPGPUはコンシューマ向けでも活用がある技術です。オープンスタンダードを目指す、とのことなので参入し易くなるような土壌作りを期待したいと思います。

2008/06/11追記

米AppleのMac OS X Snow Leopardのページが一部訂正されていましたので再度引用させていただきます。

OpenCL

Another powerful Snow Leopard technology, OpenCL (Open Computing Language), makes it possible for developers to efficiently tap the vast gigaflops of computing power currently locked up in the graphics processing unit (GPU). With GPUs approaching processing speeds of a trillion operations per second, they're capable of considerably more than just drawing pictures. OpenCL takes that power and redirects it for general-purpose computing.

Apple - Mac OS Leopard - Snow Leopardより

OpenCLがOpen Compute Libraryか、Open Computing Languageかが各ページで不安定でしたが、Open Computing Languageが正しいようです。

また、WikipediaでOpenCLの項が出来ていました。

カテゴリ

タグ

関連記事

  1. OpenCL概要:ホストとデバイス、カーネルについて
  2. OpenCL 1.0 仕様書が公開

トラックバック

このブログ記事を参照しているブログ一覧: OpenCL(!)はスタンダードとなるか

このブログ記事に対するトラックバックURL: http://www.memorize-being.net/x/mt-engine/mt-tb.cgi/47

コメントする

このブログ記事について

このページは、cottonが2008年6月10日 16:52に書いたブログ記事です。

ひとつ前のブログ記事は「UNIX(Mac OS X)におけるFlex 3 SDKによるAIRプログラミング 環境設定」です。

次のブログ記事は「Flex 3 SDKで"pong"もどきを作りつつ、AIRでのゲームについて考えてみた。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1
Valid XHTML 1.0 Transitional
Valid CSS!
Mozilla Firefox ブラウザ無料ダウンロード