BT

MicrosoftがC++ AMP仕様を公開し、データ並列処理の障壁を下げる意向

| 作者: Jeff Martin フォローする 16 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2012年2月12日. 推定読書時間: 2 分 |

原文(投稿日:2012/02/08)へのリンク

MicrosoftはC++ Accelerated Massive Parallelism (C++ AMP)のオープンな 仕様 (PDF)を GoingNative 2012イベントに合わせてリリースした。 C++ AMPは「データ並列ハードウェア上でC++コードを高速化することを可能にするプログラミングモデル」と、記述されている。そのようなハードウェアの最も共通な例は、別個のグラフィックスカード上のGPUで、複数コア/SSE CPUを代替として使うことのできるものである。

Microsoftは C++ AMPプログラミングモデルを以下のように説明している。

...上記の点を思うようにコントロールできます:CPUとアクセラレータ間のデータコピーそしてGPU上で実行される計算。CPUとアクセラレータ間の全通信を思い通りに管理でき、この通信は同期、あるいは非同期どちらでもよい。アクセラレータ上で実行されるデータ並列計算は、C++プログラミング言語のサブセットである多次元配列、高レベル配列操作関数、多次元インデックス操作、そして他の高レベル抽象を使うことによって表現される。プログラミングモデルは、多層なので、使用の容易性と最高パフォーマンスとのトレードオフがある。


Microsoftによるこの標準の実装は DirectX 11が走るどのシステム上でも使用できるが、もし DirectX 11が存在しない場合は、非C++バージョンのコードが実行される。Microsoftは C++ AMPをWindowsのみにする意図はなく、「 誰でも C++ AMPオープン仕様を どの プラットフォームに実装する人でも、サポートし、後押しする」と言っている。(強調はオリジナル)。これまで、プロジェクトは Nvidia と AMDの両方からの貢献を反映している。その他の実装を後押しするために、Microsoftは Microsoft Community Promiseの 条項のもとで C++ AMP仕様書の全部をリリースした。

C++ AMP と Direct 3D間の相互運用性は、Microsoftの実装ではサポートされているが、公式仕様では要求されていない。OpenGLとの相互運用性は現在サポートされておらず、開発者の Daniel Moth氏が投稿した最近のフォーラムによると、C++ AMP チームにはOpenGLの経験のあるものがいないので、このサポートは予定されていない、と 言っている

新しい C++ AMPプログラミングモデルを試したい開発者は Visual Studio 11 Developer Previewを ダウンロード して、この MSDNブログにあるサンプルコードを検討することで試すことができる。(これらのコードにはC#から C++ AMPを使うことができる例も含まれている)。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT