RHEL8.6集群安装torch-sparse0.6.12遇c10编译错误求助
解决torch-sparse==0.6.12安装编译错误的方案
问题根源
这个编译错误是因为torch-sparse 0.6.12与当前环境的PyTorch版本不兼容,c10::CppTypeToScalarType是旧版PyTorch(1.10.x及更早)中的结构,新版PyTorch已移除或重构了该模块,导致编译时找不到对应定义。
具体解决步骤
1. 检查当前PyTorch版本与CUDA版本
执行以下命令确认环境中PyTorch的版本和绑定的CUDA版本:
pip show torch
查看输出中的Version和CUDA Version字段(通常在Location下方的备注区域)。
2. 降级PyTorch到兼容版本
torch-sparse 0.6.12仅兼容PyTorch 1.8.0~1.10.x版本,且需要对应匹配的CUDA版本(如cu102、cu111、cu113)。如果当前PyTorch版本高于1.10.x,执行对应命令降级:
# 示例:安装PyTorch 1.10.2 + CUDA 11.3 pip install torch==1.10.2+cu113 torchvision==0.11.3+cu113 torchaudio==0.10.2+cu113
如果是CPU版本:
pip install torch==1.10.2+cpu torchvision==0.11.3+cpu torchaudio==0.10.2+cpu
3. 安装匹配版本的前置依赖
torch-sparse依赖torch-scatter,且版本必须严格匹配,先安装对应版本的torch-scatter:
# 以PyTorch 1.10.2 + CUDA 11.3为例 pip install torch-scatter==2.0.9
4. 重新安装torch-sparse==0.6.12
完成上述步骤后,指定系统默认编译器版本重新执行安装:
CC=gcc-8 CXX=g++-8 pip install torch-sparse==0.6.12
(RHEL8.6默认GCC为8.x,指定版本可避免编译器兼容问题)
5. 备选:使用预编译轮子直接安装
如果编译仍失败,可直接下载对应Python3.6、PyTorch版本、CUDA版本的预编译.whl文件,执行本地安装:
pip install /path/to/torch-sparse-0.6.12-xxx.whl
内容的提问来源于stack exchange,提问作者Michael Heimann Heimi
相关产品推荐
相关产品推荐

