OpenCV -3.0.0 / OpenCL中的UMAT访问冲突

时间:2015-09-15 05:59:39

标签: c++ opencv opencl

我一直试图在UMat变量上找出简单的subtract()和norm()运算。从OpenCV 3.0.0开始,我们就拥有了T-API,可以轻松访问OpenCL下的GPU / CPU功耗。 我已经确认了;

  1. 我的系统图形INTEL HD 4600支持OpenCL 1.2
  2. 由于在OpenCV中弄清楚如何使用特定设备有点笨拙,我现在的环境变量如OPENCV_OPENCL_DEVICE =:GPU:0
  3. 我用UMat替换了部分代码,现在我不断遇到访问冲突错误。
  4. Windows 8.1(x64),VC ++ 14下的VS2015。我的应用程序是x64位
  5. 使用IPP的OpenCV构建,启用了OPENCL选项。但我没有英特尔OpenCL SDK 1.2,只有驱动程序可用。
  6. OpenCL support

    Environment variable

    Stack Trace 我附加了屏幕截图以确保我的意思。您可以从堆栈跟踪中清楚地看到错误。

    我用于OpenCL支持的代码行是;

     UMat result;
    cv::subtract(FeatureVectorA.getUMat(ACCESS_READ),FeatureVectorB.getUMat(ACCESS_READ),result);
        auto r = cv::norm(result);
        result.release();
    

    但这种简单的操作似乎在某种程度上被破坏了。我不了解OpenCL,除了它是CPU / GPU / SoC制造商遵循的标准。

    任何提示都会有所帮助。

0 个答案:

没有答案