誰かがこれで私を助けてくれることを願っています。
次のようなものを使用して、行列を表す長い配列をopenclカーネルに渡す必要があります。
memObjects[2] = clCreateBuffer(context, CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR,
sizeof(double) * dets_numel, dets, NULL);
カーネル内では、条件に応じて行列の行をいくつか削除し、次のようなものを使用してホストに読み返したいと考えています。
errNum = clEnqueueReadBuffer(commandQueue, memObjects[2], CL_TRUE, 0,
dims1[0] * dims1[1] * sizeof(double), dets,
0, NULL, NULL);
サイズを計算し、バッファからホストに結果を読み取る別のカーネルを実行せずに、プログラムのホスト部分に配列 (行列) の正確なサイズを知らせる方法はありますか?