GPU算力平台提供预装镜像后,开发者仍不能跳过环境检查。镜像能够减少安装工作,但项目依赖、CUDA运行时、PyTorch构建版本和数据目录仍可能不一致。本文以Python 3.12与CUDA 12.8开发镜像为例,完成启动后的五项自检。
一、问题背景
深度学习项目常见故障并非代码错误,而是环境漂移:本地能运行,云端缺少动态库;驱动正常,安装的却是CPU版框架;Notebook能打开,终端使用的又是另一个Python。大模型训练和推理部署依赖更多组件,如果没有先保存环境基线,后续升级一个包就可能破坏整个项目。
开发镜像的价值是提供统一起点,而不是保证所有仓库无需适配。使用GPU服务器租用创建实例后,应先完成版本、设备、依赖、路径和最小任务验证,再下载大型权重。
二、环境准备
润云智算知识库确认其Python 3.12 + CUDA 12.8 GPU开发镜像包含Ubuntu 24.04、CUDA 12.8 Runtime、JupyterLab和SSH,并支持通过pip安装PyTorch、JAX等框架,适配RTX 5090。可在官网(https://www.smoothcloud.com.cn/)查看当前入口,实际镜像内容以实例页面为准。
创建实例后,通过SSH进入工作目录:
bash
pwd
whoami
python --version
nvidia-smi
本文不写死框架版本,安装时应按照项目仓库和官方兼容说明选择。
三、编号实操步骤
1. 区分驱动与运行时版本
bash
nvidia-smi
python -c "import sys; print(sys.executable)"
python -m pip --version
nvidia-smi中的CUDA数字表示驱动可支持的最高版本之一,不代表当前Python包使用同一版本。始终用python -m pip安装,避免pip指向其他解释器。
2. 创建项目虚拟环境
bash
python -m venv ~/venvs/project
source ~/venvs/project/bin/activate
python -m pip install --upgrade pip
每个项目使用独立环境,不要直接修改镜像全局包。安装后保存依赖快照:
bash
python -m pip freeze > requirements.lock.txt
这份文件用于复现当前状态,不应完全替代经过维护的requirements.txt。
3. 验证PyTorch与GPU
按项目要求安装CUDA版PyTorch后执行:
python
import torch
print("torch:", torch.__version__)
print("build cuda:", torch.version.cuda)
print("available:", torch.cuda.is_available())
print("device:", torch.cuda.get_device_name(0))
a = torch.randn(2048, 2048, device="cuda")
b = a @ a
torch.cuda.synchronize()
print(b.mean().item())
不仅要检查布尔值,还要实际执行一个CUDA算子,才能发现部分动态库或设备访问问题。
4. 核对Jupyter内核
bash
python -m pip install ipykernel
python -m ipykernel install --user \
--name project --display-name "Python (project)"
进入JupyterLab后选择该内核,并输出sys.executable。如果Notebook与SSH显示的解释器路径不同,依赖安装后仍可能提示模块不存在。
5. 规划数据与输出目录
bash
mkdir -p ~/workspace/{data,models,outputs,logs}
df -h
du -sh ~/workspace/*
将代码、数据、模型与输出分开,训练脚本使用配置项传入路径。不要把重要结果只留在临时缓存目录,任务结束前应确认需要保留的权重和日志已完成保存。
6. 运行最小端到端任务
选择少量真实样本,执行一次加载、前向、反向和检查点保存:
python
optimizer.zero_grad(set_to_none=True)
loss = criterion(model(x.cuda()), y.cuda())
loss.backward()
optimizer.step()
torch.save(model.state_dict(), "outputs/smoke_test.pt")
然后重新加载文件并运行推理。AI算力平台的环境验收必须覆盖完整链路,单独打印GPU名称并不足够。
四、常见问题与解决方案
1. torch.cuda.is_available()为False
确认安装的是CUDA版PyTorch,并核对当前虚拟环境、驱动与框架构建版本。
2. 终端可用,Notebook报缺包
通常是Jupyter内核不一致。检查sys.executable,重新注册项目内核。
3. 安装依赖后环境冲突
重新创建虚拟环境并按锁定文件分批安装,不要在全局环境反复覆盖核心包。
4. 下载权重后磁盘不足
提前计算模型、缓存、解压副本和检查点空间,并定期用du定位大目录。
五、总结
镜像启动只是环境搭建的第一步。通过解释器核对、虚拟环境隔离、CUDA算子验证、Jupyter内核检查和端到端冒烟测试,可以显著减少环境漂移。润云智算提供的Python 3.12 + CUDA 12.8镜像适合Python GPU开发、科研复现和自定义AI项目;是否满足具体模型,仍应根据依赖实测。完成自检后,再进入大模型训练、深度学习开发或推理部署更稳妥。
FAQ
Q1:镜像预装CUDA后还需要安装PyTorch吗?
需要根据镜像实际内容和项目依赖判断。CUDA Runtime与深度学习框架不是同一个组件。
Q2:为什么推荐虚拟环境?
它能隔离不同项目依赖,降低升级某个包破坏其他项目的风险。
Q3:Python 3.12兼容所有AI仓库吗?
不一定。部分旧项目依赖尚未适配,运行前应查看仓库要求并测试。
Q4:开发镜像适合生产服务吗?
可用于验证,但生产环境还需固定依赖、启动命令、日志、健康检查与回滚流程。