如何将向量的 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++ 中的数据结构是向量的向量:
- std::vector < std::vector < int > >
所以,我的结构是一个大小为 6 的 vectos 向量,向量的大小 'i' 是动态的。
如何将数据传递给 OpenCL 内核?
有什么想法吗?
谢谢。
如果您仍然感兴趣:
在主机端创建向量:
std::vector<std::vector <float> > yourVector;
然后在你的主机上,将你的向量传递给内核作为
std::vector<std::vector <float>& >& yourVector
在内核的输入参数中,使用
__global float (*yourVector)[6]
您现在可以访问内核中的元素,例如
yourVector[0][0]
没有测试,但应该可以。也许你需要稍微调整一下。
我需要将一个 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++ 中的数据结构是向量的向量:
- std::vector < std::vector < int > >
所以,我的结构是一个大小为 6 的 vectos 向量,向量的大小 'i' 是动态的。
如何将数据传递给 OpenCL 内核?
有什么想法吗?
谢谢。
如果您仍然感兴趣:
在主机端创建向量:
std::vector<std::vector <float> > yourVector;
然后在你的主机上,将你的向量传递给内核作为
std::vector<std::vector <float>& >& yourVector
在内核的输入参数中,使用
__global float (*yourVector)[6]
您现在可以访问内核中的元素,例如
yourVector[0][0]
没有测试,但应该可以。也许你需要稍微调整一下。