clFinish()之后的Opencl clWaitEvent()导致内存泄漏

时间:2014-12-18 15:52:06

标签: memory-leaks opencl

由于函数clWaitEvent(),我遇到了一些内存泄漏问题。 我使用clWaitEvent()来计算内核的执行时间:

ciErrNum = clEnqueueNDRangeKernel(this->commandQueue, this-> kernel_calcHash, 1, NULL, &globalWorkSize, &localWorkSize, 0, NULL, &prof_event);

clFinish(this->commandQueue);
ciErrNum = clWaitForEvents(1, &prof_event);
ciErrNum |= clGetEventProfilingInfo(prof_event, CL_PROFILING_COMMAND_START, sizeof(cl_ulong), &ev_start_time, NULL);
ciErrNum |= clGetEventProfilingInfo(prof_event, CL_PROFILING_COMMAND_END, sizeof(cl_ulong), &ev_end_time, NULL);
ciErrNum |= clReleaseEvent(prof_event);
oclCheckError(ciErrNum, CL_SUCCESS);

使用valgrind,我发现一些内存泄漏,如果我对clWaitForEvents()函数进行注释,它将被删除。 我在这种方法之后发布了这个事件,所以我不知道为什么会发生这种情况。有人有想法吗?

1 个答案:

答案 0 :(得分:0)

尝试clEnqueueNDRangeKernel

const YourComponent = (props) => {
  if (users.length === 0){
    return <div> Loading </div>
  }
  return(
    <div>
      {users.map(user => 
        <div>
          {user.name}
        </div>  
      )}
    </div>
  )
}