显示的整个错误是:
OpenCV错误:initializeOpenCLDevices中的Gpu API调用(-1001),文件/home/mmcom/opencv-2.4.9/modules/ocl/src/cl_context.cpp,第455行 OpenCV错误:getContext中的未知错误代码-221(OpenCL不可用),文件/home/mmcom/opencv-2.4.9/modules/ocl/src/cl_context.cpp,第677行 在抛出'cv :: Exception'的实例后终止调用 what():/ home / mmcom /opencv-2.4.9 / modules / cell / src / cl_context.cpp:677:错误:( - 221)OpenCL在函数getContext中不可用
然后我重新安装了整个Ubuntu 14.04操作系统和驱动程序,发生了同样的错误。
下面列出了重新安装Ubuntu 14.04 OS后我做的所有事情:
我使用的计算机是配备Intel Core i7 vPro和nVIDIA Quadro K4100M GPU的Dell Precision M6800移动工作站。
更多信息和关注点:
1.我认为核心问题是OpenCV的ocl模块由于某种原因无法识别nVIDIA GPU。但我不确定它是ocl模块的问题还是nVIDIA GPU及其驱动程序的问题。有简单的方法可以说明吗?
1.我的项目包含使用OpenCV的ocl加速模块和我自己的OpenCL函数的两个函数。事实证明,它们已经在实验室中使用AMD GPU在桌面上成功运行,如前所述,它们也在上周在当前的移动工作站上成功运行。
2.在我尝试使用新发布的OpenCV 3优化代码之前,Ubuntu软件更新程序出现错误,错误是关于nvidia 331更新问题,已经多次报告为错误。由于我忽略了错误并直接安装了OpenCV 3,我无法判断之前指示的OpenCV错误是由安装OpenCV 3还是nvidia 331更新问题引起的。是由司机冲突引起的还是什么?在项目运作良好之前,我不记得驱动程序的版本是331还是340或其他什么。
3.我使用CmakeList通过输入cmake来构建项目。命令,它清楚地说找到了OpenCL:/usr/lib/x86_64-linux-gnu/libOpenCL.so在etc / OpenCL / vendors / nvidia.icd中还有nVIDIA icd,里面有libnvidia-opencl.so.1。
4.我所做的关于nVIDIA GPU的是使用上面的命令为它安装OpenCL,我认为该命令还包括安装与nVIDIA GPU相关的其他软件包。从synaptic,它显示安装了以下包:
nvidia-331-uvm NVIDIA统一内存内核模块
nvidia-settings用于配置NVIDIA图形驱动程序的工具
nvidia-opencl-icd-331 NVIDIA OpenCL ICD
libcuda1-331 NVIDIA CUDA运行时库
nvidia-opencl-dev NVIDIA OpenCL开发文件
nvidia-libopencl1-331 NVIDIA OpenCL驱动程序和ICD加载程序库
nvidia-331 NVIDIA二进制驱动程序 - 版本331.113
是否意味着安装了包括GPU驱动程序,CUDA和OpenCL在内的所有相关软件包?我应该从nVIDIA安装其他模块或工具吗?
总而言之,我很困惑,Opencv的ocl模块在我更新Opencv 3之前运行良好,现在即使我尝试重新安装所有内容并尝试恢复旧环境,但它无效。
有什么建议吗?
谢谢大家。
编辑:有人建议我应该通过nVIDIA卸载openCL lib,我这样做了,错误变为: OpenCV错误:opencl_check_fn中的未知错误代码-6(OpenCL函数不可用:[clGetPlatformIDs]),文件/home/mmcom/opencv-2.4.9/modules/ocl/src/cl_runtime/cl_runtime.cpp,第83行 OpenCV错误:getContext中的未知错误代码-221(OpenCL不可用),文件/home/mmcom/opencv-2.4.9/modules/ocl/src/cl_context.cpp,第677行 在抛出'cv :: Exception'的实例后终止调用 what():/ home / mmcom /opencv-2.4.9 / modules / cell / src / cl_context.cpp:677:错误:( - 221)OpenCL在函数getContext中不可用答案 0 :(得分:0)
我在格式化后遇到了完全相同的问题。我试图运行的任何OpenCV-OpenCL代码都失败了,你在问题中给出了错误。为我修复它的信念 - 信不信由你 - 只是以root身份一次性运行这样的可执行文件。此后,所有其他项目中的OpenCL功能恢复正常。
我从this回答的最后一句中得到了这个想法。不知道问题的相关性如何。