Ubuntu + 4090D + vLLM

Ubuntu + 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