在 CUDA 8.0安装后运行CUDA示例时,nvidia失败

分享于 

4分钟阅读

ubuntu

  繁體

问题

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


$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



操作系统


$ 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




答案1

makefile有错误的nvidia xxx版本号,替换它们: sed -i"s/nvidia-367/nvidia-375/g" `grep"nvidia-367" -r ./ -l` 再来一次。


答案2

只需要在UBUNTU_PKG_NAME ="nvidia-375"中替换正确的gpu驱动程序版本,在

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


答案3

根本原因是链接器找不到libnvcuvid,make文件的驱动程序版本应该是375 ,因此,在文件夹中使用以下命令:


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





sam  英伟达  CUDA