0

在查看了在我的新 Fedora19 系统上安装 CUDA 5.0 之后,我发现 CUDA 5.5 是一个更好的选择,因为它采用 rpm 格式。我按照此处找到的安装说明进行操作,在我尝试编译示例之前,一切都很顺利。首先,它将示例安装到 /usr/local/cuda/samples,我必须确保我的 LD_LIBRARY_PATH 包含 /usr/local/cuda/lib(不仅仅是 5.5 版本),但随后我得到以下两个当我尝试运行“make all”命令时出错。

../../common/inc/exception.h: In constructor ‘Exception<Std_Exception>::Exception()’:
../../common/inc/exception.h:129:94: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default]
Exception<Std_Exception>::Exception() :

我以为 C++11 是默认版本?然后,当我开始尝试编译 matrixMulDrv 时,我收到以下错误,这真的没有意义:

/usr/local/cuda-5.5/bin/nvcc -ccbin g++   -m64        -o matrixMulDrv matrixMulDrv.o  -L/usr/lib64/nvidia -lcuda
/bin/ld: cannot find -lcuda
collect2: error: ld returned 1 exit status

我想知道是否还有其他人有这种性质的问题。我已经迁移到 5.5,以便可以使用当前的 gcc 编译器(4.8.1)。当我查看 /usr/lib64/nvidia 时,我看到了我认为需要的所有文件,包括 libcuda.so.1。有没有其他人看到这个?

4

3 回答 3

2

关于第一个问题:

../../common/inc/exception.h: In constructor ‘Exception<Std_Exception>::Exception()’:
../../common/inc/exception.h:129:94: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default]
Exception<Std_Exception>::Exception() :

这些消息只是警告,因此编译仍应继续进行而不会出现问题。

关于第二个问题:

/bin/ld: cannot find -lcuda
collect2: error: ld returned 1 exit status

查看 /usr/lib64/nvidia 并确保 libcuda.so 和 libcuda.so.1 符号链接都存在并指向 libcuda.so.[您的驱动程序版本]。

在我的安装中,无论出于何种原因,都没有创建 /usr/lib64/nvidia/libcuda.so 符号链接。如果你的也不见了,那么输入(作为根):

ln -s /usr/lib64/nvidia/libcuda.so.VERSION /usr/lib64/nvidia/libcuda.so

VERSION替换为您的 nvidia 驱动程序的版本号(例如 libcuda.so.319.32)。

这能解决你的问题吗?

于 2013-07-21T18:52:26.553 回答
1

带有 GCC 4.7.2/GLIBC 2.16 的 Fedora 18 是官方支持的 CUDA 5.5 RC 发行版。Fedora 19 不支持,也没有任何迹象表明支持 GCC 4.8.x。我对你遇到麻烦并不感到惊讶。您在其中libcuda.so看到的/usr/lib64/nvidia链接与 GLIBC (2.16) 的不同版本,而不是您机器上最有可能的版本(2.17)。

我能想象的 Fedora 19 的唯一前进方法是将您的(即安装备用)GCC/GLIBC 降级到 Fedora 18 附带的那个。切换到 Fedora 18 可能更容易。

于 2013-07-20T04:49:34.250 回答
0

CUDA 高度特定于 Linux 内核版本。例如,CUDA 6.5 只能保证与Fedora 20 内核 3.12一起工作。

# Install kernel 3.16.2
sudo yum -y install https://kojipkgs.fedoraproject.org/packages/kernel/3.16.2/201.fc20/x86_64/kernel-3.16.2-201.fc20.x86_64.rpm
sudo yum -y install https://kojipkgs.fedoraproject.org/packages/kernel/3.16.2/201.fc20/x86_64/kernel-devel-3.16.2-201.fc20.x86_64.rpm
sudo yum -y install libvdpau-devel
sudo reboot

# Install cuda 6.5
wget http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run
sudo bash cuda_6.5.14_linux_64.run --override

降级内核以匹配CUDA 系统要求中指定的版本会很有帮助。

于 2015-03-04T22:52:22.357 回答