nvcc fatal : Value 'sm_20' is not defined for option 'gpu-architecture'
Solution 1
Try to change the code architecture (such as sm_20) to some higher version in CMakeLists.txt of stnbhwd that you are trying to install.
From:
IF (CUDA_FOUND)
LIST(APPEND CUDA_NVCC_FLAGS "-arch=sm_20")
to:
IF (CUDA_FOUND)
LIST(APPEND CUDA_NVCC_FLAGS "-arch=sm_30")
Solution 2
As you mentioned:
but I have Cuda 9.0
Cuda 9.0 doesn't support SM_20 architecture (more info).
You have quite new gpu:
I am running Ubuntu 16.04 on a GTX 1080ti.
which is based on Pascal architecture (SM_60). So you probably don't need the support for SM_20 architecture.
Related videos on Youtube

John Lexus
Updated on February 20, 2020Comments
-
John Lexus almost 4 years
I've looked at many pages and either could not follow what they were saying because they were unclear and/or my knowledge is just not sufficient enough.
I am trying to run:
luarocks install https://raw.githubusercontent.com/qassemoquab/stnbhwd/master/stnbhwd-scm-1.rockspec
So that I may run DenseCap over some images using GPU Acceleration. When I run it, I get this error:
$ 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.
I was able to
luarocks install cutorch
,luarocks install cunn
, andluarocks install cudnn
just fine.I am running Ubuntu 16.04 on a 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 | +-----------------------------------------------------------------------------+
For some reason, when I run
$ nvcc -V
, I get:The program 'nvcc' is currently not installed. You can install it by typing: sudo apt install nvidia-cuda-toolkit
..and this is another big problem I am facing. When I install nvcc, it installs the toolkit for Cuda 7.5, but I have Cuda 9.0. I installed it using the .deb file that comes from Cuda's website.
$ 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.
I honestly expect that I need to install nvcc, but like I said, it installs for the wrong version, and I cannot for the life of me figure out how to install it for the right version, and Im really confused as to why I am getting this error now even though I already installed cutorch, cudnn, and cunn just fine. Any help is appreciated...
Thanks
-
Robert Crovella about 6 yearsThis isn't installing
nvcc
for the wrong version. Your install output is indicating you already have CUDA 9 installed and you have some old junk from CUDA 7.5 that it is offering to autoremove for you. You can't findnvcc
because you haven't followed the install instructions in the linux install guide correctly, namely that you are supposed to set yourPATH
environment variable after installing CUDA 9. And the given answer describes what to do aboutsm_20
which is not supported by CUDA 9 and doesn't match your GPU anyway.
-
-
John Lexus about 6 yearsCan you take a look at this?
-
Agile Bean over 5 yearsthe above suggestion is correct - for quicker finding, it is line 55 in CMakeLists.txt