Я пытаюсь использовать CMake для компиляции приложения на основе CUDA в Windows (Visual Studio 2005). Вот пример урезанного файла CMake:
cmake_minimum_required (VERSION 2.6)
project (HELLO)
#Support for CUDA Integration
FIND_PACKAGE(CUDA)
if(CUDA_FOUND)
SET(CUDA_NVCC_FLAGS "-arch;sm_13")
CUDA_ADD_EXECUTABLE(Hello hello.cu)
else(CUDA_FOUND)
message("CUDA is not installed on this system.")
endif()
Есть несколько вопросов, которые я хотел бы разобраться с этим.
Когда я открываю файл решения (Hello.sln), я не вижу никакой пользовательской настройки правил сборки для проекта (щелкните правой кнопкой мыши Project -> Пользовательские правила сборки)
Я вижу «Hello_generated_hello.cu.obj», добавленный в мой проект в Visual Studio. Что это за файл и почему он добавлен в проект?
По умолчанию раздел CUDA Runtime API отсутствует в свойствах проекта.
Если я включу соответствующее пользовательское правило сборки (NvCudaRuntimeApi.rules), я теперь смогу увидеть раздел API среды выполнения CUDA. Если я сейчас перейду к подразделу GPU, то увижу, что архитектура GPU по-прежнему установлена на sm_10.
Даже если я использую макрос CUDA_INCLUDE_DIRECTORIES () для добавления некоторых каталогов для компиляции CUDA, я не увижу эти настройки в Свойствах проекта -> API среды выполнения CUDA -> Общие -> Дополнительные каталоги включения.
Я хотел бы знать, может ли пакет FindCUDA () правильно настроить проект VS 2005 для компиляции на основе CUDA. Может быть, мне нужно указать дополнительные параметры, чтобы правильно настроить проект. Я, конечно, хотел бы знать это. Я хочу убедиться, что любые параметры, которые я указал в файле CMakeLists, позволят мне легко просмотреть их в моем сгенерированном проекте VS 2005.
Какой подходящий способ настроить это?