「CUDA Cプログラミングガイド5.0」では、p73に「グローバルメモリに存在する変数のアドレス、またはドライバまたはランタイムAPIのメモリ割り当てルーチンのいずれかによって返される変数のアドレスは、常に256バイト以上に調整されています。私はこの文の正確な意味を知らない。誰かが私のための例を見せてくれますか?どうもありがとう。cuda alignment 256bytes真剣に?
派生的質問: したがって、基本要素(intなど)または自己定義された要素の1次元配列はどのように割り当てられますか?配列の各要素のアドレスは、必ずしも256Bの倍数ではありませんが、配列の開始アドレスは256Bの倍数になりますか?アドレスは、次の例を考え256
の倍数である、すなわち、CUDAランタイムのデバイスのメモリ割り当て関数のいずれかを使用して割り当てられている
任意のcudaMallocの開始アドレスは256の倍数になります。256は2進数の2つのシンボルで、addrexxではゼロになります。 0x0456ad00ではなく0x0456ad80のようなアドレスを取得できます。 – osgx