安装CUDA模块失败,找不到CUDA驱动程序库。

5

我正在尝试安装Manuel Chakravarty的加速模块,但是在cuda依赖方面遇到了一些问题。

我已经从NVIDIA安装了CUDA开发人员驱动程序和CUDA工具包。具体来说:

ludflu@beefy ~/Downloads $ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2011 NVIDIA Corporation
Built on Thu_Jan_12_14:41:45_PST_2012
Cuda compilation tools, release 4.1, V0.2.1221

安装CUDA Cabal模块失败,错误信息如下:
cabal  install cuda
Resolving dependencies...
[1 of 1] Compiling Main             ( /tmp/cuda-0.4.1.07892/cuda-0.4.1.0/Setup.hs, /tmp/cuda-0.4.1.07892/cuda-0.4.1.0/dist/setup/Main.o )
Linking /tmp/cuda-0.4.1.07892/cuda-0.4.1.0/dist/setup/setup ...
Configuring cuda-0.4.1.0...
...
checking for library containing cuDriverGetVersion... no
configure: error: could not find CUDA driver library
********************************************************************************

The configuration process failed to locate your CUDA installation. Ensure that
you have installed the driver and developer toolkit, available from:

  http://developer.nvidia.com/cuda-downloads

Then make sure that "nvcc" is available in your PATH, or set the appropriate
directories with --extra-include-dirs and --extra-lib-dirs.

********************************************************************************
cabal: Error: some packages failed to install:
cuda-0.4.1.0 failed during the configure step. The exception was:
ExitFailure 1

所以我尝试指定路径:

cabal --extra-include-dirs=/usr/local/cuda/include --extra-lib-dirs=/usr/local/cuda/lib install cuda

但是它也会失败。

你有什么建议接下来该尝试什么?


1
你可以尝试更仔细地阅读错误信息:“configure: error: could not find CUDA driver library”。这可能意味着您没有正确安装NVIDIA 驱动程序 - talonmies
实际上,我已经安装了驱动程序和工具包。(如我问题的第二行所述。)您是在说驱动程序与“开发人员驱动程序”不同吗? - nont
1
你是否已经成功尝试过一些本地的Cuda编程?我记得当我第一次设置nvcc时,最初遇到了一些问题,但是当它工作时,CUDA和Accelerate的cabal安装就没有任何问题了。 - leftaroundabout
1
请注意,仅有 $LD_LIBRARY_PATH 似乎不足以让模块实际工作,在 Ubuntu Oneiric 上至少是这样:我还需要设置 etc/ld.so.conf.d/cuda.conf 文件。 - leftaroundabout
你能否发布一个答案,这样这个问题就不会被搁置未决了吗? - harrism
显示剩余4条评论
3个回答

4

这个错误通常表示configure无法找到CUDA库对象。具体来说,您可能需要设置LD_LIBRARY_PATH,除了使用--extra-include_dirs--extra-lib-dirs之外。请尝试以下方法:

env LD_LIBRARY_PATH=/usr/local/cuda/lib cabal --extra-include-dirs=/usr/local/cuda/include --extra-lib-dirs=/usr/local/cuda/lib install cuda

您没有说明使用的是哪个系统。如果您使用的是64位Linux系统,则可能需要使用/usr/local/cuda/lib64而不是/usr/local/cuda/lib


谢谢你,Manuel。事实上,我正在使用64位的Linux机器。我尝试设置环境变量,并执行“cabal --extra-include-dirs=/usr/local/cuda/include --extra-lib-dirs=/usr/local/cuda/lib64 install cuda”。但我仍然收到相同的错误消息。我能想到的是,虽然CUDA库已经安装好了,但由于某些原因它无法正常工作。在我的MacBook Pro上运行得很好。 - nont
CUDA SDK 包含一些示例程序。其中一个被称为 deviceQuery。它执行基本的检查,以确定您的安装和硬件是否正常工作。您在 Linux 系统上尝试过吗? - Manuel Chakravarty
在我的情况下(使用从Ubuntu 13.04软件包安装的CUDA工具包和NVIDIA驱动程序),需要将包含“libcuda.so”的目录添加到“LD_LIBRARY_PATH”中,但我不需要设置cabal标志。 - narthi
@MaciekMakowski 奇怪的是,我也不得不引用 libcuda.so 的位置(在我的情况下是 /usr/lib/nvidia-304)。但只有当我将该路径添加到 --extra-lib-dirs 标志而不是 ENV 变量时,它才起作用。 - Andrew Rademacher

1

这个答案在我使用的Ubuntu 13.10上没有生效,但是以下方法却有效(似乎取决于nvidia驱动程序的安装方式,在我的情况下是通过nvidia-319软件包)

env LD_LIBRARY_PATH=/usr/lib/nvidia-319 cabal --extra-include-dirs=/usr/local/cuda/include --extra-lib-dirs=/usr/lib/nvidia-319/ install accelerate-cuda

当然,你的经验可能会有所不同,理想情况下,安装程序应该被修改以查找 cuda 库所在的位置。

-1

建立库文件

右键单击->属性->构建->设置-构建工件->下拉选择共享/静态库

共享库/静态库的区别

现在,要包含此库,请将库复制到您要使用它的项目中,并将其放在与src级别相同的级别的libs文件夹中。请注意,我假设您有一个src文件夹。

在这个项目上

右键单击->属性->构建->设置->库->

  • -l区域中添加没有前缀lib和后缀.so的库名称

  • -L区域中添加../libs,请记住它是2个点,因为当前文件夹是src,而不是项目根目录 :) 是的,我尝试了1小时的./libs,然后才尝试了../libs


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接