红联Linux门户
Linux帮助

Ubuntu+Tesla M40上OpenCL问题解决过程

发布时间:2016-11-20 11:14:31来源:linux网站作者:撄宁之境
前些天配置了一台GPU机器,装了opencl,也装了OpenCV,OpenCV安装的时候使用了WITH_OPENCV=ON选项。
 
后面在准备数据库的使用,使用了caffe自带的conver_imageset工具,总是出现core dump。由于caffe是release编译的,gdb不出什么信息,显示错误在LMDB中:
Ubuntu+Tesla M40上OpenCL问题解决过程
 
感觉不太可能是LMDB的问题,于是编译了debug版本的conver_imageset-d,gdb core出来的信息是:
Ubuntu+Tesla M40上OpenCL问题解决过程
 
这回可以确定问题出在OpenCL,cv::ocl::haveOpenCL() 函数中。搜索了一下,确实有人在调用这个函数的时候收不到响应,但也没有帖子能说明为什么。于是我想是否是OpenCL没装好,于是打算重装OpenCL-》重装OpenCV-》最后重装caffe(鉴于依赖关系)。
 
当重装OpenCL的时候,cuda的相应项都被自动删除了,并换上了其他版本,reboot之后使用nvidia-smi就一直hang住没有响应。
Ubuntu+Tesla M40上OpenCL问题解决过程
 
看来保留opencl功能还需要进一步探索,而此机器上的opencv又急需使用,于是只能弃车保帅,使用如下选项编译了一版opencv,放弃了opencl。
 
cmake -DWITH_OPENCL=OFF -DWITH_CUDA=ON -D CMAKE_BUILD_TYPE=RELEASE -D WITH_FFMPEG=ON -D  WITH_TBB=ON -D OPENCV_EXTRA_MODULES_PATH= ~/opencv_contrib/modules -D CMAKE_INSTALL_PREFIX= /usr/local ..
 
然后一切都work了,就是速度比我CPU的mac上还慢一点。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/26163.html