opencl:如何将3d纹理从主机传递到设备
我正在将一些CUDA代码移植到opencl 1.2,在CUDA代码中,我有一个结构定义为:opencl:如何将3d纹理从主机传递到设备,opencl,Opencl,我正在将一些CUDA代码移植到opencl 1.2,在CUDA代码中,我有一个结构定义为: struct Info{ cudaTextureObject_t in[10]; cudaSurfaceObject_t out[10]; }; 我需要从主机传递到设备。 设备需要从中读取并写入中。 我正在使用image3d\u t作为纹理/曲面数据类型,并打算使用write\u imagef修改out,但是write\u imagef似乎只受opencl
struct Info{
cudaTextureObject_t in[10];
cudaSurfaceObject_t out[10];
};
我需要从主机传递到设备。
设备需要从中读取
并写入中
。
我正在使用image3d\u t
作为纹理/曲面数据类型,并打算使用write\u imagef
修改out
,但是write\u imagef
似乎只受opencl 2.0支持
是否有其他方法可以将3d纹理传递到设备并修改它们
谢谢。
write\u imagef
从1.0开始就支持3D图像,但只有在您的设备支持cl\u khr\u 3D\u image\u write
扩展时才支持。看
另外,
write\u imagef
是从内核写入映像的方式。您的标题是“如何将3d纹理从主机传递到设备”,因此您应该使用clEnqueueWriteImage
来实现此目的。谢谢。但似乎并非所有NVIDIA卡都支持此扩展。我得到:警告:未知“#pragma OPENCL扩展”-已忽略