繁体   English   中英

使用OpenCL在GPU上运行时,OpenCV给出断言失败错误

[英]OpenCV gives Assertion failed error when running on GPU using OpenCL

我有Nvidia GTX 970M GPU ,我正在尝试使用OpenCL在GPU上运行的c ++中运行人脸检测算法。

发生此错误的函数是:

    ocl::OclCascadeClassifier::detectMultiScale()

我得到的错误是:

OpenCV Error: Assertion failed (localThreads[0] * localThreads[1] * localThreads[2] <= kernelWorkGroupSize) in cv::ocl::openCLVerifyKernel

我知道此问题与设备的GPU有关,但我不知道如何解决此问题。 我曾尝试使用OpenCV版本2和3,但都给出了相同的问题。

问题在于它正在尝试使用Intel HD Graphics GPU而不是Nvidia GPU。 我通过选择Nvidia GPU作为OpenCL设备来解决此问题。

我使用的代码是:

cv::ocl::DevicesInfo devInfo;
int res = cv::ocl::getOpenCLDevices(devInfo);
if (res == 0)
{
    std::cerr << "There is no OPENCL Here !" << std::endl;
}
else
{
    for (unsigned int i = 0; i < devInfo.size(); ++i)
    {
        std::cout << "Device : " << devInfo[i]->deviceName << " is present" << std::endl;
    }
}
cv::ocl::setDevice(devInfo[1]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM