0

2 つの異なるマシンでコンパイルされた同じ CUDA カーネルの計算時間には、約 3 倍から 4 倍の差があります。どちらのバージョンも同じマシンと GPU デバイスで実行されます。違いを説明する直接的な結論は、異なるコンパイラ設定です。単一の完璧な設定はなく、カーネルに応じてチューニングをカスタマイズする必要がありますが、適切な設定を選択するための明確なガイドラインがあるかどうか疑問に思っています。Visual Studio 2010 を使用しています。ありがとうございます。

4

1 に答える 1

3
  1. 最速のパフォーマンスが必要な場合は、デバッグ モードではなくリリース モードでコンパイルします。nvcc コンパイラに渡される-Gスイッチは、通常、GPU コードのパフォーマンスに悪影響を及ぼします。
  2. 一般に、コンパイルする GPU に適したアーキテクチャを選択することをお勧めします。たとえば、cc 2.1 機能の GPU を使用している場合は、設定 (GPU コード設定の sm_21) がコンパイラに渡されていることを確認してください。これにはいくつかの反例があります (たとえば、cc 2.0 用のコンパイルはより高速に実行されるように見えるなど) が、一般的な推奨事項としては、これが最適です。
  3. 最新バージョンの CUDA (コンパイラ) を使用します。これは、GPU ライブラリ (CUFFT、CUBLAS など) を使用する場合に特に重要です (はい、これは実際にはコンパイラの設定ではありません)。
于 2013-07-02T21:37:34.843 に答える