web-dev-qa-db-fra.com

nvcc fatal: la valeur 'sm_20' n'est pas définie pour l'option 'gpu-architecture'

J'ai consulté de nombreuses pages et je ne pouvais pas suivre ce qu'elles disaient parce qu'elles n'étaient pas claires et/ou que mes connaissances ne suffisaient pas. 

J'essaye de courir:

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

Afin que je puisse exécuter DenseCap sur certaines images en utilisant l’accélération GPU. Quand je le lance, j'obtiens cette erreur:

$ 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.

J'ai été capable de luarocks install cutorch, luarocks install cunn et luarocks install cudnn très bien. 

J'utilise Ubuntu 16.04 sur une 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 |
+-----------------------------------------------------------------------------+

Pour une raison quelconque, lorsque je lance $ nvcc -V, je reçois:

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

..et c'est un autre gros problème auquel je suis confronté. Lorsque j'installe nvcc, il installe le toolkit pour Cuda 7.5, mais je dispose de Cuda 9.0. Je l'ai installé en utilisant le fichier .deb qui vient de le site web de Cuda

$ 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.

Honnêtement, je pense que je dois installer nvcc, mais comme je l’ai dit, il s’installe pour la mauvaise version, et je ne peux pas, à vie, trouver comment l’installer pour la bonne version, et je ne comprends vraiment pas pourquoi je suis. obtenir cette erreur maintenant même si j'ai déjà installé cutorch, cudnn et cunn très bien. Toute aide est appréciée ...

Merci

4
John Lexus

Essayez de modifier l’architecture du code (telle que sm_20 ) en une version supérieure de CMakeLists.txt de stnbhwd que vous essayez d’installer. 

De:

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

à:

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

Pour installer nvcc, essayez ceci:

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

Comme vous l'avez mentionné:

mais j'ai Cuda 9.0

Cuda 9.0 ne supporte pas l'architecture SM_20 ( plus d'infos ).

Vous avez un nouveau gpu:

J'utilise Ubuntu 16.04 sur une GTX 1080ti.

qui est basé sur l'architecture Pascal (SM_60). Donc, vous n'avez probablement pas besoin du support de l'architecture SM_20.

0
kwmen