讨论仅限于计算能力 2.x
问题 1
curandState 的大小为 48 字节(由 sizeof() 测量)。当分配 curandStates 数组时,每个元素是否以某种方式填充(例如,填充到 64 个字节)?还是它们只是连续放置在内存中?
问题2
将结构传递给 CUDA 内核的 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 来替换结构吗?
谢谢你的时间!