我希望有人能帮助我解决这个问题。更改OpenCL内核中数组的大小
我需要通过使用这样的事情表示矩阵在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);
有没有办法让程序的主机部分知道数组(矩阵)的确切大小,不执行另一个内核,将计算的规模和阅读从缓冲区返回到主机T'
即使你找到了一个工作解决方案,你最好不要在内核中执行它。对于线性CPU而言,这比并行GPU更好。 – Daniel