可以在CUDA中进行未对齐的装载和存储吗?

时间:2017-12-07 09:47:26

标签: cuda nvidia gpgpu

CUDA是否支持未对齐的加载和存储?可以从地址addr中天真地读取大小为k字节的(单个)值,使得addr%k!= 0?

更具体地说,将访问如下:

unsigned* p = (unsigned*) ((char *) my_aligned_ptr + 1); *p = 0xAABBCCDD;

unsigned* q = (unsigned*) ((char *) my_aligned_ptr + 11); unsigned x = *q;

有预期的效果吗?

1 个答案:

答案 0 :(得分:1)

尽管CUDA编程指南的Size and Alignment Requirement subsection有些含糊不清,但答案是不,不支持未对齐访问,句点。代码将编译但结果将(可能)就好像使用了一些附近的对齐地址。或者以其他方式未定义。

@tera在this answer中有解决方法。