如何在OpenCL中声明多个n维点的数组

时间:2015-07-11 15:41:04

标签: arrays pointers opencl

我想将维度n的{​​{1}}数学向量数组传递给OpenCL,下面是函数定义。

dim

在编译OpenCL代码之前,函数参数__kernel void multiDimFunction(__global float** data, uint dim, uint n) { // TO DO: Kernel implementation } dim是已知的。

1 个答案:

答案 0 :(得分:1)

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

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