【问题标题】:Compile OpenCV with Cuda fails使用 Cuda 编译 OpenCV 失败
【发布时间】:2011-12-21 23:03:14
【问题描述】:

我正在尝试使用 gpu 功能构建 opencv。所以我需要用cuda编译opencv。 我已经下载了opencv,还在我的ubuntu上安装了带有http://wiki.accelereyes.com/wiki/index.php/Installing_CUDA_Under_Ubuntu_10.04教程的cuda。

当我尝试在输出上cmake -D WITH_CUDA=ON 时,它说

找不到 CUDA:找到不合适的版本“.”,但要求位于 至少“4.0”(找到 /usr/local/cuda)

这个问题快把我逼疯了!我无法让它工作!我确信所有环境变量和路径对于 cuda 都是正确的。

您可能会想到什么解决方案?

【问题讨论】:

    标签: ubuntu opencv cuda cmake


    【解决方案1】:

    我自己制作了这个教程(其实我收集了它)。我在 ubuntu 11.10 上尝试过,我认为这对于像我这样的初学者来说是一个好的开始。希望对你有用。

    1-CUDA 不适用于 gcc 4.5 或更高版本,因此如果您的 gcc 版本更高,则应安装 gcc 4.4:

    $ sudo apt-get install build-essential gcc-4.4 g++-4.4
    

    2-现在下载并安装相应的 CUDA 驱动程序:

    $ sudo apt-get install \
    nvidia-current \
    nvidia-current-dev \
    nvidia-current-updates \
    nvidia-current-updates-dev
    

    3-从 nvidia 网站 (http://developer.nvidia.com/cuda-downloads) 下载 CUDA 工具包和 SDK 请注意,某些版本的 CUDA 驱动程序仅适用于特定版本的工具包(例如(驱动程序 280.13 可与工具包 4.0 或更低版本一起使用)。因此,如果您遇到指示 CUDA 驱动程序和运行时不匹配的错误消息,您应该返回并安装低版本的工具包,不用担心在重新安装过程中即使是高版本也会删除之前的工具包。 您可以通过以下方式检查 CUDA 驱动程序版本:

    $ cat /proc/driver/nvidia/version
    

    您可以通过以下方式查看工具包版本:

    nvcc –version
    

    4-复制并安装刚刚下载的两个 .run 文件: $ chmod +x (文件名) $ ./(文件名)

    5-要编译 SDK 示例,您还需要这个:

    $ sudo apt-get install freeglut3-dev libxi-dev
    

    并创建这些链接

    sudo ln -s /usr/lib/libXmu.so.6 /usr/lib/libXmu.so
    sudo ln -s /usr/lib/nvidia-173/libGL.so /usr/lib/libGL.so
    

    6-将 CUDA 添加到您的路径:

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/local/cuda/lib64
    

    7-现在添加库路径:

    cat /etc/ld.so.conf.d/nvidia_settings.conf  \
    /usr/lib/nvidia-setting  \
    /usr/local/cuda/lib64 \
    /usr/local/cuda/lib
    
    sudo ldconfig
    

    8-现在转到 NVIDIA_GPU_COMPUTING_SDK_... 文件夹并使用 vim 等文本编辑器打开文件 C/common/common.mk 并更改以下行:

    LINKFLAGS  +=
    

    到 LINKFLAGS += -L/usr/lib/nvidia-current

    并且 NVCCFLAGS := 到 NVCCFLAGS := -ccbin /usr/bin/gcc-4.4

    9-最后你应该编译并运行一个例子来确认安装完成。再次转到 NVIDIA_GPU_COMPUTING_SDK 文件夹并运行 make:

    sudo make
    

    要运行示例,请转到 NVIDIA_GPU_COMPUTING_SDK/C/bin/linux/release 并通过以下方式运行示例: ./(文件夹中文件之一的名称)

    10-稍后,当您想编写自己的 CUDA 程序时,您应该编辑 NVIDIA_GPU_COMPUTING_SDK 文件夹中的示例之一,并像刚才为示例所做的那样编译它。

    以下是一些您可以参考的网站:

    Source1 Source2

    【讨论】:

      【解决方案2】:

      检查 CUDA_ARCH_BIN 值。应该是 1.1 1.2 1.3 2.0 之类的。

      还要检查 CUDA_ARCH_PTX 并确保它正确且适合您的架构。从理论上讲,它可能是空的,但谁知道呢?

      【讨论】:

        猜你喜欢
        • 2012-05-23
        • 1970-01-01
        • 1970-01-01
        • 2018-02-05
        • 1970-01-01
        • 1970-01-01
        • 2014-03-14
        • 2014-06-01
        • 2014-06-03
        相关资源
        最近更新 更多