OpenCV 3中的OpenCL没有看到多个GPU

时间:2018-04-18 01:29:32

标签: c++ opencv opencl

我试图在我的MacBook Pro上调用Nvidia GT 650M GPU,其索引为1,集成GPU的索引为0。 (从运行$ clinfo

中找到

正如this StackOverflow question中提到的那样:

  

在OpenCV 3.0.0 beta [或更高版本]中,只检测到一个设备:

context.ndevices() // returns 1 instead of 2

当我在上面的答案中运行代码时,尽管设置cv::ocl::Device(context.device(1));

,OpenCV将始终使用第一个GPU

讨论主题in the OpenCV forum说这可能是由于平台上Nvidia GPU的兼容性(1.1),但对我来说情况并非如此。

我写了一个简单的OpenCL程序来在Nvidia GPU上创建一个上下文并运行内核,并且它成功了。因此,它不是OpenCL硬件兼容性问题(Apple支持article也证实了这一点)。

我尝试过但似乎没有帮助:

  • 在“系统偏好设置”中关闭自动图形切换
  • 切换到Nvidia Web Driver(来自macOS本机驱动程序)并安装CUDA。
  • OpenCL:1.2,在两个GPU上
  • OpenCV:3.4.1,来自HomeBrew
  • OS:macOS High Sierra 10.13.4
  • Xcode:9.3

0 个答案:

没有答案