ubuntu中通过源码安装pointnet2_ops_lib

时间:2024-09-30 12:50:12

注:本帖所用环境为:ubuntu 24.04、 cuda 12.04

文章目录

  • 1. 克隆 `PointNet++` 源码库
  • 2. 安装依赖
  • 3. 编译 `pointnet2_ops_lib`
  • 4. 测试安装

1. 克隆 PointNet++ 源码库

首先,克隆 PointNet++ 的 GitHub 仓库:

git clone https://github.com/erikwijmans/Pointnet2_PyTorch.git
cd Pointnet2_PyTorch

2. 安装依赖

确保你已经安装了 PyTorch,并且系统已经正确配置了 CUDA(如果你打算使用 GPU 加速)。你可以通过以下命令来安装必要的依赖:

pip install -r requirements.txt

这个安装过程可能出现如下问题:
在这里插入图片描述
这是由于当前cuda版本比较新导致的,这个时候可以修改pointnet2_ops_lib/setup.py中找到类似以下部分的代码:

extra_compile_args={
    'cxx': ['-O2'],
    'nvcc': [
        '-O2',
        '-arch=compute_37',
        ...
    ]
}

你需要将 compute_37 改为 CUDA 12.4 支持的架构代码,例如 compute_80 或更高:

'nvcc': ['-arch=compute_80', '-arch=sm_80', ...]

常见的 CUDA 架构如下:

  • compute_50: Maxwell 架构
  • compute_52: Maxwell 架构
  • compute_60: Pascal 架构
  • compute_61: Pascal 架构,例如Tesla P40
  • compute_70: Volta 架构
  • compute_75: Turing 架构
  • compute_80: Ampere 架构,例如RTX4090

3. 编译 pointnet2_ops_lib

pip install -e .
pip install pointnet2_ops_lib/.

4. 测试安装

编译和安装完成后,可以测试库是否安装成功。运行以下 Python 代码以确保 pointnet2_ops_lib 可正常导入:

import pointnet2_ops_lib

如果没有报错,说明安装成功。