it-swarm.com.de

nvcc fatal: Wert 'sm_20' ist für Option 'gpu-architecture' nicht definiert

Ich habe viele Seiten angesehen und konnte entweder nicht folgen, was sie sagten, weil sie unklar waren und/oder mein Wissen einfach nicht ausreicht.

Ich versuche zu rennen:

luarocks install https://raw.githubusercontent.com/qassemoquab/stnbhwd/master/stnbhwd-scm-1.rockspec

Damit ich mit GPU Acceleration über einige Bilder DenseCap laufen kann. Wenn ich es laufen lasse, erhalte ich diesen Fehler:

$ luarocks install https://raw.githubusercontent.com/qassemoquab/stnbhwd/master/stnbhwd-scm-1.rockspec
Using https://raw.githubusercontent.com/qassemoquab/stnbhwd/master/stnbhwd-scm-1.rockspec... switching to 'build' mode
Cloning into 'stnbhwd'...
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 24 (delta 0), reused 14 (delta 0), pack-reused 0
Receiving objects: 100% (24/24), 19.42 KiB | 0 bytes/s, done.
Checking connectivity... done.
cmake -E make_directory build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="/home/tex/torch/install/bin/.." -DCMAKE_INSTALL_PREFIX="/home/tex/torch/install/lib/luarocks/rocks/stnbhwd/scm-1" && make

-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Torch7 in /home/tex/torch/install
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp  
-- Compiling with OpenMP support
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found CUDA: /usr/local/cuda (found suitable version "9.0", minimum required is "5.5") 
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/luarocks_stnbhwd-scm-1-4197/stnbhwd/build
Scanning dependencies of target stn
[ 25%] Building C object CMakeFiles/stn.dir/init.c.o
[ 50%] Linking C shared module libstn.so
[ 50%] Built target stn
[ 75%] Building NVCC (Device) object CMakeFiles/custn.dir/custn_generated_init.cu.o
nvcc fatal   : Value 'sm_20' is not defined for option 'gpu-architecture'
CMake Error at custn_generated_init.cu.o.cmake:207 (message):
  Error generating
  /tmp/luarocks_stnbhwd-scm-1-4197/stnbhwd/build/CMakeFiles/custn.dir//./custn_generated_init.cu.o


CMakeFiles/custn.dir/build.make:63: recipe for target 'CMakeFiles/custn.dir/custn_generated_init.cu.o' failed
make[2]: *** [CMakeFiles/custn.dir/custn_generated_init.cu.o] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/custn.dir/all' failed
make[1]: *** [CMakeFiles/custn.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Error: Build error: Failed building.

Ich konnte luarocks install cutorch, luarocks install cunn und luarocks install cudnn ganz gut.

Ich verwende Ubuntu 16.04 auf einer GTX 1080ti.

$ nvidia-smi
Tue Dec  5 16:25:42 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90                 Driver Version: 384.90                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:29:00.0  On |                  N/A |
|  0%   47C    P8    16W / 250W |    716MiB / 11169MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1128      G   /usr/lib/xorg/Xorg                           479MiB |
|    0      1782      G   compiz                                       234MiB |
+-----------------------------------------------------------------------------+

Aus irgendeinem Grund erhalte ich beim Ausführen von $ nvcc -V Folgendes:

    The program 'nvcc' is currently not installed. You can install it by typing:
Sudo apt install nvidia-cuda-toolkit

..und das ist ein weiteres großes Problem, vor dem ich stehe. Wenn ich nvcc installiere, installiert es das Toolkit für Cuda 7.5, aber ich habe Cuda 9.0. Ich habe es mithilfe der .deb-Datei installiert, die von Cudas Website stammt.

$ Sudo apt-get install cuda
Reading package lists... Done
Building dependency tree       
Reading state information... Done
cuda is already the newest version (9.0.176-1).
The following packages were automatically installed and are no longer required:
  libcublas7.5 libcudart7.5 libcufft7.5 libcufftw7.5 libcuinj64-7.5
  libcurand7.5 libcusolver7.5 libcusparse7.5 libnppc7.5 libnppi7.5 libnpps7.5
  libnvblas7.5 libnvrtc7.5 libnvtoolsext1 libnvvm3 libthrust-dev libvdpau-dev
  nvidia-cuda-dev nvidia-cuda-doc nvidia-cuda-gdb nvidia-opencl-dev
  nvidia-profiler nvidia-visual-profiler opencl-headers
Use 'Sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

Ich erwarte ehrlich, dass ich nvcc installieren muss, aber wie gesagt, es wird für die falsche Version installiert, und ich kann für mein ganzes Leben nicht herausfinden, wie ich es für die richtige Version installieren soll bekomme diesen Fehler now obwohl ich cutorch, cudnn und cunn bereits installiert habe, ganz gut. Jede Hilfe wird geschätzt ...

Vielen Dank

4
John Lexus

Versuchen Sie, die Codearchitektur (z. B. sm_20 ) in eine höhere Version in CMakeLists.txt von stnbhwd zu ändern, die Sie installieren möchten.

Von:

IF (CUDA_FOUND)
   LIST(APPEND CUDA_NVCC_FLAGS "-Arch=sm_20")

zu:

IF (CUDA_FOUND)
   LIST(APPEND CUDA_NVCC_FLAGS "-Arch=sm_30")
9
IgorM

Versuchen Sie Folgendes, um nvcc zu installieren:

Sudo apt-get install nvidia-cuda-toolkit
1
Agile Bean

Wie du erwähnt hast:

aber ich habe Cuda 9.0

Cuda 9.0 unterstützt keine SM_20-Architektur ( Weitere Informationen ).

Du hast eine ganz neue GPU:

Ich verwende Ubuntu 16.04 auf einer GTX 1080ti.

welches auf Pascal Architektur basiert (SM_60). Daher benötigen Sie wahrscheinlich keine Unterstützung für die SM_20-Architektur.

0
kwmen