#cuda #cmake
#cuda #cmake
Вопрос:
Я пытаюсь установить --device-debug
флаг для одного исходного файла CUDA (.cu). Установка флага для всего проекта выполняется с помощью
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "--device-debug;-lineinfo")
в главном CMakeLists.txt файл. Но у меня есть подпроект, который включен
add_subdirectory (${PROJECT_SOURCE_DIR}/cuda)
Я пытался установить свойство как из основного, так и из подпроекта CMakeLists.txt файл, но это вообще не сработало. Он даже не будет перекомпилировать файл после добавления моих команд. Это команды, которые я пробовал:
set_source_files_properties(test.cu PROPERTIES CUDA_NVCC_FLAGS_RELWITHDEBUGINFO "--device-debug;-lineinfo")
set_source_files_properties(ilm/test.cu PROPERTIES CUDA_NVCC_FLAGS_RELWITHDEBUGINFO "--device-debug;-lineinfo")
set_source_files_properties(cuda/ilm/test.cu PROPERTIES CUDA_NVCC_FLAGS_RELWITHDEBUGINFO "--device-debug;-lineinfo")
set_source_files_properties(${PROJECT_SOURCE_DIR}/cuda/ilm/test.cu PROPERTIES CUDA_NVCC_FLAGS_RELWITHDEBUGINFO "--device-debug;-lineinfo")
set_source_files_properties(${PROJECT_SOURCE_DIR}/cuda/ilm/test.cu PROPERTIES CUDA_NVCC_FLAGS "--device-debug;-lineinfo;${CUDA_NVCC_FLAGS}")
Возможно ли изменить желаемый флаг компилятора для одного файла .cu с помощью CMake?
Ответ №1:
CUDA_COMPILE( generated_files file0 file1 ... [STATIC | SHARED | MODULE] [OPTIONS ...] )
генерирует список объектных файлов, которые будут использоваться с add_library
или add_executable
командами. Он вызывает CUDA_WRAP_SRCS
под капотом и может присоединять дополнительные команды, которые будут даны nvcc
. Вы можете скомпилировать каждый исходный файл отдельно с помощью CUDA_COMPILE
команды и различных опций. Затем вы можете связать их со всем, что вам нужно.
Если вам нужна более подробная информация, пожалуйста, прочитайте FindCUDA.cmake