You can pass such a structure, but it will be pointless because x
, y
and z
point to different memory regions. Each of these memory buffers must be transferred on its own.
Passing structure to openCL Kernel
-
06-03-2022 - |
سؤال
I want to pass a structure to opencl kernel, the structure is
struct test
{
int *x;
float *y;
char *z;
};
and the memory allocation and initialization is like
struct test t;
t.x = (int*)malloc(sizeof(int)*100);
t.y = (float*) malloc (sizeof(float)*50);
t.z = (char*) malloc (sizeof(char) *25);
for(i = 0;i<100;i++)
{
t.x[i] = i;
if(i<50)
{
t.y[i] = i;
if(i<25)
t.z[i] = 'a';
}
}
can i pass such a structure to opencl kernel
المحلول
نصائح أخرى
Instead of structure, its better to allocate memory at the host side and send them to kernel as kernel parameters.
لا تنتمي إلى StackOverflow