社区讨论LinuxDo 最新
记录一次vLLM 0.27.1 2080ti x2 抄作业
根据仓库 zyYuc/qwen3-8-27b-dual-2080ti-vllm 编译专属vllm版本,实际上0.24.0之前的几个版本可以直接使用(我记得我在0.19.0,0.20.0版本是可以的),但是之后开始出现sm75不允许使用fp8 kvcache了。 这里记录一下我的抄作业方案(专用于 sm75设备 启动 qwen3.8 27b),如果大家需要参考请使用自己的具体路径: 编译 cd llms git clone https://github.com/zyYuc/qwen3-8-27b-dual-2080…
内容摘要
作者:#annacomnena
板块:#开发调优
根据仓库 zyYuc/qwen3-8-27b-dual-2080ti-vllm 编译专属vllm版本,实际上0.24.0之前的几个版本可以直接使用(我记得我在0.19.0,0.20.0版本是可以的),但是之后开始出现sm75不允许使用fp8 kvcache了。 这里记录一下我的抄作业方案(专用于 sm75设备 启动 qwen3.8 27b),如果大家需要参考请使用自己的具体路径:
编译
cd llms
git clone https://github.com/zyYuc/qwen3-8-27b-dual-2080ti-vllm.git
cd qwen3-8-27b-dual-2080ti-vllm
source vllm271-sm75/bin/activate
uv pip install -U setuptools wheel packaging ninja
uv pip install torch==2.13.0 \
--index-url https://download.pytorch.org/whl/cu130
git clone https://github.com/vllm-project/vllm.git vllm-0.27.1-sm75
cd vllm-0.27.1-sm75
git checkout v0.27.1
git apply --check \
~/llms/qwen3-8-27b-dual-2080ti-vllm/patches/vllm-v0.27.1-sm75-qwen3.8.patch
注意此时的位置
(vllm271-sm75) annacomnena@annacomnena-Default-string:~/llms/qwen3-8-27b-dual-2080ti-vllm/vllm-0.27.1-sm75
如果,没有报错旧apply patch
git apply \
~/llms/qwen3-8-27b-dual-2080ti-vllm/patches/vllm-v0.27.1-sm75-qwen3.8.patch
注意:CUDA-toolkit版本:
首先安装
sudo apt update
sudo apt install cuda-toolkit-13-0
然后
export CUDA_HOME=/usr/local/cuda-13.0
export PATH="$CUDA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:${LD_LIBRARY_PATH:-}"
export TORCH_CUDA_ARCH_LIST="7.5"
此时验证cudatoolkit 与cuda版本:
which nvcc
nvcc --version
python -c "import torch; print(torch.__version__, torch.version.cuda)"
如果是13就对了
patch完成之后可以安装依赖:
uv pip install -e .
他会自动构建,如果失败了需要清理缓存,基本必定失败因为uv会自己创造临时环境
rm -rf build .deps CMakeCache.txt CMakeFiles
uv cache clean vllm
因此uv需要锁定:
uv pip install \
"numpy==2.3.5" \
"setuptools>=77.0.3,<81.0.0" \
"setuptools-scm>=8.0" \
"setuptools-rust>=1.9.0" \
"packaging>=24.2" \
cmake ninja wheel jinja2
再构建:
uv pip install --no-build-isolation -e .
构建完成后拿FlashQLA的特定版本:(3ab27d77d8ca01d7a4718903b726add1a8886c0e)
cd ~/llms/qwen3-8-27b-dual-2080ti-vllm
git clone https://github.com/weicj/FlashQLA-SM70-SM75.git
cd FlashQLA-SM70-SM75
git checkout 3ab27d77d8ca01d7a4718903b726add1a8886c0e
验证patch:
git apply --check ../patches/flashqla-sm70-sm75-local.patch
如果没有输出,那么正常,继续
git apply ../patches/flashqla-sm70-sm75-local.patch
保持环境变量然后编译:
export CUDA_HOME=/usr/local/cuda-13.0
export PATH="$CUDA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:${LD_LIBRARY_PATH:-}"
export TORCH_CUDA_ARCH_LIST="7.5"
uv pip install --no-build-isolation -e .
下一步锁定flashinfer版本:
cd ~/llms/qwen3-8-27b-dual-2080ti-vllm
uv pip install "flashinfer-python==0.6.16.post3"
应当:
flashinfer-python 0.6.16.post3
torch 2.13.0+cu130
vllm 0.27.1
transformers 5.15.1
triton 3.7.1,检查:
bash scripts/check_flashinfer_sm75.sh
True 为通过;
总检察脚本:
python - <<'PY'
import torch
import vllm
import transformers
import triton
import importlib.metadata as md
print("torch :", torch.__version__)
print("torch CUDA :", torch.version.cuda)
print("vllm :", vllm.__version__)
print("transformers:", transformers.__version__)
print("triton :", triton.__version__)
print("flashinfer :", md.version("flashinfer-python"))
from flash_qla.ops.gated_delta_rule.legacy import chunk_gated_delta_rule_fwd_legacy
print("FlashQLA : legacy import OK")
PY
启动 3.8 27b
cd ~/llms
conda deactivate
source qwen3-8-27b-dual-2080ti-vllm/vllm271-sm75/bin/activate
export CUDA_HOME=/usr/local/cuda-13.0
export PATH="$CUDA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:${LD_LIBRARY_PATH:-}"
export PYTHONPATH=~/llms/qwen3-8-27b-dual-2080ti-vllm/FlashQLA-SM70-SM75
export VLLM_USE_DEEP_GEMM=0
export VLLM_USE_FLASHINFER_SAMPLER=0
export VLLM_QWOPUS_MTP_BF16_DRAFT=1
export VLLM_SM75_SPEC_SYNC_MODE=safe
export VLLM_USE_V2_MODEL_RUNNER=1
vllm serve ./Qwen3.8-27B-W4A16-AWQ \
--port 3001 \
--served-model-name medium \
--dtype half \
--tensor-parallel-size 2 \
--device-ids 0,1 \
--kv-cache-dtype fp8_e4m3 \
--max-model-len 200000 \
--max-num-seqs 3 \
--max-num-batched-tokens 4096 \
--enable-prefix-caching \
--enable-chunked-prefill \
--no-async-s
资讯来源
LinuxDo