it-swarm.com.de

Fehler beim Ausführen des CUDA-Beispiels nach der Installation von cuda 8.0

Ich habe das cuba8.0 auf Ubuntu 16 installiert, indem ich den Schritten hier gefolgt bin.

Führen Sie dann die Bestätigungsmessung durch. Danach starte ich make und stoße auf folgende Fehler:

$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

Dann überprüfte ich die Informationen des Systems

Umgebung

$ 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

Andere

$ 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

Also, was kann ich noch versuchen?

3
Hong

Die Makefiles der Beispiele haben falsche nvidia-xxx-Versionsnummern. Ersetzen Sie sie durch: sed -i "s/nvidia-367/nvidia-375/g" `grep "nvidia-367" -r ./ -l` und versuchen Sie es erneut.

4
Dhoulmagus

Dies mag für die Version 9.0 spezifisch sein, es sieht jedoch so aus, als ob die neueste Skriptabfrage für welchen Treiber Sie über dpkg installiert haben. Es sieht so aus, als würde der erste gefunden, wenn Sie mehrere installiert haben. Dies ist in der Regel die ältere Version.

Ich musste nur einige ältere Treiber deinstallieren (die nicht mehr verwendet wurden) über:

# NOTE: your driver versions may vary

Sudo apt-get remove nvidia-367
Sudo apt-get remove nvidia-375
0
EmpireJones

Die Hauptursache ist, dass der Linker libnvcuvid nicht finden kann und die Treiberversion der make-Datei 375 sein soll (wie im Beitrag gezeigt). Verwenden Sie daher den folgenden Befehl im Ordner:

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

Ich habe in diesem Beitrag folgende Methode verwendet: cuda-sample-build-error . Ich denke, Sie müssen nur die richtige GPU-Treiberversion in UBUNTU_PKG_NAME = "nvidia-375" ersetzen, die Sie unter finden

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

0
FloppyHank