的討論被限制於計算能力2.x的3約對準問題
問題1
一個curandState的大小爲48個字節(由測量的sizeof())。當一個curandState數組被分配時,每個元素是否被填充(例如,到64個字節)?或者他們只是連續地放在記憶中?
問題2
Passing structs to CUDA kernels的OP的規定, 「對準部分是不必要的」。但如果沒有對齊,訪問該結構將被分爲兩個連續訪問a和b。對?
問題3
struct
{
double x, y, z;
}Position
假設每個線程正在訪問上面的結構:
int globalThreadID=blockIdx.x*blockDim.x+threadIdx.x;
Position positionRegister=positionGlobal[globalThreadID];
爲了優化存儲器存取,我應該簡單地使用三個獨立的雙變量X,Y,Z,以替換結構?
謝謝你的時間!