我需要将 a 传递vector<vector<string>>
给内核 OpenCL。最简单的方法是什么?传递 achar***
给我一个错误:
__kernel void vadd(
__global char*** sets,
__global int* m,
__global long* result)
{}
错误:clBuildProgram(CL_BUILD_PROGRAM_FAILURE)
在 OpenCL 1.x 中,这种事情基本上是不可能的。您需要转换数据,使其适合单个缓冲区对象,或至少适合固定数量的缓冲区对象。主机上的指针在设备上没有意义。(使用 OpenCL 2 的 SVM 功能,您可以在主机和内核代码之间传递指针值,但您仍然需要确保以适合此的方式分配内存。)
我能想到的一个选择,记住我对你程序的其余部分一无所知,如下: