安装cuda 8.0后无法运行CUDA示例

我按照这里的步骤在ubuntu 16上安装了cuba8.0。

然后执行确认测量。 在那之后,我运行make并碰撞到如下的错误:

$make ... nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). /usr/bin/ld: cannot find -lnvcuvid collect2: error: ld returned 1 exit status Makefile:381: recipe for target 'cudaDecodeGL' failed make[1]: *** [cudaDecodeGL] Error 1 make[1]: Leaving directory '/home/cocadas/Workspace/NVIDIA_CUDA-8.0_Samples/3_Imaging/cudaDecodeGL' Makefile:52: recipe for target '3_Imaging/cudaDecodeGL/Makefile.ph_build' failed make: *** [3_Imaging/cudaDecodeGL/Makefile.ph_build] Error 2 

然后,我检查了系统的信息

环境

 $ printenv PATH /usr/local/cuda-8.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/cocadas/Program/android-studio/bin $ echo $LD_LIBRARY_PATH /usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/lib64 

OS

 $ uname -m x86_64 $ uname -r 4.4.0-64-generic 

其他

 $ lspci |grep -i nvidia 01:00.0 VGA compatible controller: NVIDIA Corporation GK107GLM [Quadro K1100M] (rev a1) $ gcc --version gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ sudo apt-get install linux-headers-$(uname -r) [sudo] password for cocadas: Reading package lists... Done Building dependency tree Reading state information... Done linux-headers-4.4.0-64-generic is already the newest version (4.4.0-64.85). linux-headers-4.4.0-64-generic set to manually installed. The following packages were automatically installed and are no longer required: linux-headers-4.4.0-53 linux-headers-4.4.0-53-generic linux-image-4.4.0-53-generic linux-image-extra-4.4.0-53-generic Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 99 not upgraded. $ cat /proc/driver/nvidia/version NVRM version: NVIDIA UNIX x86_64 Kernel Module 375.26 Thu Dec 8 18:36:43 PST 2016 GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) $ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2016 NVIDIA Corporation Built on Tue_Jan_10_13:22:03_CST_2017 Cuda compilation tools, release 8.0, V8.0.61 

那么,我还能尝试什么呢?

样本的makefile具有错误的nvidia-xxx版本号。 替换为: sed -i "s/nvidia-367/nvidia-375/g" `grep "nvidia-367" -r ./ -l`并尝试重新制作。

我在这篇文章中使用了方法: cuda-sample-build-error 。 我想你只需要在UBUNTU_PKG_NAME = "nvidia-375"替换正确的gpu驱动程序版本,你可以在

… / NVIDIA_CUDA-8.0_Samples / 3_Imaging / cudaDecodeGL / findgllib.mk文件

根本原因是链接器找不到libnvcuvid和make文件的驱动程序版本应为375(如post所示)。 因此,请在文件夹中使用以下命令:

 ~/NVIDIA_CUDA-8.0_Samples/$find . -type f -execdir sed -i 's/UBUNTU_PKG_NAME = "nvidia-367"/UBUNTU_PKG_NAME = "nvidia-375"/g' '{}' \; 

这可能是特定于9.0版本,但它看起来像最新的脚本查询您通过dpkg安装的驱动程序。 如果您安装了多个,它看起来像是在找到第一个找到的,这往往是旧版本。

我只需通过以下方式卸载一些较旧的驱动程序(不再使用它们):

 # NOTE: your driver versions may vary sudo apt-get remove nvidia-367 sudo apt-get remove nvidia-375