我想将维度n
的{{1}}数学向量数组传递给OpenCL,下面是函数定义。
dim
在编译OpenCL代码之前,函数参数__kernel void multiDimFunction(__global float** data, uint dim, uint n)
{
// TO DO: Kernel implementation
}
和dim
是已知的。
答案 0 :(得分:1)
典型的方法是将值存储在一维数组中并手动计算线性索引。例如,要访问data(x,y)
,您需要加载data[x + y*dim]
。
如果dim
是OpenCL对via矢量类型(2,3,4,8或16)的语言支持的值,那么您可能会使用这些类型的数组(例如global float8 *data
对于Nx8阵列,您可以data[i].s0
到data[i].s7
进行访问。