2015-07-11 83 views
0

我想将尺寸为dimn数学向量数组传递给OpenCL,下面是函数定义。如何在OpenCL中声明多个n维点的数组

__kernel void multiDimFunction(__global float** data, uint dim, uint n) 
{ 
    // TO DO: Kernel implementation 
} 

函数参数dimn OpenCL的代码被编译之前是已知的。

回答

1

典型的方法是将您的值存储在一维数组中并手动计算线性索引。例如,要访问data(x,y),您需要加载data[x + y*dim]

如果dim是OpenCL通过矢量类型(2,3,4,8或16)支持语言的值,那么您可能会使用这些类型的数组(例如global float8 *data用于Nx8数组,您可以作为data[i].s0data[i].s7)访问。