C ++ AMP


C++_AMP

 「C ++ AMP」  
C ++ Accelerated Massive Parallelism(C ++ AMP)は、C ++ プログラミング言語とそのランタイムライブラリにまたがる要素を含むネイティブプログラミングモデルです。グラフィックカード(GPU)などのデータ並列ハードウェアでコンパイルおよび実行するプログラムを簡単に作成する方法を提供します。
C ++ AMP
原作者
マイクロソフト
タイプ
としょうかん
ライセンス
決定的ではない
Webサイト
docs .microsoft .com / en-us / cpp / parallel / amp / cpp-amp-cpp-accelerated-massive-parallelism 
Visual Studio 2022(バージョン17.0)以降、C ++ AMPは非推奨として宣言されており、Visual Studio2022以降のサポートが終了したことを示しています。
C ++ AMPは、ライブラリに実装のDirectX 11およびオープンな仕様からのMicrosoft C ++で直接データの並列処理を実装するため。これは、開発者がGPUのプログラミングを容易にすることを目的としており、専門知識がない場合(この場合、システムは最善を尽くします)から、より細かく制御可能でありながら移植性が高いものまで、幅広い専門知識をサポートします。Microsoftの実装では、GPUで実行できないコードは、代わりに1つ以上のCPUにフォールバックし、SSE命令を使用します。 Microsoftの実装は、デバッガーとプロファイラーのサポートを含め、Visual Studio2012に含まれています。
Microsoftからの最初のC ++ AMPリリースには、少なくともWindows7またはWindowsServer 2008R2が必要です。 C ++ AMPはオープン仕様であるため、Microsoft以外の実装がやがて登場すると予想されます。この初期の例の1つは、Clang / LLVMおよびOpenCLでのIntelのC ++ AMPの実験的実装であるShevlinParkです。
2013年11月12日、HSA Foundationは、OpenCL、標準ポータブル中間表現(SPIR)、および現在のC ++ AMP仕様をサポートするHSA中間言語(HSAIL)に出力するC ++ AMPコンパイラを発表しました。ソースはhttps://github.com/RadeonOpenCompute/hccで入手できます。C ++ AMPのサポートは廃止されたと見なされ、現在のROCm1.9シリーズが最後にサポートされます。
C ++クラスを使用して並列および異種プログラミング機能を表現するなど、C ++ AMPの背後にある基本的な概念は、SYCL標準に影響を与えています。

コンテンツ
1 特徴
2 も参照してください
3 参考文献
4 参考文献
5 外部リンク

特徴
Microsoftrestrict(amp)は、関数をC ++ AMPアクセラレータで実行できることを宣言するために、任意の関数(ラムダを含む)に適用できる機能を追加しました。コンパイラーは自動的に計算カーネルを生成し、管理の定型文を保存し、別の言語を使用する必要が制限キーワードは、関数がほとんどのGPUでサポートされている言語機能のみを使用することを静的にチェックするようにコンパイラーに指示します。たとえば、void myFunc() restrict(amp) {…}MicrosoftまたはオープンC ++ AMP仕様の他の実装者は、他の目的のために他の制限指定子を追加できます。 C ++ AMPとは無関係です。
新しい言語機能に加えて、C ++ AMPの残りの部分は、同時実行名前空間のヘッダーファイルを介して利用できます。主要なC ++ AMPクラスはarray、array_view(アクセラレータ上のデータ用のコンテナ)、(データ用のラッパー)、index(N次元のポイント)、extent(N次元のサイズ)、accelerator(メモリを割り当てるGPUなどの計算リソースです。および実行)、およびaccelerator_view(アクセラレータのビュー)。parallel_for_eachC ++ AMP並列ループを作成するために使用するグローバル関数も

も参照してくださいOpenCL CUDA GPGPU OpenACC
Khronos GroupのSYCLは、C ++ AMPのいくつかの概念を拡張したものです。
バルカン
RaftLib

参考文献
^ ++ AMP1ページの要約リンク切れ ^ Shevlin Park:Clang / LLVMとOpenCLを使用したC ++ AMPの実装 ^ 「CLANGとLLVMを介してWindowsを超えてC ++ AMPをもたらす」。
^ https://github.com/RadeonOpenCompute/hcc/wiki

参考文献
ケイトグレゴリー、アデミラー。C ++アンプ:アクセラ大規模な並列処理でのMicrosoft Visual C ++ -マイクロソフト、2012から326ページ-
ISBN 9780735664739 

外部リンク
C ++ AMP:言語とプログラミングモデル—バージョン1.0:2012年8月
ネイティブコードでの並列プログラミング-C ++ AMPチームブログ
http://hsafoundation.com/bringing-camp-beyond-windows-via-clang-llvm/CLANGおよびLLVMコンパイラでのC ++ AMPのサポート
https://github.com/RadeonOpenCompute/hccCLANGおよびLLVMコンパイラでのC ++ AMPのサポート