私は 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 倍のパフォーマンス向上が得られます。