我想将结构传递给opencl内核,结构是
struct test
{
int *x;
float *y;
char *z;
};
并且内存分配和初始化就像
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';
}
}
我可以将这样的结构传递给opencl内核
答案 0 :(得分:2)
你可以传递这样的结构,但它没有意义,因为x
,y
和z
指向不同的内存区域。每个内存缓冲区必须单独传输。
答案 1 :(得分:0)
而不是结构,最好在主机端分配内存并将它们作为内核参数发送到内核。