如何使用opencl提高opencv中从Mat到oclMat的数据转换效率

时间:2017-04-27 08:50:53

标签: opencv opencl gpu cpu

我已经用opencv和openCL编写了一个函数,并计算了执行时间。

GET_SYS_TIME(start_time);
ocl::oclMat ocl_in(src_img);
GET_SYS_TIME(end_time);
printf("data transfermation cost time=%lu ms, %lu us!\n", \
    (end_time - start_time)/1000lu, (end_time - start_time));

ocl::oclMat ocl_resized_src_img;

GET_SYS_TIME(start_time);
ocl::resize(ocl_in, ocl_resized_src_img, Size(ocl_in.cols/4, 
    ocl_in.rows/4));
GET_SYS_TIME(end_time);
printf("resized cost time=%lu ms, %lu us!\n", \
    (end_time - start_time)/1000lu, (end_time - start_time));

ocl_in.download(src_img);

ocl :: oclMat ocl_in(src_img);此代码的功能是将数据从Mat(CPU)传输到oclMat。它的成本是调整大小的六倍。我不知道如何缩短从CPU到GPU的数据转换的时间消费者。

0 个答案:

没有答案