工程实践 2026年5月30日 13 分钟阅读 3407 字

PPU显卡环境配置

PPU 显卡服务器深度学习环境配置指南,介绍如何继承系统 PPU 版 PyTorch、创建虚拟环境、安装安全依赖,并处理 torch 不可用和依赖冲突等常见问题。

ppu显卡环境配置 封面图

PPU 显卡服务器环境配置指南

在深度学习项目中,我们平时接触比较多的是NVIDIA GPU服务器。对于这类服务器,常见做法是创建一个 conda 环境,然后根据项目的 requirements.txt 安装 PyTorch、CUDA、torchvision 等依赖。

但是 PPU 显卡服务器和普通 GPU 服务器不太一样。PPU 服务器通常已经预装了适配硬件的定制版 PyTorch,如果按照普通 GPU 的方式重新安装 torch,很容易导致原本可用的环境被覆盖,最后出现模型无法调用显卡、torch.cuda.is_available()False、训练程序无法启动等问题。

所以,在 PPU 服务器上配置深度学习环境时,最重要的不是“重新安装一套 PyTorch”,而是正确继承服务器已有的 PPU 版 PyTorch。本文主要记录一套适合 PPU 服务器的项目环境配置流程。


一、PPU 环境配置的核心原则

PPU 服务器不能完全按照普通 GPU 服务器的方式来配置。

普通 GPU 服务器上,我们可能会习惯性地执行:

pip install torch
pip install torchvision
pip install -r requirements.txt

但在 PPU 服务器上,这种做法风险很高。

原因是 PPU 服务器使用的通常是定制版 PyTorch,例如:

torch 1.13.0a0+nv2208
cuda available = True
cuda = 11.7

这个版本并不是普通 PyPI 源里随便安装的标准版 PyTorch,而是已经适配当前服务器硬件和驱动环境的版本。

因此,PPU 服务器配置环境时要遵守三个原则:

一个项目一个虚拟环境;
虚拟环境继承系统自带 PPU torch;
不要随便安装或覆盖 torch 相关依赖。

尤其不要随意安装下面这些包:

torch
torchvision
torchaudio
xformers
deepspeed

这些包和底层深度学习框架关系很密切,一旦版本不兼容,就可能导致整个训练环境失效。

简单来说,PPU 服务器环境配置的重点不是“装 torch”,而是“保护好已有的 torch”。


二、创建项目虚拟环境

假设现在要配置一个新项目,项目名叫 new_project

首先进入项目代码所在目录:

cd /home/projects/new_project

然后创建虚拟环境:

/usr/local/bin/python3.8 -m venv --system-site-packages /home/envs/new_project

这里最关键的是:

--system-site-packages

这个参数非常重要。

它的作用是:让新创建的虚拟环境可以访问系统环境中已经安装好的 Python 包,其中就包括服务器自带的 PPU 版 PyTorch。

如果不加这个参数,新建出来的虚拟环境会比较“干净”,它可能找不到系统原本安装好的 PPU torch。这样后面运行项目时,就可能出现无法导入 torch,或者 torch 无法识别 PPU 计算资源的问题。

所以,在 PPU 服务器上创建项目环境时,不建议直接使用普通的:

python -m venv /home/envs/new_project

而应该使用:

/usr/local/bin/python3.8 -m venv --system-site-packages /home/envs/new_project

这样做既能让不同项目拥有独立环境,又能共享服务器原本配置好的 PPU 深度学习底层环境。


三、激活虚拟环境

虚拟环境创建完成后,需要先激活:

source /home/envs/new_project/bin/activate

激活成功后,终端命令行前面一般会出现环境名,例如:

(new_project) root@server:/home/projects/new_project#

这说明当前已经进入了 new_project 这个虚拟环境。

后续安装依赖、运行训练脚本,都应该在这个虚拟环境中进行。

如果想退出当前虚拟环境,可以执行:

deactivate

退出后,终端前面的环境名会消失。


四、验证 PPU torch 是否可用

创建并激活环境后,第一步不是安装项目依赖,而是先检查 torch 是否正常。

执行下面的命令:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda)"

正常情况下,输出应该类似:

1.13.0a0+nv2208
True
11.7

这里需要重点关注三个信息。

第一个是 PyTorch 版本:

1.13.0a0+nv2208

这说明当前使用的是服务器自带的定制版 torch。

第二个是:

True

它对应的是:

torch.cuda.is_available()

虽然这里显示的是 cuda,但在很多国产或定制硬件环境中,深度学习框架仍然会沿用 CUDA 风格的接口。只要这里返回 True,就说明当前环境可以正常调用加速设备。

第三个是 CUDA 版本:

11.7

这个版本需要和服务器底层环境匹配,不建议手动乱改。

如果这里输出的是:

False

说明当前虚拟环境没有正确继承系统的 PPU torch,或者底层驱动环境没有正确加载。此时不要急着安装新的 torch,而应该先检查虚拟环境创建方式是否正确。


五、安装项目依赖

很多深度学习项目都会提供 requirements.txt 文件。普通情况下,我们可能会直接执行:

pip install -r requirements.txt

但是在 PPU 服务器上,不建议这样做。

因为 requirements.txt 里面可能包含:

torch
torchvision
torchaudio
xformers
deepspeed

如果直接安装,就可能把系统自带的 PPU torch 覆盖掉。

正确做法是先查看依赖文件:

cat requirements.txt

确认里面有哪些包。

然后生成一个安全版依赖文件,过滤掉可能破坏 PPU 环境的包:

grep -v -E '^(torch|torchvision|torchaudio|xformers|deepspeed)' requirements.txt > requirements_safe.txt

如果项目中还包含一些会间接安装 torch 的包,也需要一起过滤。

例如有些项目中的 open_flamingo 可能会自动拉取 torch,因此可以这样处理:

grep -v -E '^(torch|torchvision|torchaudio|xformers|deepspeed|open_flamingo)' requirements.txt > requirements_safe.txt

然后设置 pip 源,例如使用清华源:

export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

最后安装安全依赖:

pip install -r requirements_safe.txt

安装过程中需要注意终端输出。

如果看到:

Collecting torch

应该立即停止:

Ctrl + C

这说明某个依赖正在尝试安装 torch。此时需要检查 requirements_safe.txt,找出是哪个包触发了 torch 的安装,然后把它移除或单独处理。

在 PPU 服务器上,安装依赖的原则是:

普通工具包可以装;
torch 相关包不要乱装;
会自动拉 torch 的包也要谨慎。

六、常见问题与解决方法

1. 缺少 Python 包

如果运行项目时报错:

ModuleNotFoundError: No module named 'xxx'

说明当前环境缺少某个 Python 包。

可以单独安装:

pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple

例如缺少 yacs

pip install yacs -i https://pypi.tuna.tsinghua.edu.cn/simple

缺少 opencv-python

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

但是如果缺少的是 torchtorchvisiontorchaudio 这类包,不要直接安装,需要先确认服务器是否已经提供了对应版本。


2. torch 可以导入,但不能调用显卡

如果执行:

python -c "import torch; print(torch.cuda.is_available())"

输出是:

False

说明 torch 虽然能导入,但当前环境没有正确识别 PPU 计算资源。

这时可以重新创建虚拟环境:

rm -rf /home/envs/new_project
/usr/local/bin/python3.8 -m venv --system-site-packages /home/envs/new_project
source /home/envs/new_project/bin/activate

然后再次验证:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda)"

如果重新创建后仍然是 False,就需要进一步检查服务器底层驱动、环境变量或管理员提供的 PPU SDK 是否正常。


3. 安装依赖时自动拉取 torch

如果安装依赖时出现:

Collecting torch

这通常说明某个包依赖了 torch,并且 pip 准备从外部源安装标准版 PyTorch。

在 PPU 环境中,这种情况需要立刻停止:

Ctrl + C

然后检查依赖文件:

cat requirements_safe.txt

可以逐个排查哪些包可能会触发 torch 安装。

常见需要特别注意的包包括:

torch
torchvision
torchaudio
xformers
deepspeed
open_flamingo

如果确实需要这些包,需要优先确认服务器是否已经提供 PPU 适配版本,而不是直接从 PyPI 安装普通版本。


4. pip 安装速度很慢

如果 pip 下载速度很慢,可以临时指定国内源:

pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple

也可以在当前终端会话中设置默认源:

export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

这样后续执行 pip install 时,会默认使用清华源。

不过需要注意,如果某些包在国内源没有同步,可能需要换回官方源或使用其他镜像源。


5. requirements.txt 安装失败

有些旧项目的依赖版本比较老,直接安装可能会失败。

例如可能出现:

ERROR: Could not find a version that satisfies the requirement xxx==x.x.x

这种情况可以尝试几种方法:

第一,去掉严格版本限制。

例如把:

xxx==1.2.3

改成:

xxx

第二,手动安装相近版本:

pip install xxx

第三,先跳过这个包,等运行时报错时再单独处理。

深度学习项目复现时,不一定要一次性把所有依赖都装完。更稳妥的方式是:先保护好 torch 环境,再根据报错逐个补包。


七、确定当前环境是否正常

如果不确定当前环境是否正常,可以先执行:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda)"

只要能看到:

True

一般说明 PPU torch 可以正常使用。


八、PPU 环境配置中的注意事项

PPU 服务器配置环境时,最需要注意的是不要破坏系统原有环境。

尤其不要执行:

pip install torch
pip install torchvision
pip install torchaudio
pip install -r requirements.txt

特别是:

pip install -r requirements.txt

这条命令在普通服务器上很常见,但在 PPU 服务器上风险比较大。

更推荐的方式是:

先查看 requirements.txt;
过滤 torch 相关依赖;
生成 requirements_safe.txt;
再安装安全依赖;
运行项目时缺什么再补什么。

这样虽然步骤稍微多一点,但稳定性更好,不容易把系统环境弄坏。


相关文章

评论

#

评论正在加载。如果这里一直没有内容,请检查手机网络是否能访问 GitHub Discussions 和 giscus.app。