0
當我嘗試將數據循環回內核函數,幾次迭代停止工作後,只給出0作爲答案時,我的代碼會中斷嗎?有人知道爲什麼嗎?如果我循環調用內核的整個方法,但它的工作速度更慢OpenCL只在循環調用時停止運行
cl_mem *ptrInput = &Pressure_BUFF;
cl_mem *ptrOutput = &Pressure_OUT_BUFF;
for(int i = 0; i<Interaction_per_frame; i++){
clSetKernelArg(kernel_2, 4, sizeof(Pressure_BUFF), ptrInput);
clEnqueueNDRangeKernel(queue_2, kernel_2, 1, NULL,&work_units_per_kernel, NULL, 0, NULL, NULL);
clFinish(queue_2);//Terminar de calcular
cl_mem *ptrTpm = ptrInput;
ptrInput = ptrOutput;
ptrOutput = ptrTpm;
}
clEnqueueReadBuffer(queue_2, Pressure_OUT_BUFF, CL_TRUE, 0,sizeof(Pressure), Pressure, 0, NULL, NULL);
使用'clEnqueueCopyBuffer'代替cl_mem雜耍。 – anil