Opencv-ocl可与不同的硬件互换

Opencv-ocl excutable with different hardwares?

本文关键字:硬件 互换 Opencv-ocl      更新时间:2023-10-16

我正在开发opencv OCL库。我使用AMD Radeon™HD 7400M系列GPU。我需要澄清一下。

1) 我下载了AMD SDK,用opencl-enbled构建了opencv,并制作了一个用于人脸检测的基本c++可执行程序。在这种情况下,我的exe在以下情况下的行为:
a.当它在基于'OpenCL支持的Intel或NVIDIA GPU'的计算机上运行时
b.当它在没有OpenCL支持GPU的计算机上运行时?

2) 我需要为不同的硬件制作不同的opencv-ocl exe吗?

回答您的问题:

  1. 无论是在AMD、Nvidia还是Intel GPU上运行,exe都应该产生相同的输出,尽管运行时间可能会有很大差异。任何错误都应报告给OpenCV开发人员。一个例外:浮点运算会在不同的硬件之间产生略有不同的结果,但这些差异应该非常小,即接近浮点/双精度的极限。我不知道当没有任何OpenCL GPU时会发生什么。

  2. 通过不同的硬件,我假设AMD GPU与Nvidia GPU,而不是Mac与x86。在这种情况下,您不需要提供多个可执行文件。这就是使用OpenCL的全部原因,它将单个供应商的本地接口(例如Nvidia CUDA)隐藏在OpenCL标准后面。