問題タブ [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 投票する
1 に答える
1358 参照

c++ - C++ AMP、for ループから parallel_for_each ループへ

C++ AMP が提供する大規模な高速化を利用するために、アルゴリズムを変換しています。私がいる段階では、for ループを既知の parallel_for_each ループに入れています。

通常、これは簡単な作業ですが、最初に考えたよりも複雑に見えます。これは、反復ごとに 4 のステップを使用してインクリメントするネストされたループです。

私が抱えている問題は、インデックスの使用です。これを parallel_for_each ループに適切に適合させる方法が見つからないようです。ランク 2 のインデックスを使用するのが最善の方法ですが、分岐を介して操作すると、パフォーマンスの向上に悪影響を及ぼします。

同様の投稿を見つけました: Controlling the index variables in C++ AMP。インデックス操作についても扱っていますが、インクリメントの側面は私の問題をカバーしていません。

よろしくお願いいたします。

フォースキャスト

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

c++ - CPU より遅い高速 GPU を使用する C++ AMP

私は C++ AMP を学び始めたばかりで、VS 2012 RC でビルドしたサンプルをいくつか入手しましたが、GPU のパフォーマンスが CPU よりも遅いことがわかりました。たとえば、Kate Gregory による例: http://ampbook.codeplex.com/releases/view/90595 (彼女の今後の書籍http://www.gregcons.com/cppamp/に関連するもの))。それらは、私が見た講義で彼女によって実演され、そこで彼女はラップトップの GPU (彼女は 6650 だと言ったと思います) を CPU (彼女が持っていた CPU は不明) と比較して、第 4 章の例で約 5 倍のパフォーマンス向上を得ました。この例を自分でテストしてみましたが、いくつかのシステム構成 (以下を参照) で、常に CPU の方が高速であることがわかりました。他の例もテストしましたが、同じことがわかりました。私は何か間違ったことをしていますか?パフォーマンスが予想よりも遅い理由はありますか? GPUが高速であることを確実に示す例はありますか?

  • システム 1: オンボード グラフィックスを搭載した Intel i7 2600K (これは遅くなると思います)
  • システム 2: AMD 6770 と切り替え可能な Intel HD を搭載した Intel i7 2630QM (パフォーマンス モードで実行しているので、6770 を使用する必要があります)
  • システム 3: Intel i5 750 と 2xCrossfire AMD HD 5850

結果の例: chapter4 プロジェクトは、1.15 ミリ秒の CPU、2.57 ミリ秒の GPU、2.55 ミリ秒の GPU を並べて表示します。

編集

ああ、私はその理由を見つけたと思います-彼女が講義で使用した行列のサイズの値が異なっていました. Web サイトのサンプルでは、​​M=N=W=64 を使用しています。彼女が講義で行ったように 64、512、および 256 を使用すると、対応する最大 5 倍のパフォーマンス向上が得られます。

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

string - GPUでの文字列処理のベストプラクティスは?

GPUで数値ではなく文字列を処理するのはどれほど現実的か疑問に思いました。具体的には、C ++ AMPを使用して、文字列の配列とターゲット文字列を比較することに関心があります。

関数にを渡すなどの基本から始めましたが、 !wchar_t* strings[]よりも小さいタイプのビューを作成することさえできないことがわかりました。int

だから私の質問は-そこにベストプラクティスはありますか、それともこれは一般的に悪い考えですか?ワープの発散などにも興味があります。たとえば、大きな配列で文字列の長さを計算するのはどれほど効率的でしょうか。

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

c++-amp - C++ AMP のパフォーマンスを測定中の奇妙な結果

以下に示すコードで、この timerを使用して C++ AMP 呼び出しをラップしています。残念ながら、タイマーによると、私の C++ AMP 呼び出しには約 2 秒かかります。誰かが何が悪いのかを理解するのを手伝ってくれますか?

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

c++ - short を int にパック/アンパック

2 つの符号付き 16 ビット整数を 32 ビット整数にパック/アンパックしたいと考えています。しかし、私はそれをうまく機能させていません。

私が間違っているかもしれないことについてのアイデアはありますか?

関数の戻り値/引数は、私が定義したとおりでなければなりません。loとはhi異なるスレッド (つまり、atomic_or) から書き込まれ、読み取りは単一の 32 ビット値を返す必要があります。

16 ビット整数演算は、ターゲット プラットフォームではサポートされていません。

例:

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

c++ - C++ AMP の使用時に GPU ブレークポイントがヒットしない

デバッガーの種類をGPU onlyに設定し、line ステートメントを含む 8 行のparallel_for_eachラムダのすべての行にブレークポイントを設定しましたparallel_for_eachが、ヒットすることはありません。Windows 8 Pro で Visual Studio 2012 を使用しています。

ブレークポイントを機能させるには、どのような手順を実行する必要がありますか?

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

c++-amp - すでにアプリケーションを手動でスレッド化している場合は、C ++ AMPを使用する必要がありますか?

C++AMPが何に適しているのかわかりません。アプリケーション(この場合はレイトレーサー)をすでにマルチスレッド化してシステム上のn個のコアすべてを使用している場合、C ++ AMPを使用する必要がありますか、それとも実際にボトルネックが増えるのでしょうか?(マルチスレッド化しようとすると、すべてのCPUコアがすでに100%使用されています)

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

c++ - C++ AMP を使用する必要がある場合

C++ AMP を使用する必要がある (または使用しない) 場合は?

AMP のオーバーヘッドとは何ですか? データを GPU メモリにコピーして戻すのにかかる時間は? AMP がパフォーマンスを低下させ始めるときの最小データ サイズはどれくらいですか?

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

c++ - 制限(amp)関数のデフォルトパラメータ

次のコードはコンパイルに失敗します。エラーメッセージは次のとおりです。

エラー1:

エラー2:

エラー3:

プログラム:

不思議なことに、restrict(amp)onを削除し、ラムダ内のfoo()の呼び出しを、たとえば、に置き換えると、プログラムは正常にコンパイルされます。では、amp関数のデフォルト引数での関数呼び出しのルールは何ですか?f1()5

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

c++ - C++ AMP が異なる次元の array_views を反復処理する

Windows 8 の Visual Studio 2012 で C++ AMP を使用していexperimentDataますexperimentFactors。2D array_view の最初の次元と 1D array_view の 1 次元を反復処理したいと考えています。これは私が持っているものですが、これにはオーバーロードがないというエラーが常に発生します。numberOfTests最初の次元であるを反復処理したいと考えています。私は行が欲しいです:

データの行全体を返します。の方法はこれを行う方法だと思いますが、section方法array_viewがわかりません。

オブジェクトはのtest1xN セクションである必要がありますexperimentData array_view。オブジェクトは からのfactors1 つのアイテムである必要がありますexperimentFactors array_view

明確化

array_viewexperimentDataには M 行と N 列があります

array_viewexperimentFactorsには M 行があります