C++ AMP (Accelerated Massive Parallelism)
先週開催された AMD の Fusion カンファレンスで、Daniel Moth が C++ AMP (Accelerated Massive Parallelism) のデモを行いました。C++ AMP とは、簡単に言うと、C++ で GPU の並列プログラミングを実装するものです。
Daniel Moth のブログから引用すると、C++ AMP とは…
- 開発者の生産性やソリューションの移植性を犠牲にすることなく、ヘテロ(つまり CPU と GPU)なハードウェア プログラミングの壁を低くし、その性能をメインストリームに提供する。
- 今日の大規模並列ハードウェア(つまりGPU と CPU)の使用を援助するだけではなく、コードへの投資を、将来に備えたデザインとして堅固なものにもする。
- Visual Studio の一部であり、別のコンパイラーや別の構文を学ぶ必要はない。
- 現在の C++ であり、C やその他の派生言語ではない。
- Visual Studio vNext と完全に統合・サポート。編集・ビルド・デバッグ・プロファイルなど Visual Studio の他のすべての機能が C++ AMP とともに動作する。
- 既存の同時実行名前空間の一部としてSTL に似たライブラリを提供し、amp.h ヘッダーファイルを提供する。
- 並列化が顕著な形として、ヘテロなハードウェア上で巨大な多次元データで非常に容易に動作する。
- 唯一のコア C++ 言語拡張を導入する。
- DirectX(特に DirectCompute)上に構築、DirectX はユビキタスで信頼のおける優れたハードウェア抽象化レイヤーを提供する。しかしそのアーキテクチャは、姿を現すことのない実装細部の API レイヤーとみなしてかまわない。
Comments
Anonymous
June 19, 2011
> 3. Visual Studio の一部であり、別のコンパイラーや別の構文を学ぶ必要はない。 「新たなツールを導入する必要はない」と言いたいのでしょうけど、この書き方だと、GCCやIntel C++ Compilerなど不要、と読めてしまいます。原文もそうなっているので、意図を訳注したほうがいいと思います。Anonymous
June 20, 2011
高橋さま、コメントありがとうございます。 原文は以下の通りですが、私は CUDA や DirectCompute のようなシェーダー言語を学んだり、シェーダーコンパイラーを使う必要がないという意味だと解釈しています。 3.is part of Visual C++. You don't need to use a different compiler or learn different syntax.