安装pointnet2_ops_lib时遇CUDA版本不匹配错误,求解决方案
问题:安装Point-NN的pointnet2_ops_lib编译失败
我使用Python 3.7复现Point-NN点云模型时,执行以下命令安装依赖:
pip install pointnet2_ops_lib/.
触发编译错误,关键报错信息如下:
# 编译器版本警告 Your compiler (g++ 4.8.5) may be ABI-incompatible with PyTorch! Please use a compiler that is ABI-compatible with GCC 5.0 and above. # CUDA版本不匹配错误 RuntimeError: The detected CUDA version (11.8) mismatches the version that was used to compile PyTorch (11.7). Please make sure to use the same CUDA versions.
已尝试执行以下命令但无效:
pip install --upgrade setuptools pip install nes-py --no-cache-dir pip install --upgrade pip setuptools wheel
求解决方法。
解决方案
1. 解决CUDA版本不匹配问题
有两种可行方案:
方案A:降级系统CUDA到11.7
- 卸载当前CUDA 11.8
- 下载并安装CUDA 11.7
- 配置环境变量,将
CUDA_HOME指向/usr/local/cuda-11.7,同时更新PATH和LD_LIBRARY_PATH:export CUDA_HOME=/usr/local/cuda-11.7 export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
方案B:升级PyTorch适配CUDA 11.8
卸载现有PyTorch,安装对应CUDA 11.8的版本(兼容Python 3.7):
pip uninstall torch torchvision torchaudio -y pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1+cu118 --index-url https://download.pytorch.org/whl/cu118
2. 升级编译器到GCC 5.0以上
当前GCC 4.8.5与PyTorch ABI不兼容,需升级:
以CentOS为例:
# 安装高版本GCC yum install centos-release-scl -y yum install devtoolset-7-gcc devtoolset-7-gcc-c++ -y # 临时启用新版本(当前终端有效) scl enable devtoolset-7 bash # 永久启用,添加到~/.bashrc echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc source ~/.bashrc
以Ubuntu为例:
# 安装高版本GCC sudo apt update sudo apt install gcc-7 g++-7 -y # 设置为默认编译器 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70
3. 重新安装pointnet2_ops_lib
完成上述配置后,切换到pointnet2_ops_lib目录,重新执行安装:
pip install .
内容的提问来源于stack exchange,提问作者y Wang
相关产品推荐
相关产品推荐

