2011-12-27 1 views
1

Я пытаюсь настроить Point Cloud Library сборка соединительных линий с включенными параметрами CUDA.Поиск CUDA_SDK_ROOT_DIR

Я считаю, что я правильно установил CUDA, следуя these instructions.

В опциях CMake для сборки PCL, некоторые опции непризнанные:

enter image description here

Есть ли что-то я могу вручную установить CUDA_SDK_ROOT_DIR в? Аналогично другим необоснованным вариантам.

+1

У меня нет опыта работы с проектом, который вы строите, но для CUDA_SDK_ROOT_DIR установите его в каталог, в который инсталлятор SDK написал его содержимое, обычно ваш домашний каталог, если вы приняли параметры по умолчанию. Другие параметры отмены, которые, я думаю, можно смело игнорировать, они применили к теперь устаревшим и удаленным функциям эмуляции устройства CUDA API среды выполнения. – talonmies

+0

Как я знаю, CUDA_SDK_ROOT_DIR получает системная переменная (не задана FindCuda). Итак, если вы не хотите устанавливать его через системные vars, вы можете установить его для cmake. Это значение по умолчанию является нормальным, и c CUDA может работать с ним. – Yappie

ответ

2

CUDA_SDK_ROOT_DIR должно быть установлено в том направлении, в котором вы установили NVIDIA GPU Computing SDK. SDK Computing SDK можно загрузить с той же страницы в NVIDIA, где вы загрузили CUDA. По умолчанию этот SDK будет установлен на $HOME/NVIDIA_GPU_Computing_SDK. Установите его соответствующим образом, а затем повторите cmake.

Edit:

Переменная CUDA_SDK_ROOT_DIR фактически ищет поддиректории под $HOME/NVIDIA_GPU_Computing_SDK, который содержит версию CUDA, которую вы используете. Для меня это $HOME/NVIDIA_GPU_Computing_SDK/CUDA/v4.1.

+0

Это уже не в 7,5? – Goddard

0

Исходный код FindCUDA.cmake дает несколько советов о том, как можно найти этот путь:

######################## 
# Look for the SDK stuff. As of CUDA 3.0 NVSDKCUDA_ROOT has been replaced with 
# NVSDKCOMPUTE_ROOT with the old CUDA C contents moved into the C subdirectory 
find_path(CUDA_SDK_ROOT_DIR common/inc/cutil.h 
    "$ENV{NVSDKCOMPUTE_ROOT}/C" 
    "$ENV{NVSDKCUDA_ROOT}" 
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Installed Products\\NVIDIA SDK 10\\Compute;InstallDir]" 
    "/Developer/GPU\ Computing/C" 
) 

И.Э. убедитесь, что переменные среды NVSDKCOMPUTE_ROOT или NVSDKCUDA_ROOT установлены правильно.

0

На машине Linux, .. Добавить "$ ENV {HOME}/NVIDIA_GPU_Computing_SDK/C" в опции 'find_path' в модуле FindCUDA.cmake: (USR/доли/CMake-2,8/Модули/FindCUDA .cmake)

######################## 
# Look for the SDK stuff. As of CUDA 3.0 NVSDKCUDA_ROOT has been replaced with 
# NVSDKCOMPUTE_ROOT with the old CUDA C contents moved into the C subdirectory 
find_path(CUDA_SDK_ROOT_DIR common/inc/cutil.h 
    "$ENV{HOME}/NVIDIA_GPU_Computing_SDK/C" 
    "$ENV{NVSDKCOMPUTE_ROOT}/C" 
    "$ENV{NVSDKCUDA_ROOT}" 
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Installed Products\\NVIDIA SDK 10\\Compute;InstallDir]" 
    "/Developer/GPU\ Computing/C" 
) 

cmake теперь находит мой 4.0 SDK автоматически.
Но моя сборка все еще не находит cutil.h, хотя она есть. $ HOME/NVIDIA_GPU_Computing_SDK/C/общие/вкл/cutil.h. Мне пришлось добавить в проект флаг включения, чтобы он наконец-то работал. CUDA_NVCC_FLAGS: -I/дома/вексельные/NVIDIA_GPU_Computing_SDK/C/общий/вкл
Примечание: -I/$ HOME/NVIDIA_GPU_Computing_SDK/C/общий/вкл делает НЕ работу. (Env $ HOME установлен правильно.)

Смежные вопросы