Soy nuevo en OpenCL. He trabajado con kernel OpenCL con datos 1-D. Pero cuando traté de pasar un puntero tridimensional, no pude construir el kernel. Para ser específico me estoy poniendo CL_BUILD_PROGRAM_FAILURE. Aquí está el pseudo código para el kernel que estoy tratando de construir -¿Cómo usar una matriz 3-D en el kernel OpenCL?
__kernel void 3D_Test(__global float ***array)
{
x = get_global_id(0);
y = get_global_id(1);
z = get_global_id(2);
array[x][y][z] = 10.0;
}
Podría alguien darme una idea de lo que está mal con el código? ¡Gracias por adelantado!
debe comprobar el registro de generación, lo consigue con clGetProgramBuildInfo. –
También podría echarle un vistazo al tipo Image3D, compatible con OpenCL 1.1, que le permite almacenar y pasar matrices 3D con bastante facilidad. –