为什么opencv 3.0 beta中没有openCL(ocl)?
我听说新的opencv透明地使用了opencl,但是当我在运行在intel核心i5(gpu HD400)上的Windows上进行测试时,由于在GPU上运行,我看不出任何速度提升。
我在这里错过了什么吗?
答案 0 :(得分:3)
有意删除OpenCV的Ocl模块。不再期望开发人员使用ocl::Canny
之类的调用。这些方法将由OpenCV在内部调用。预计开发人员将使用presentation中所述的UMat
结构。当OpenCL可用时,UMat
包裹clmem
。否则它默认为CPU。请参阅ocl.cpp。
关于速度,我会在下面确保
cvconfig.h
中,检查OpenCL标志是ON还是OFF ocl::setUseOpenCL(true)
UMat
代替Mat
我期望看到的不是FPS的大幅增加。即使假设使用GPU,也可能存在必须在CPU / GPU内存之间复制数据并来回传输的情况,这可能会影响最终性能。我希望看到处理卸载到GPU并减少CPU的负担。不一定是速度增加。
答案 1 :(得分:0)
关于这些工具,您可以使用AMD的CodeXL来观察OpenCV / OpenCL的行为。您可以看到OpenCL API调用的顺序,使用的内核,它们的性能和源代码,数据缓冲区及其内容等。当然,所有这些只在AMD硬件上。我认为对于NVIDIA,ParallelInsight可以做同样的事情。对于英特尔,不知道哪种工具可以提供帮助。