前言
CPU对于图形运算能力有限,使用CUDA加速可以大大提高点云处理的速度。
默认电脑有英伟达显卡并且已经配置好显卡驱动、CUDA和cudnn环境。
环境配置
系统要求
- 系统:Ubuntu适用,Win不适用。
- 我的系统:Ubuntu 20.04
检查CUDA版本
nvcc --version | grep "release" | awk '{print $6}' | cut -c2-
检查C++版本
最小版本要求:
- GCC 7
- Clang 6
gcc -dumpversion clang --version
安装 Eigen
最低版本要求:
- Eigen v3.3.7+
wget -qO- https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz | tar xz
sudo apt install -y libblas-dev
cd eigen-3.3.7 && mkdir build && cd build
cmake ..
sudo make install
cd ../.. && rm -rf eigen-3.3.7/ && rm -f eigen-3.3.7.tar.gz
从源码构建PCL
如果之前安装过,不一定包含GPU算法,这里提供一个我个人摸索的完整的PCL卸载和安装方法。
卸载方法
针对三种不同的安装方法,提供各自的卸载方法,注意自己区分。
1. 从apt安装的卸载方法:
sudo apt remove libpcl
sudo rm /usr/lib/x86_64-linux-gnu/libpcl_* # 删除残留的so文件
sudo rm -r /usr/share/doc/libpcl-* # 删除pcl文档
2. 从源码安装的卸载方法:
sudo rm -r /usr/include/pcl-1.10 /usr/share/pcl /usr/bin/pcl* /usr/lib/libpcl* /usr/lib/x86_64-linux-gnu/libpcl_*
sudo rm -r /usr/share/doc/libpcl-* # 删除pcl文档
3. 从源码安装时未指定安装目录的卸载方法:
如果从源码安装时未指定安装目录,pcl可能被安装到/usr/local/
下的某层文件夹,这样可能导致pcl程序编译时找不到库文件,因为一般都是安装到/usr/
文件夹下。
具体来说是由于这条命令导致的:
cmake -DCMAKE_BUILD_TYPE=Release .. # 参数含义是以发布形式编译,而不是默认以Debug模式编译,但没有加安装路经参数
进入安装时的编译目录build
下,有个install_manifest.txt
文件,里面包含了各个文件安装的目录,执行卸载命令:
sudo make uninstall
源码安装方法
以PCL-1.12.1为例。
参考链接:Compiling PCL from source on POSIX compliant systems
下载源码:Github Releases
sudo apt-get install libusb-1.0-0-dev # 可能会缺少这个依赖
# 右键解压压缩包
cd pcl-pcl-1.12.1 && mkdir build && cd build
ccmake .. # 进入如下命令行界面
# 按下 t 键进入高级模式
# 根据提示修改选项是ON还是OFF
# 修改各个GPU相关选项为 ON
# 修改 CMAKE_BUILD_TYPE=None,CMAKE_INSTALL_PREFIX=/usr
# 按下 c 键生成配置
# 按下 g 键生成makefiles并退出
make -j16 # 执行编译操作,我的CPU有16个线程,所以我写16以加快编译速度
sudo make install # 安装 PCL
cd lib/ # 该文件夹在build文件夹下
sudo cp -d libpcl_* /usr/lib/x86_64-linux-gnu/ # 将这些so文件复制到之前清理过的这个目录,否则编译自己的程序时找不到so文件,-d参数是保持文件之间的软链接关系
评论(0)
您还未登录,请登录后发表或查看评论