CMake не может найти CUDA: «Не удалось найти файл модуля cmake: CMakeDetermineCUDACompiler.cmake» - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь написать файл CMake, который нуждается в функциях cuda.Консультируя этот ответ , я добавил эту строку в свой CMakeLists.txt:

set(CMAKE_CUDA_COMPILER  /usr/local/cuda-9.2/bin/nvcc)

Но при использовании команды cmake он все равно жалуется:

yuqiong@yuqiong-G7-7588:/media/yuqiong/DATA/alexnet/src/cpp/train$ cmake .
CMake Error: Could not find cmake module file: CMakeDetermineCUDACompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CUDA_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file: /media/yuqiong/DATA/alexnet/src/cpp/train/CMakeFiles/3.5.1/CMakeCUDACompiler.cmake
CMake Error: Could not find cmake module file: CMakeCUDAInformation.cmake
CMake Error: Could not find cmake module file: CMakeTestCUDACompiler.cmake
-- Configuring incomplete, errors occurred!
See also "/media/yuqiong/DATA/alexnet/src/cpp/train/CMakeFiles/CMakeOutput.log".

Какойкажется сбивающим с толку, так как я не знаю, где еще установить переменную среды?Есть идеи, почему команда set не помогает cmake найти компилятор nvcc?

На всякий случай полезно, вот мой CMakeLists.txt:

cmake_minimum_required(VERSION 3.5.1)
set(CMAKE_CUDA_COMPILER  /usr/local/cuda-9.2/bin/nvcc)

project(train LANGUAGES CXX CUDA)

set(CMAKE_CXX_STANDARD 14)
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )


add_executable(train train.cu)
target_link_libraries( train ${OpenCV_LIBS} )

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Для любого, кто сталкивался с этим вопросом, вот последний файл CMakeLists.txt, который я использовал:

cmake_minimum_required(VERSION 3.5.1)
set(CMAKE_CUDA_COMPILER  /usr/local/cuda-9.2/bin/nvcc)

project(train)
include(FindCUDA)

set(CMAKE_CXX_STANDARD 14)
find_package( OpenCV REQUIRED )
find_package(CUDA REQUIRED)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -gencode arch=compute_30,code=sm_30)

include_directories( ${OpenCV_INCLUDE_DIRS} )

cuda_add_executable(train train.cu)
target_link_libraries( train ${OpenCV_LIBS} )
0 голосов
/ 20 декабря 2018

На самом деле вам нужен CMake 3.8 для Linux, чтобы использовать project(train LANGUAGES CUDA).Раньше вам нужен старый способ:

FindPackage(CUDA)

и добавление библиотек вручную.

Ошибка заключается в том, что в вашей версии CMake нет встроенной поддержки CUDA, используйте старый метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...