Tag: opencl gpgpu

为什么OpenCL内核不使用普通的xy坐标和Image2D?

TLDR; 对于任何人在试图弄清楚如何用OpenCL做高斯模糊或灰度的时候到达这里,最后的工作代码就在这里 。 请注意,在该回购协议中,我实际上是使用Nvidia的Docker包装器在GPU内部运行Docker中的所有内容。 您可以在“Dockerfile”里面find需要运行代码的步骤,或者在Nvidia-Docker上运行,如果你有这个设置并且在Nvidia GPU上运行的话。 原问题: 在OpenCL图像filter应用程序中使用以下内核,我得到预期的结果,即返回的灰度版本的input图像: const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST; __kernel void process(__read_only image2d_t src, __write_only image2d_t dst) { int x = get_global_id(0); int y = get_global_id(1); float4 color; color = read_imagef(src, sampler, (int2)(x, y)); float gray = (color.x + color.y + color.z) / 3; write_imagef(dst, (int2)(x,y), (float4)(gray, […]