如何将向量的 C++ 向量传递给 OpenCL 内核?

How to pass C++ vector of vectors to OpenCL kernel?

我需要将一个 C++ 向量的向量传递给 OpenCL 内核,例如,我有以下数据:

3 1 9 1 3 8 5 1 3 8 4

3 9 4 0 7 4 3

1 0 4 8 2 8 3 1 2

1 9 3 2

8 3 9 4

4 9 3 9 5 4 3

我在 C++ 中的数据结构是向量的向量:

所以,我的结构是一个大小为 6 的 vectos 向量,向量的大小 'i' 是动态的。

如何将数据传递给 OpenCL 内核?

有什么想法吗?

谢谢。

如果您仍然感兴趣:

在主机端创建向量:

std::vector<std::vector <float> > yourVector;

然后在你的主机上,将你的向量传递给内核作为

std::vector<std::vector <float>& >& yourVector

在内核的输入参数中,使用

__global float (*yourVector)[6]

您现在可以访问内核中的元素,例如

yourVector[0][0]

没有测试,但应该可以。也许你需要稍微调整一下。