2017-12-05 12 views
1

私は多くのページを見ていて、不明確であるか、 。nvcc fatal:値 'sm_20'がオプション 'gpu-architecture'のために定義されていません

私が実行しようとしています:

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

を私はGPUアクセラレーションを使用して、いくつかの画像の上にDenseCapを実行することができるように。私はそれを実行すると、私はこのエラーを取得する:

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

私はluarocks install cudnnうまくluarocks install cunnluarocks install cutorchすることができた、と。

私はGTX 1080tiでUbuntu 16.04を実行しています。何らかの理由で

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

私は$ nvcc -Vを実行したときに、私が取得:

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

..andこれは私が直面していますもう一つの大きな問題です。 nvccをインストールすると、Cuda 7.5用のツールキットがインストールされますが、Cuda 9.0がインストールされています。私はCuda's websiteから来る.debファイルを使ってインストールしました。

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

私は正直に私がNVCCをインストールする必要があることを期待するが、私が言ったように、それは間違ったバージョンのためにインストールして、私は私の人生のために正しいバージョンのためにそれをインストールする方法を見つけ出すことはできません、とイム私がこのエラーを受けている理由について本当に混乱しています私はすでにcutorch、cudnn、およびcunnをインストールしています。ヘルプは高く評価され、任意の...

おかげ

+1

これは '間違ったバージョンのためのnvcc'をインストールされていません。あなたのインストール出力はあなたがすでにCUDA 9がインストールされていることを示しています。あなたにはCUDA 7.5の古いジャンクがあり、あなたのために自動リモートするようになっています。あなたは 'nvcc'を見つけることができません。なぜなら、linux install guideのインストール手順を正しく実行していない、つまりCUDA 9をインストールした後に' PATH'環境変数を設定することになっているからです。とにかくあなたのGPUに合っていないCUDA 9でサポートされていない '' sm_20'についてです。 –

答えて

2

は、インストールしようとしているstnbhwdのCMakeLists.txtでいくつかの上位バージョンに(例えばsm_20など)のコードアーキテクチャを変更してください。

から:

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

へ:

IF (CUDA_FOUND) 
    LIST(APPEND CUDA_NVCC_FLAGS "-arch=sm_30") 
+0

[this](https://stackoverflow.com/questions/47665820/warning-file-lua-is-not-tracked-by-this-installation-of-luarocks)をご覧になれますか? –

関連する問題