問題タブ [c++-amp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
7394 参照

c++ - C++11 は C99 制限指定子を追加しますか? そうでない場合、なぜですか?

restrictは、コンパイラがポインタに対して「以前は fortran のみ」の最適化を実行できるようにすることで、最近多くの注目を集めている C99 の機能です。また、Microsoft が最近 C++AMP 仕様の基盤として発表したのと同じキーワードでもあります。

そのキーワードは実際に FCD に含まれていますか? そうでない場合、それが省略された特定の理由はありますか?

0 投票する
4 に答える
1847 参照

language-agnostic - 並行性とメモリ モデル

GPGPU と新しい C++ AMP ライブラリに関する Herb Sutter によるこのビデオを見ています。彼はメモリ モデルについて話し、弱いメモリ モデル、次に強いメモリ モデルについて言及しています。また、読み取り/書き込みの順序などについて言及していると思いますが、よくわかりません。

Google はメモリ モデルに関するいくつかの興味深い結果 (主に科学論文) を出していますが、誰かが弱いメモリ モデルとは何か、強いメモリ モデルとは何か、およびそれらと同時実行性との関係を説明できますか?

0 投票する
4 に答える
1058 参照

c++ - C ++ AMPで「synchronize()」の呼び出しが不要なのはいつですか。

背景:C ++ AMPの概要については、DanielMothの最近のBUILDトークを参照してください。

ここここここ、そしてここで最初のウォークスルーを通過します。

その最後の参照でのみ、彼らはを呼び出しますarray_view.synchronize()

これらの簡単な例では、への呼び出しsynchronize()は不要ですか?いつ除外しても安全ですか?parallel_for_eachがそれなしで「同期的に」動作することを信頼できますか(進行中のコードなし)?

0 投票する
2 に答える
1050 参照

c++ - C ++ AMPのすべてのアクセラレータをどのように列挙しますか?

C ++ AMPでは、どのようにしてすべてのC ++ AMPアクセラレータを検出して列挙しますか?

Don McCradyは、エミュレートされていないアクセラレータを列挙するアプリをここで配布しました。DX11カード(GTX 260)を持っていましたが、利用可能なアクセラレータが見つかりませんでした。Daniel Mothは、ここで個々のアクセラレータをクエリする方法を示していますが、C ++ AMP呼び出しを使用してすべての(エミュレートされたおよび非)アクセラレータを列挙する方法を見つけることができませんでした。

0 投票する
1 に答える
295 参照

c++ - C++ AMP retrict(direct3d) コードで double が予期される int インデックスを使用する

グーグルはあまり役に立ちませんでした。AMP を使用したことのある人はいますか?

以下のコード スニペットでは、integer から double (double v = idx.x) へのキャストにより、「シェーダーの作成に失敗しました」という実行時エラーが発生します。私は、restrict(direct3d) がコンパイル時に GPU が処理できないことを警告してくれると思っていました。pow() に代わるものはありますか? または、そのためにループを作成する必要がありますか?

0 投票する
1 に答える
1532 参照

c++ - C ++ AMPは互換性のあるGPUのないマシンで実行されますか?

C ++AMPはDirectX11をサポートするGPUによって高速化されることを理解しています。
ただし、私の質問は、コンパイルされたC ++AMPプログラムがDirectX11互換のGPUを搭載していないマシンで実行された場合、どうなるかということです。

DirectComputeのソフトウェア実装によってエミュレートされますか?
CPUで実行されますか(おそらくSSEスタイルの命令を使用して)?
それとも、実行に失敗するだけですか?

0 投票する
2 に答える
1431 参照

c++ - C++ AMP で 2 次元配列を使用して array_view または配列オブジェクトを宣言する方法

int myarray[2][3]オブジェクトの初期化などに配列を使用しようとしていarray_viewます。私は試しましたがarray_view<int, 2> a(2,3, myarray);、うまくいきません。ベクトルでも同じことができるようにしたいと思います。何か案は?

0 投票する
2 に答える
806 参照

c++ - parallel_for_each でサポートされていない型エラー

私は C++ AMP をいじっていますが、何らかの理由で最も馬鹿げたコードがコンパイルされません。これ:

次のエラーが発生します。

エラー C3576: 'wmain::': Concurrency::details::_Parallel_for_each 引数 #3 にサポートされていない型 c:\program files (x86)\microsoft visual studio 11.0\vc\include\amp.h があります

ラムダ式が渡されるのが好きではないようですconst _Kernel_type& _Kernel

ノート; AMP サポートを含む Visual Studio 11 Developer Preview を使用しています。「restrict(direct3d)」は、問題のコードを実行するアクセラレータの制御をサポートする新しいキーワードです。

何か案は?いくつかの異なる例からコピーしようとしましたが、何も機能しないため、少し困惑しています。

0 投票する
1 に答える
618 参照

c++ - C++AMPでのインデックス変数の制御

私はC++AMPを試し始めたばかりで、現在取り組んでいるプロジェクトで試してみることにしました。ある時点で、私は持っているベクトルの距離行列を作成する必要があり、これのために以下のコードを書きました

ただし、ご覧のとおり、これは距離行列の対称性を考慮していません。行列ijのsqrsumを計算するとき、 ijの順序が逆になっているときに、同じ計算を再度実行したくありません。これを達成する方法はありますか?私は次のトリックを思いついたが、これがパフォーマンスを大幅に向上させるかどうかはわからない

if-conditionはその仕事をすることができますか?それとも、ifステートメントがパフォーマンスを不必要に損なうと思いますか?私はそれに代わるものを思い付くことができませんでした


ところで、上記のコードが私のマシンでは機能しないことに気づきました。そのgpuは単精度しかサポートしていません。その問題を回避するために何かすることはありますか?エラーメッセージは次のとおりです。「runtime_exception:Concurrency ;; parallel_for_eachは、選択したアクセラレータでサポートされていない機能を使用します。ID3D11Device:: CreateComputeShader:Shaderは、現在のデバイスでサポートされていない倍精度浮動小数点演算を使用します。」

0 投票する
2 に答える
2712 参照

c++ - C++ AMP ライブラリの使用

私は<amp.h>ライブラリをいじり始めようとしています。しかし、入力すると#include amp.h、ソースファイルを開けないというエラーが表示されます<amp.h>。これを利用できるようにするために何か特別なことをする必要がありますか?