Kernel OpenCL内核参数

Kernel OpenCL内核参数,kernel,opencl,Kernel,Opencl,我是OpenCL的新手。 我想在内核中传递一个type int参数来执行这些操作,但我不知道怎么做。我只研究过向量和矩阵,但我从未转移过心房安非他命 如果我有以下代码示例: typedef struct{ int fila; int columna; int value; }Matrix; int main(){ Matrix matrix; matrix.row = 56; matrix.column = 64; matrix.value = 0; flo

我是OpenCL的新手。 我想在内核中传递一个type int参数来执行这些操作,但我不知道怎么做。我只研究过向量和矩阵,但我从未转移过心房安非他命

如果我有以下代码示例:

typedef struct{
  int fila;
  int columna;
  int value; 
}Matrix;

int main(){

  Matrix matrix;
  matrix.row = 56;
  matrix.column = 64;
  matrix.value = 0;
  float A[matrix.fila][matrix.columna];
}
在内核中:

__kernel void matrix(__global int vue) {
     value = value + 10; //it is only an example
}
我可以在内核中执行上面的“matrix.valor”(值+10)操作吗??还是只针对向量和矩阵运算?
我需要cl_mem还是不需要?我现在对此感到迷茫。

从内核参数中删除
\uu global
。然后,在C/C++代码中,有一个类型为
cl_int
(在cl.h中声明)的变量,并将其设置为要传递到内核中的值。在调用内核之前(使用
clenqueueendrangekernel
)调用
clSetKernelArg
,调用内核参数、参数索引(0)、sizeof(cl_int)和变量地址(例如
clSetKernelArg(myKernel,0,sizeof(cl_int),&myVariable)

是clSetKernelArg的文档。另外,搜索OpenCL的任何部分