返回 AI 资讯
社区讨论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

原文链接

打开原文