OpenCL中的设备内存对象地址是否自动对齐?

问题描述 投票:0回答:1

这里是示例代码:

__kernel void my_kernel(__global float* src,
                        __global float* dst){

    float4 a = vload4(0,src);
    //do something to a
    ...
    vstore4(a,0,dst)

}

根据OpenCL 1.2 Reference,使用srcdst时,全局缓冲区vloadnvstoren的地址必须对齐4个字节,否则结果不确定。我的问题是,在完成对clCreateBuffer的调用后,OpenCL是否将自动对齐全局设备地址?如果没有,如何确保正确对齐?(此外,local存储对象如何?)

opencl gpgpu memory-alignment
1个回答
0
投票

参考Data Type of OpenCL。 OpenCL编译器负责按照数据类型的要求将数据项对齐到适当的对齐方式。所以我认为答案基本上是肯定的。

© www.soinside.com 2019 - 2024. All rights reserved.