在阿里云 GPU 云服务器(https://www.aliyun.com/product/egs)(如 gn6i, gn7, ecs-gn8 等实例)上安装 AI 环境,核心在于驱动、CUDA 工具包和深度学习框架的匹配。
⚠️ 重要前提:
- 不要自己从 NVIDIA 官网下载驱动编译! 极易出现版本冲突导致内核崩溃。
- 首选方案 :使用阿里云提供的 AI 加速镜像(Deep Learning AMI) 或 官方预装镜像。这是最稳定、最省时的方法。
- 次选方案:如果必须从零搭建,请严格遵循"驱动 -> CUDA -> cuDNN -> PyTorch/TensorFlow"的顺序。
以下是两种具体操作路径:
🟢 方案一:一键部署(推荐新手/快速上手)
适用场景:不想折腾配置,只想尽快跑通模型(如 Stable Diffusion, LLM 推理)。
步骤 1:创建服务器时选择镜像
- 登录阿里云 ECS 控制台,创建实例。
- 在镜像选择 阶段,切换到 "公共镜像" 或 "应用镜像" 标签页。
- 寻找名为 "GPU 计算型" 或 "AI 开发环境" 相关的镜像。
- 例如:
Ubuntu 20.04/22.04 GPU Deep Learning Image。 - 这些镜像通常预装了:NVIDIA Driver + CUDA 11.x/12.x + cuDNN + PyTorch/TensorFlow + Jupyter Notebook。
- 例如:
步骤 2:验证环境
SSH 登录服务器后,运行以下命令检查是否成功:
# 1. 检查显卡驱动
nvidia-smi
# 如果能看到显卡型号、驱动版本和 CUDA Version,说明驱动正常。
# 2. 检查 CUDA 版本
nvcc --version
# 3. 检查 Python 和 PyTorch
python3 -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
# 如果输出 True,说明 GPU 加速已就绪。
步骤 3:启动开发环境
大多数 AI 镜像都预装了 Jupyter Lab,你可以直接访问: http://<你的公网IP>:8888 即可在浏览器中进行代码编写和模型训练。
🔵 方案二:手动从零搭建(适合高级用户/定制需求)
适用场景:需要特定版本的 CUDA,或者使用的是自定义基础镜像(如纯 Ubuntu Server)。
假设你使用的是 Ubuntu 22.04 系统。
第一步:安装 NVIDIA 显卡驱动
阿里云 ECS 的 GPU 实例通常已经安装了驱动,但如果是裸金属或自定义镜像,可能需要重装。 注意:阿里云官方建议通过 ubuntu-drivers 自动安装,避免手动 .run 文件安装导致的内核不匹配。
# 更新软件源
sudo apt update
sudo apt upgrade -y
# 安装推荐驱动
sudo ubuntu-drivers autoinstall
# 重启服务器使驱动生效
sudo reboot
重启后再次运行 nvidia-smi 确认驱动加载。
第二步:安装 CUDA Toolkit
关键原则 :驱动版本决定了你能安装的最高 CUDA 版本,但不能低于它。 查看 nvidia-smi 输出的 CUDA Version: 12.4,这意味着你最高可以安装 12.4 版本的 CUDA Toolkit,也可以安装更低版本(如 11.8),只要兼容即可。
以安装 CUDA 11.8 (目前最稳定的 AI 训练版本) 为例:
# 1. 下载 CUDA 11.8 的 runfile 安装包 (从 NVIDIA 官网获取链接)
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
# 2. 赋予执行权限
chmod +x cuda_11.8.0_520.61.05_linux.run
# 3. 开始安装 (注意:安装过程中会问你是否安装驱动,选 NO,因为上面已经装过了)
sudo ./cuda_11.8.0_520.61.05_linux.run --silent --toolkit --samples=/usr/local/cuda-11.8/samples
# 4. 配置环境变量
echo 'export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
# 5. 验证
nvcc --version
第三步:安装 cuDNN
cuDNN 是 NVIDIA 的深度学习库,必须与 CUDA 版本严格对应。
-
去 NVIDIA Developer 网站下载对应 CUDA 11.8 的 cuDNN for Linux。
-
解压后,将头文件和库文件复制到 CUDA 目录:
tar -xzvf cudnn-linux-x86_64-8.9.0.131_cuda11-archive.tar.xz
sudo cp cudnn--archive/include/cudnn.h /usr/local/cuda/include
sudo cp -P cudnn--archive/lib/libcudnn /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
第四步:安装深度学习框架 (PyTorch 示例)
千万不要用 pip install pytorch 默认源! 一定要去 PyTorch 官网 根据你的 CUDA 版本生成命令。
对于 CUDA 11.8:
# 使用 conda 管理虚拟环境 (推荐)
conda create -n ai_env python=3.10
conda activate ai_env
# 安装 PyTorch (指定 CUDA 11.8)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
第五步:验证 AI 环境
创建一个测试脚本 test_gpu.py:
import torch
print(f"CUDA Available: {torch.cuda.is_available()}")
print(f"Device Count: {torch.cuda.device_count()}")
print(f"Current Device Name: {torch.cuda.get_device_name(0)}")
print(f"PyTorch Version: {torch.__version__}")
# 简单的矩阵乘法测试速度
a = torch.randn(1000, 1000).cuda()
b = torch.randn(1000, 1000).cuda()
c = torch.mm(a, b)
print("GPU Inference Test Passed!")
💡 常见问题排查 (Troubleshooting)
-
nvidia-smi报错 "NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver"- 原因:内核更新后,驱动模块未重新加载。
- 解决 :重启服务器 (
sudo reboot)。如果还不行,尝试sudo modprobe nvidia。
-
PyTorch 报
RuntimeError: Found no NVIDIA driver on your system.- 原因 :虽然
nvidia-smi能跑,但 Python 找不到 CUDA 库。 - 解决 :检查
~/.bashrc中的LD_LIBRARY_PATH是否正确设置,并执行source ~/.bashrc。
- 原因 :虽然
-
显存不足 (OOM)
- 解决 :
- 减小 Batch Size。
- 使用梯度累积 (Gradient Accumulation)。
- 混合精度训练 (Mixed Precision, FP16/BF16)。
- 清理其他进程:
nvidia-smi查看是否有僵尸进程占用显存,kill -9 <PID>杀掉。
- 解决 :
-
如何远程连接 Jupyter?
- 阿里云安全组需开放 8888 端口。
- 启动时加参数:
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root
🏆 最终建议
对于绝大多数用户,直接使用阿里云 Marketplace 中的"Deep Learning Base Image" 是最优解。它们已经处理好了所有复杂的依赖关系,你只需要关注代码本身。只有在有极特殊的版本需求时,才考虑手动搭建。