项目中,代码环境需要 PyTorch 1.12.0 以上版本,但服务器上的 CUDA 版本仅为 10.1,官方支持的 PyTorch 最高版本为 1.7.0。导致无法直接使用所需的 PyTorch 版本。而且,DGL 也需要 0.9.1 版本,而 CUDA 10.1 不支持该版本。
遇到的错误:
尝试在 CUDA 10.1 环境下安装 PyTorch 1.12.0 及其相关组件时,发现官方的安装包不支持当前的 CUDA 版本,导致无法满足项目的依赖需求。
解决方案:
尽管系统 CUDA 版本为 10.1,但通过以下步骤,我们成功在 Python 3.8 的 Conda 环境中安装了兼容的 PyTorch 和 DGL 版本,而无需升级系统的 CUDA 版本。
1. 创建并激活 Conda 环境
python">conda create -n pytorch python=3.8
conda activate pytorch
2. 安装 PyTorch 1.12.0 及其 CUDA 11.6 版本
尽管系统的 CUDA 版本是 10.1,但我们可以通过 Conda 环境安装特定 CUDA 版本的 PyTorch,这些版本的 CUDA 库是与 PyTorch 捆绑的,不依赖系统的 CUDA 安装。
使用以下命令安装 PyTorch 1.12.0 及其 CUDA 11.6 版本:
python">pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116 --timeout 2000
3. 验证 PyTorch 安装
python">import torchprint("PyTorch version:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
print("CUDA version (PyTorch):", torch.version.cuda)
预期输出
PyTorch version: 1.12.0+cu116 CUDA available: True CUDA version
(PyTorch): 11.6
4. 安装 DGL 0.9.1 的 CUDA 11.6 版本
由于我们已经安装了支持 CUDA 11.6 的 PyTorch,可以安装 DGL 0.9.1 的 CUDA 11.6 版本。即使系统 CUDA 版本为 10.1,只要 Conda 环境中安装了 CUDA 11.6,DGL 应该能够正常工作。
python">pip install dgl-cu116==0.9.1 -f https://data.dgl.ai/wheels/repo.html
5. 验证 DGL 安装
python">import dgl
import torchprint("DGL version:", dgl.__version__)
print("DGL backend:", dgl.backend.name)
print("CUDA available:", torch.cuda.is_available())
print("CUDA version (PyTorch):", torch.version.cuda)
print("PyTorch version:", torch.__version__)
成功运行!