ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PyTorch Geometric 安装完全指南:从 PyPI、Wheels 到源码编译与 cuGraph 加速

PyTorch Geometric 安装完全指南:从 PyPI、Wheels 到源码编译与 cuGraph 加速 PyTorch Geometric 安装完全指南从 PyPI、Wheels 到源码编译与 cuGraph 加速【免费下载链接】pytorch_geometricGraph Neural Network Library for PyTorch项目地址: https://gitcode.com/GitHub_Trending/py/pytorch_geometric本篇技术指南以 PyTorch GeometricPyG官方安装文档docs/source/install/installation.rst为骨架系统讲解 PyG 在当前仓库版本下的全部安装路径最小化 PyPI 安装、可选加速扩展库pyg-lib / torch-scatter / torch-sparse、Wheels 预编译二进制安装、源码编译、Anaconda 安装以及 NVIDIA cuGraph GNN 加速方案并结合仓库源码说明各依赖在 PyG 内部的真实调用关系。读完本文你将能够根据自身 PyTorch/CUDA 环境选择并正确完成一套可稳定运行的 PyG 环境搭建并具备独立排查常见安装报错的能力。环境要求与版本支持PyG当前仓库版本为 2.9.0见 pyproject.toml支持Python 3.10 至 Python 3.14。pyproject.toml中通过requires-python 3.10及对应的 Python 版本 classifier 明确声明了这一范围因此低于 3.10 的解释器将无法安装。官方安装文档特别强调不建议在系统 Python 上以 root 用户直接安装 PyG。推荐的做法是先搭建一个独立的虚拟环境常见方案有三种venvPython 3 自带的虚拟环境工具python -m venv myenv即可创建Anaconda / Miniconda适合需要同时管理 Python 与 CUDA 工具链的场景Docker 容器适合 GPU 环境隔离与复现仓库 docker/README.md 中提供了 NVIDIA GPUdocker/Dockerfile与 Intel GPUdocker/Dockerfile.xpu两套 Dockerfile以及 Singularity 容器的构建说明。提示官方文档页还内嵌了一个交互式 Quick Start 组件实现见 docs/source/install/quick-start.html可在线选择 PyTorch 版本、操作系统、包管理器与 CUDA 版本动态生成对应的安装命令。其默认推荐组合为 PyTorch 2.12、Linux、pip、CPU。通过 PyPI 安装最小安装从PyG 2.3版本起安装和使用 PyG不再需要除 PyTorch 之外的任何外部扩展库。最小安装只需一条命令pip install torch_geometric这也是官方推荐的起步方式先跑通 PyG 的基本功能等真正需要某些高级能力时再按需安装附加依赖。附加库按需选装的加速组件如果希望利用 PyG 的完整特性官方文档列出了三个可选的附加库附加库提供的能力pyg-lib异质图 GNN 算子、图采样例程、图聚类例程以及SplineConv支持torch-scatter加速且高效的稀疏归约scatter 操作torch-sparseSparseTensor稀疏张量支持需要注意torch-cluster和torch-spline-conv已不再作为独立包要求其功能已迁移至pyg-lib0.6.0。这一点在仓库源码中有直接证据——torch_geometric/typing.py 在导入阶段探测torch_cluster与torch_spline_conv时会主动发出弃用警告torch-cluster is no longer necessary and is being ignored. Its functionality has been migrated to pyg-lib0.6.0.这些扩展包自带基于PyTorch C/CUDA/hip(ROCm) 扩展接口实现的 CPU 与 GPU 内核。对于 PyG 的基本使用它们完全可选官方建议以最小安装起步待实际需要时再补充依赖。源码视角这些依赖在 PyG 内部如何被使用从源码看附加库的作用并非锦上添花那么简单而是深度参与关键路径的实现特性探测与优雅降级torch_geometric/typing.py 在导入时通过try/except探测各扩展库是否可用并设置WITH_PYG_LIB、WITH_TORCH_SCATTER、WITH_TORCH_SPARSE等开关一旦导入失败会回退到纯 PyTorch 实现并给出警告信息。这意味着缺少扩展库时 PyG 不会崩溃只是相关能力被禁用。多路径 scatter 调度torch_geometric/utils/_scatter.py 中的scatter函数同时维护了torch_scatter与torch.scatter_reduce两条代码路径注释明确指出torch_scatter在 GPU 上通常更快而torch.scatter_reduce在 CPU 上更快——这正是安装文档建议按需选择扩展库的原因。算子级能力开关pyg-lib的存在与否会决定一批高级算子是否启用包括grouped_matmul/segment_matmulGMM/SEGMM 分组矩阵乘法、spline_basis样条基函数、graclus_cluster、fps、knn、radius、index_sort、softmax_csr等见 torch_geometric/typing.py。例如 torch_geometric/nn/conv/spline_conv.py 中的SplineConv正是从pyg_lib.ops导入spline_basis与spline_weighting来实现样条卷积。pyproject 依赖清单纯 Python 侧的运行依赖集中在 pyproject.toml 的dependencies字段如aiohttp、fsspec、jinja2、numpy、psutil、requests、tqdm、xxhash而graphgym、modelhub、benchmark、rag、test、dev、full等能力则以可选依赖extras形式提供进一步印证了最小安装 按需扩展的设计哲学。通过 Wheels 安装预编译二进制对于pyg_lib、torch_scatter、torch_sparse这类含 C/CUDA 内核的扩展包官方为所有主流操作系统、PyTorch 与 CUDA 组合提供了预编译 Wheels避免本地编译的繁琐。安装步骤如下第 1 步确认 PyTorch 版本至少需要PyTorch 1.13.0及以上版本python -c import torch; print(torch.__version__) 2.12.0第 2 步确认 PyTorch 对应的 CUDA 版本python -c import torch; print(torch.version.cuda) 12.8注意这里查询的是PyTorch 编译时链接的 CUDA 版本即torch.version.cuda而非系统nvcc --version的版本。二者必须与后续安装命令中的${CUDA}占位符保持一致否则会出现运行时符号错误详见下文 FAQ。第 3 步安装扩展包pip install pyg_lib torch_scatter torch_sparse -f https://data.pyg.org/whl/torch-${TORCH}${CUDA}.html其中${TORCH}替换为 PyTorch 版本${CUDA}替换为 CUDA 标识cpu或cuXXX。各 PyTorch 版本对应的可用 CUDA 标识如下PyTorch 版本${TORCH}${CUDA}可选值2.12.*2.12.0cpu/cu126/cu130/cu1322.11.*2.11.0cpu/cu126/cu128/cu1302.10.*2.10.0cpu/cu126/cu128/cu1302.9.*2.9.0cpu/cu126/cu128/cu1302.8.*2.8.0cpu/cu126/cu128/cu1292.7.*2.7.0cpu/cu118/cu126/cu1282.6.*2.6.0cpu/cu118/cu124/cu1262.5.*2.5.0cpu/cu118/cu121/cu1242.4.*2.4.0cpu/cu118/cu121/cu1242.3.*2.3.0cpu/cu118/cu1212.2.*2.2.0cpu/cu118/cu1212.1.*2.1.0cpu/cu118/cu1212.0.*2.0.0cpu/cu117/cu1181.13.*1.13.0cpu/cu116/cu117实际命令示例# 例 1PyTorch 2.12.* CUDA 13.2 pip install pyg_lib torch_scatter torch_sparse -f https://data.pyg.org/whl/torch-2.12.0cu132.html # 例 2PyTorch 2.10.* CUDA 12.8 pip install pyg_lib torch_scatter torch_sparse -f https://data.pyg.org/whl/torch-2.10.0cu128.html关于旧版本官方 Wheels 索引同样提供 PyTorch 1.4.0 ~ 2.8.0 区间内大量旧版本的二进制包包括 1.13.0/1.13.1、2.0.x、2.1.x、2.2.x、2.3.x、2.4.x、2.5.x、2.6.0、2.7.x、2.8.0 等安装流程与上述一致。对于更旧的版本需要显式指定该包支持的最新版本号或使用pip install --no-index避免触发从源码手动编译。关于 ROCm外部社区仓库pyg-rocm-build提供了面向 ROCm 平台的 Wheels 与详细安装说明如有问题可在该仓库提交 issue。从源码安装当某个特定版本不在官方 Wheels 索引中时可以选择从源码安装扩展包。安装前需确认 CUDA 工具链配置正确第 1 步确认 CUDA 环境可选但强烈建议① 检查 PyTorch 是否带 CUDA 支持python -c import torch; print(torch.cuda.is_available()) True② 将 CUDA 加入$PATH与$CPATH实际 CUDA 路径可能不同于/usr/local/cudaexport PATH/usr/local/cuda/bin:$PATH echo $PATH /usr/local/cuda/bin:... export CPATH/usr/local/cuda/include:$CPATH echo $CPATH /usr/local/cuda/include:...③ 在 Linux 上设置$LD_LIBRARY_PATH在 macOS 上设置$DYLD_LIBRARY_PATH# Linux export LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH echo $LD_LIBRARY_PATH /usr/local/cuda/lib64:... # macOS export DYLD_LIBRARY_PATH/usr/local/cuda/lib:$DYLD_LIBRARY_PATH echo $DYLD_LIBRARY_PATH /usr/local/cuda/lib:...④ 确认终端可访问nvccnvcc --version 11.8⑤ 确保 PyTorch 与系统 CUDA 版本匹配两者输出应一致python -c import torch; print(torch.version.cuda) 11.8 nvcc --version 11.8第 2 步从源码安装扩展包pip install --verbose githttps://github.com/pyg-team/pyg-lib.git pip install --verbose torch_scatter pip install --verbose torch_sparse使用--verbose便于在编译失败时定位问题。源码安装失败怎么办在少数情况下CUDA 或 Python 路径问题会导致安装失败pip甚至可能提示安装成功但运行时直接崩溃并报Segmentation fault (core dumped)。此时的处理顺序为查阅本文常见问题小节若仍未解决先按 NVIDIA 官方安装指南核验 CUDA 配置是否正确最后再向 PyG 官方仓库提交 issue。通过 Anaconda 安装重要警告自 PyTorch 2.5.0 起官方不再提供 PyG 的 conda 包请改用pip安装。对于较早的 PyTorch 版本torch2.5.0可以通过 Anaconda 为所有主流操作系统与 CUDA 组合安装 PyG。若尚未安装 PyTorch请先按照 PyTorch 官方文档使用conda install安装已有 PyTorch 的情况下运行conda install pyg -c pyg如果 conda 没有自动匹配正确的 CUDA 版本可以强制指定conda install pyg**cu* -c pyg加速 PyG集成 NVIDIA cuGraph GNNPyG 可以可选地借助 NVIDIA 的cuGraph库加速邻居采样从而在十亿边级的大规模图上获得更好的多 GPU 训练扩展性官方文档给出的数据加载加速比为 2x-8x。NVIDIA 目前推荐使用NVIDIA PyG ContainerNGC作为在 NVIDIA 硬件上使用 cuGraph 集成的最可靠方式其他安装方式请参考 cuGraph GNN 仓库与 RAPIDS 安装指南。cuGraph GNN 是可选组件——PyG 的全部功能包括多 GPU 训练在缺少它时依然可用。但对于拥有 NVIDIA GPU 的用户cuGraph 能在邻居采样与数据加载上提供显著加速尤其适合大规模图场景。从技术架构看依据官方文档说明cuGraph是 RAPIDS 加速数据科学框架的一部分专注于 GPU 加速图分析支持属性图可扩展至数千块 GPUcuGraph GNN是面向 PyTorch 与 PyG 的 GPU 加速插件集合由cuGraph-PyG与WholeGraph两个子项目组成。它构建在 cuGraph 之上复用其底层pylibcugraphAPI 与 C 采样原语libcugraph并包含libwholegraph/pylibwholegraph库用于高性能分布式边列表与嵌入存储用户既可以直接使用这些底层库也可以通过 cuGraph-PyG 的高层 API 使用——该 API 直接实现了 PyG 的 GraphStore、FeatureStore、NodeLoader 与 LinkLoader 接口对应源码路径可分别在 torch_geometric/data/ 与 torch_geometric/loader/ 下查看因此对上层训练代码透明。常见问题FAQundefined symbol: make_function_schema该报错通常意味着两类版本冲突之一已安装的 PyTorch 版本与安装扩展包时指定的${TORCH}版本不一致PyTorch 内置的 CUDA 版本与安装扩展包时指定的${CUDA}版本不一致。请核对 PyTorch 版本、其 CUDA 版本与安装命令三者是否匹配python -c import torch; print(torch.__version__) python -c import torch; print(torch.version.cuda) nvcc --version重新安装时为避免缓存干扰建议使用pip install --force-reinstall --no-cache-dir同时pip --verbose选项有助于跟踪安装过程中的具体报错。若始终无法成功可改从源码安装扩展包见上文从源码安装小节。安装完成后的验证完成安装后可通过以下方式快速验证 PyG 是否就绪import torch import torch_geometric print(torch.__version__) # 确认 PyTorch 版本 print(torch_geometric.__version__) # 确认 PyG 版本当前仓库为 2.9.0 from torch_geometric.nn import GCNConv from torch_geometric.datasets import Planetoid仓库 examples/gcn.py 提供了一个完整的 GCN 训练示例基于 Cora 数据集可用于端到端验证环境包括数据下载、模型训练与评估。若需要复现更多安装形态仓库的 docker/README.md 还提供了 NVIDIA GPU、Intel GPUXPU与 Singularity 三种容器化运行方式可作为虚拟环境之外的备选方案。【免费下载链接】pytorch_geometricGraph Neural Network Library for PyTorch项目地址: https://gitcode.com/GitHub_Trending/py/pytorch_geometric创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表