Ubunt+4090D+Vllm
环境
- NVIDIA CUDA Toolkit
- PyTorch
- FlashAttention
- vLLM
一、系统准备
更新系统:
apt update
apt upgrade -y
安装基础工具:
apt install -y \
git \
build-essential \
cmake \
ninja-build \
python3-dev \
python3-venv \
python3-pip \
htop
二、安装 CUDA
确认 CUDA 已安装:
nvcc --version
应该看到类似:
Cuda compilation tools, release 12.8
如果 CUDA 在:
/usr/local/cuda-12.8
加入环境变量:
echo 'export CUDA_HOME=/usr/local/cuda-12.8' >> ~/.bashrc
echo 'export PATH=$CUDA_HOME/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
验证:
echo $CUDA_HOME
三、创建 Python 虚拟环境
创建环境:
python3 -m venv ~/vllm_venv
进入环境:
source ~/vllm_venv/bin/activate
升级 pip:
pip install --upgrade pip
四、安装 PyTorch (CUDA 12.8)
pip install torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/cu128
验证:
python -c "import torch; print(torch.__version__, torch.version.cuda)"
应该类似:
2.x.x 12.8
再确认 GPU:
python -c "import torch; print(torch.cuda.get_device_name(0))"
五、安装编译工具
FlashAttention 需要:
pip install ninja packaging wheel
六、安装 FlashAttention
4090D 的 GPU 架构是:
sm_89
限制编译架构:
export TORCH_CUDA_ARCH_LIST="8.9"
安装:
pip install flash-attn==2.5.9.post1 --no-build-isolation
编译时间:
10 ~ 40分钟
CPU 会看到:
nvcc
nvvm
ptxas
跑满属于正常现象。
验证:
python -c "import flash_attn; print('flash-attn ok')"
七、安装 vLLM
pip install vllm
确认版本:
python -c "import vllm; print(vllm.__version__)"
八、启动 vLLM API 服务
推荐启动:
vllm serve /root/vllm_deploy/Qwen3-14B-AWQ \
--served-model-name Qwen3-14B-AWQ \
--async-scheduling \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.85 \
--enforce-eager \
--max_model_len 8000
说明:
| 参数 | 作用 |
|---|---|
| tensor-parallel-size 2 | 2张GPU并行 |
| gpu-memory-utilization 0.9 | 显存使用90% |
| port 8000 | API端口 |
九、测试 API
curl http://localhost:8000/v1/models
如果返回模型信息,说明成功。
测试推理:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model":"Qwen/Qwen2.5-7B-Instruct",
"messages":[{"role":"user","content":"你好"}]
}'
十、性能小知识
安装 FlashAttention 后,注意力计算速度通常会:
提升 2~4 倍
因为它减少了:
- GPU显存访问
- KV Cache读写
- 不必要的矩阵计算
这是 Transformer 推理速度提升的核心优化之一。
十一、推荐目录结构
为了以后维护:
/root
├─ vllm_venv
├─ models
├─ vllm_deploy
│ ├─ start.sh
│ └─ logs
启动脚本示例:
#!/bin/bash
source ~/vllm_venv/bin/activate
python -m vllm.entrypoints.openai.api_server \
--model /root/models/Qwen2.5-7B-Instruct \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.9 \
--port 8000