У меня есть та же ошибка как человек в этом вопросе, однако, когда я попробовал решение (Просто удаляют цель для compute_20), я все еще получаю ошибку, даже после очистки проекта.
Быть конкретным: я пытаюсь установить caffe путем следования этим инструкциям, шаг за шагом. Даже более конкретно, вот мои шаги.
Я работаю sudo cmake ..
, и я получаю следующую информацию:
CMake Warning (dev) at cmake/Misc.cmake:32 (set):
implicitly converting 'BOOLEAN' to 'STRING' type.
Call Stack (most recent call first):
CMakeLists.txt:24 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found Boost: /usr/include (found suitable version "1.65.1", minimum required is "1.46") found components: system thread filesystem chrono date_time atomic
-- Found gflags (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libgflags.so)
-- Found glog (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libglog.so)
-- Found PROTOBUF Compiler: /usr/bin/protoc
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
-- HDF5: Using hdf5 compiler wrapper to determine CXX configuration
-- Found lmdb (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/liblmdb.so)
-- Found LevelDB (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libleveldb.so)
-- Found Snappy (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libsnappy.so)
-- CUDA detected: 10.1
-- Automatic GPU detection failed. Building for all known architectures.
-- Added CUDA NVCC flags for: sm_20 sm_21 sm_30 sm_35 sm_50
-- OpenCV found (/usr/share/OpenCV)
-- Found OpenBLAS libraries: /usr/lib/x86_64-linux-gnu/libopenblas.so
-- Found OpenBLAS include: /usr/include/x86_64-linux-gnu
-- NumPy ver. 1.11.0 found (include: /usr/local/lib/python2.7/dist-packages/numpy/core/include)
-- Found Boost: /usr/include (found suitable version "1.65.1", minimum required is "1.46") found components: python
-- Found NCCL (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libnccl.so)
-- Detected Doxygen OUTPUT_DIRECTORY: ./doxygen/
--
-- ******************* Caffe Configuration Summary *******************
-- General:
-- Version : 0.15.14
-- Git : v0.15.14-16-g4b8d54d8-dirty
-- System : Linux
-- C++ compiler : /usr/bin/c++
-- Release CXX flags : -O3 -DNDEBUG -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
-- Debug CXX flags : -g -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
-- Build type : Release
--
-- BUILD_SHARED_LIBS : ON
-- BUILD_python : ON
-- BUILD_matlab : OFF
-- BUILD_docs : ON
-- CPU_ONLY : OFF
-- USE_OPENCV : ON
-- USE_LEVELDB : ON
-- USE_LMDB : ON
-- ALLOW_LMDB_NOLOCK : OFF
--
-- Dependencies:
-- BLAS : Yes (open)
-- Boost : Yes (ver. 1.65)
-- glog : Yes
-- gflags : Yes
-- protobuf : Yes (ver. 3.0.0)
-- lmdb : Yes (ver. 0.9.21)
-- LevelDB : Yes (ver. 1.20)
-- Snappy : Yes (ver. ..)
-- OpenCV : Yes (ver. 3.2.0)
-- CUDA : Yes (ver. 10.1)
--
-- NVIDIA CUDA:
-- Target GPU(s) : Auto
-- GPU arch(s) : sm_20 sm_21 sm_30 sm_35 sm_50
-- cuDNN : Not found
-- NCCL : Yes
--
-- Python:
-- Interpreter : /usr/bin/python2.7 (ver. 2.7.15)
-- Libraries : /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.15+)
-- NumPy : /usr/local/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
--
-- Documentaion:
-- Doxygen : /usr/bin/doxygen (1.8.13)
-- config_file : /home/par/caffe/.Doxyfile
--
-- Install:
-- Install path : /home/par/caffe/build/install
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/par/caffe/build
Примечание: В конфигурации говорится конкретно, что она компилирует в sm_20, вычисляют версию, которая не является тем, что я хочу сделать. Я искал все файлы, которые я имею для этого "sm_20" маркера, и результаты - все в /caffe/build/src/caffe/CMakeFiles/cuda_compile_1.dir/
, подразумевать, что они не содержатся в make-файле.
Я искал те же файлы упоминание compute_20, и еще раз, единственные упоминания находятся в каталоге выше. Я удаляю их, контролируя синтаксис, и затем работаю make -j"$(nproc)"
к которому я получаю следующую ошибку:
[ 6%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile_1.dir/layers/cuda_compile_1_generated_crop_layer.cu.o
nvcc fatal : Unsupported gpu architecture 'compute_20'
CMake Error at cuda_compile_1_generated_math_functions.cu.o.Release.cmake:219 (message):
Error generating
/home/par/caffe/build/src/caffe/CMakeFiles/cuda_compile_1.dir/util/./cuda_compile_1_generated_math_functions.cu.o
Какова причина этого, если compute_20, ни sm_20 упоминаются в каком-либо make-файле?
Я решил эту проблему путем изменения /caffe/cmake/cuda.cmake
на строке 7 от:
set(Caffe_known_gpu_archs "20 21(20) 30 35 50")
к:
set(Caffe_known_gpu_archs "30 35 50")
Это изменило результат sudo cmake ..
для изменения от:
-- NVIDIA CUDA:
-- Target GPU(s) : Auto
-- GPU arch(s) : sm_20 sm_21 sm_30 sm_35 sm_50
к:
-- NVIDIA CUDA:
-- Target GPU(s) : Auto
-- GPU arch(s) : sm_30 sm_35 sm_50
команда make -j"$(nproc)"
затем работала успешно.