我正在尝试启用[CUDA]选项的情况下设置Point Cloud Library干线版本。
我相信我已按照these instructions正确安装了CUDA。
在PCL构建的cmake选项中,某些选项未被识别:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9OdklEai5wbmcifQ==” alt =“在此处输入图像说明”>
是否可以手动设置CUDA_SDK_ROOT_DIR
为?同样,其他未找到的选项。
CUDA_SDK_ROOT_DIR
应该设置为安装NVIDIA GPU计算SDK的方向。可从下载CUDA的NVIDIA的同一页面下载GPU计算SDK。默认情况下,此SDK将安装到$HOME/NVIDIA_GPU_Computing_SDK
。进行适当设置,然后重新运行cmake。
编辑:
CUDA_SDK_ROOT_DIR
变量实际上是在$HOME/NVIDIA_GPU_Computing_SDK
下寻找包含您正在使用的CUDA版本的子目录。对我来说,这是$HOME/NVIDIA_GPU_Computing_SDK/CUDA/v4.1
。
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环境变量。
在Linux机器上,..将“ $ ENV {HOME} / NVIDIA_GPU_Computing_SDK / C”添加到FindCUDA.cmake模块中的“ find_path”选项:(usr / share / cmake-2.8 / Modules / 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 / common / inc / cutil.h。我必须在项目中添加一个include标志,以使其最终工作。 CUDA_NVCC_FLAGS:-I / home / bill / NVIDIA_GPU_Computing_SDK / C / common / inc注意:-I / $ HOME / NVIDIA_GPU_Computing_SDK / C / common / inc可以NOT正常工作。 (env $ HOME设置正确。)
ubuntu18.04:/opt/nvidia/nsight-compute/2019.5.0