OpenCL clCreateBuffer 和 clEnqueueReadBuffer 为什么耗时很久?

datasize = 52*52*255
controller->memdata[0] = clCreateBuffer(controller->context, CL_MEM_READ_ONLY |CL_MEM_COPY_HOST_PTR, datasize * sizeof(char), input, &controller->err);

耗时大约:26ms

controller->ret = clEnqueueReadBuffer(controller->command_queue, controller->memdata[2], CL_TRUE, 0, datasize * sizeof(float), output, 0, NULL, NULL);

耗时大约36ms

虽然opencl在GPU 里面运算很快,但是如何嵌合到C工程里,加上copy 和 read 时间 明显在性能上没有提示? 有懂的吗? 原因是什么或者给点优化的建议?