1

私はコンピューティング機能 1.3 GPU を持っています。ドキュメントに基づいて、同じハーフ ワープのスレッドがワード サイズに応じて同じ 32、64、または 128 バイトのメモリ セグメントからバイトにアクセスすると、これらのメモリ アクセスは 1 つに結合されます。

ただし、cudaMallocPitch() を使用して割り当てられた 2 次元配列の場合、同じハーフワープのスレッドが連続するバイトにアクセスする場合、これらのバイトが同じメモリ セグメントに存在することが保証されますか?

グローバルメモリへのCUDA合体アクセスにも同様の質問がありますが、2D配列を備えた計算機能1.3 GPUはカバーしていません。

4

1 に答える 1

2

はい-cudaMallocPitch()主に、合体動作が1つの行から次の行まで持続することを確認するために存在します。合体の基準はワープごとであるため、よりきめ細かく、2D配列の行内の連続するバイトに関係します。

オペランドサイズは少なくとも32ビットである必要があることに注意してください。そうでない場合、合体はまったく機能しません。

于 2013-02-16T16:01:49.177 に答える