ubuntu 20.04 源码编译pcl1.10.1+GPU版本

显卡:NVIDIA GeForce RTX 3080Ti

PCL版本:1.10.1

编译方式

Release pcl-1.10.1 · PointCloudLibrary/pcl下载对应版本源码,解压后:

1
2
3
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_GPU=ON -DBUILD_CUDA=ON -DCMAKE_INSTALL_PREFIX=/usr/local/pcl-1.10.1 ..
sudo make install

问题记录:

make过程中出现:nvcc fatal : Unsupported gpu architecture ‘compute_30‘ 报错。

原因:显卡不支持compute_30的GPU构架,与CUDA版本不兼容。
解决方法:

  1. 找到pcl文件夹下cmake/pcl_find_cuda.cmake,将__cuda_arch_bin参数做如下修改:

__cuda_arch_bin的含义是在cmake时,编译器会自动从引号里面的计算架构中选择,排在第一个的30会被优先选择。可以参考第25行代码提供的官方网站进去,去查查自己显卡适配的计算架构

然后将对应的架构号添加到最前面即可,否则会报CUDA error: no kernel image is available for execution on the device错误。
在编译过程中会出现警告,但不影响编译。

编译出现shared_ptr is not a template while building pcl 1.10.0

shared_ptr is not a template while building pcl 1.10.0 · Issue #3728 · PointCloudLibrary/pcl

这个问题在pcl 1.10.1版本中修复

参考链接

  1. 【问题解决】安装PCL报错:nvcc fatal : Unsupported gpu architecture ‘compute_30‘_nvcc fatal : unsupported gpu architecture ‘compute-CSDN博客
  2. Ubuntu下PCL点云库CUDA/GPU版本使用编译 - 知乎