2 次元ベクトルを openCL float 配列に入れるのに苦労しています。
テスト配列と動的ベクトルを次のように定義します。
double ABCD[2][2]; //Works
vector< vector<float> > Jacobian(0, vector<float>(0)); //Doesn't work
cl_float *input_float; //openCL Input Array
私は C++ プログラムでヤコビアンを使って多くの作業を行っており、最終的にそれを openCL プログラムに渡す必要があります。
input_double = *ABCD; //works fine in the openCL program
input_float = Jacobian; /*error C2440 no suitable conversion
from std::vector to cl_float exists*/
ポインターをいじっても、これは機能しません。動的ベクトルを cl_float 構造に取得する方法についてのアイデアはありますか? ドキュメンテーションが不足しています。
最終的には、それを独自のバッファーに配置し、GPU 内で作業しています。
inMapPtr = clEnqueueMapBuffer(
commandQueue,
inplaceBuffer,
CL_FALSE,
CL_MAP_WRITE,
0,
SIZE_F,
0,
NULL,
&inMapEvt,
&status);
memcpy(inMapPtr, input_float, SIZE_F);
どんな助けでも大歓迎です。