一貫性のない一貫したGST/GLDのために教授のフィールドを計算しますか? (cuda/opencl)
質問
Compute Prof 3.2とGeForce GTX 280を使用しています。コンピューティング機能1.3があります。
このファイル, 、1.x計算デバイスを使用しているため、これらのフィールドを見ることができるはずだと示しているようです。まあ私はそれらを見ていません、そして3.2ツールキットのユーザーガイドは私がそれらを見ることができないと言っていますが、それらに電話します gst_uncoalesced
と gst_coalesced
.
要約すると、グローバルメモリから非合体の読み取りを作成している場合、プロファイラーからどのように理解すべきかについて混乱しています。フェルミカードも言うようには見えませんが、私は今のところそれらについて心配していません。誰かが状況について詳しく説明できるなら、私はそれを感謝します。
また、私はこのようなものを理解するために私のカーネルのアセンブリを見るように言われたので、これを行う方法についての詳細も高く評価されています。私もそのようなものを理解しようとし始めています:)
解決
プロファイリング出力に同様の問題がありました。 8600(コンピューティング機能1.0)では、合体と無視されていない読み取り/書き込みの両方を示しましたが、GTX280でのみ合体したことが示されました。 GTX 280でより良い合体がより明確になったためであると思いました(1つの単語を除くすべてのものが無視されていない記憶が読み取られていませんか?)。ただし、概要テーブルを調べることができます。そこには、各カーネルの負荷とストア効果があります。すべてのアクセスが合体している場合、効率は1である必要があります。そうでなければ、1つ以上(0.5は、荷重バイトの半分のみが使用されることを意味します)。
もちろん、それはあなたの不適切なアクセスがカーネル内にある場所を正確に把握するのに役立ちません。最良の方法は、合体の仕組みをまだ知っていることです(各ハーフウォープのアドレスが32、64、128byteアクセスに収集されますが、アクセス値ではなく、とにかくその領域内に転送されます)とアクセスパターンの分析は、最終的に進む方法です。