我想知道,如果有OpenCL兼容的GPU可用,OpenCV UMat是否总是驻留在GPU端?使用“cv :: ocl :: setUseOpenCL(true)”会有什么区别吗?如果UMat位于GPU端,这是否意味着在调用umat.getMat()时才会发生CPU-GPU之间的数据传输?非常感谢!
UMat并不完全驻留在单个硬件组件上,例如CPU或GPU。UMat在内部实现了OpenCL框架,试图利用连接到设备的任何有能力的硬件的处理能力,可以是CPU、GPU甚至移动设备中存在的数字信号处理器,因此OpenCL可在多个可处理的设备之间执行高效的多处理。欲了解更多信息,请访问link。