0

正確な定義を意味します。Nvidia プロファイラーが、SM3.5 のワープ内の分岐分岐により、コードのワープ効率が非常に悪いと常に言うのはなぜですか?

私のコードはワープ内での分岐を可能な限り回避しており、私のコードが SM 2.0 でビルドされている場合、nvidia プロファイラーはワープ効率が 100% に近いことを教えてくれます。

しかし、同じカードで、コードが SM 3.5 でビルドされている場合、ワープ効率が突然 35% ~ 40% に低下します。これは信じられないほど低い効率です。

また、指示の発行パターンは、ワープごとに 1 回発行する場合の約 50% が、2 回発行する場合です。

残りはすべて問題ないので、誰かがワープ効率の正確な定義を教えてもらえますか? 彼らは、特定の時間に同時に実行されるワープ内のアクティブなスレッドの量をワープサイズで割ったものを意味しているのではないでしょうか?

では、なぜ私のコードは、異なる SM バージョンでビルドされた場合、同じ nvidia GPU で報告されたワープ効率 (SM3.5 で約 35% のワープ効率、SM2.0 で 100% 近くのワープ効率) が大幅に異なるのでしょうか?

4

1 に答える 1

1

ワープ効率が低いと報告されている特定のカーネルについては、「発散ブランチ」分析を使用して、どの特定のブランチ (存在する場合) が発散を引き起こし、ワープ効率の低下に寄与しているかを確認できます。

于 2013-03-26T00:19:57.143 に答える