2
其他
K100/gfx926 原生 vLLM 完整运行环境
2026-06-21 17:50:35
498
# K100/gfx926 原生 vLLM 完整运行环境 这是一套面向 K100 显卡用户的通用大模型运行环境。目标是让已经安装好 Linux 系统和 K100 驱动的机器,通过一个完整运行环境包获得 DTK/HIP、Python 运行环境、改造后的 PyTorch/vLLM 源树和通用启动脚本,从而直接用 Hugging Face 模型目录启动 vLLM OpenAI API server。 这条路线不依赖厂商 demo 程序。它使用标准 PyTorch + DTK/HIP + vLLM 服务入口,模型目录、HTTP API、并发参数和张量并行参数都按通用 vLLM 方式暴露,方便后续接入业务服务、测试工具或其他 OpenAI-compatible 客户端。 ## 1. 适用范围 推荐环境: ```text 系统 Ubuntu 22.04 x86_64 或兼容发行版 显卡 K100 / gfx926 驱动 已安装 K100 驱动,hy-smi 可以正常看到显卡 磁盘 建议至少预留 40 GB 给运行环境,模型权重另算 权限 需要 sudo 解压到 /opt 和 /data ``` 运行环境包会安装到这些通用路径: ```text /opt/dtk-26.04 DTK/HIP 运行时 /opt/dtk 指向 /opt/dtk-26.04 的符号链接 /opt/k100-vllm Python 环境、PyTorch/vLLM 源树、脚本、教程 /data/models 默认模型目录 /data/k100-cache 默认缓存目录 ``` 包内不包含模型权重。模型权重需要按各模型 license 自行下载。 ## 2. 一条命令解包 如果系统已经有 `zstd`: ```bash sudo tar --zstd -xpf k100-vllm-gfx926-full-runtime-20260621.tar.zst -C / ``` 如果系统没有 `zstd`,可以用一条 shell 命令先安装再解包: ```bash sudo apt-get update && sudo apt-get install -y zstd && sudo tar --zstd -xpf k100-vllm-gfx926-full-runtime-20260621.tar.zst -C / ``` 解包后先做基础检查: ```bash source /opt/k100-vllm/env.sh bash /opt/k100-vllm/check_runtime.sh ``` 正常情况下会看到: ```text hy-smi 能看到 K100 hipcc 能输出 DTK/HIP 版本 torch 可以 import vllm 可以 import triton 可以 import torch.cuda.is_available() 为 True device_count 大于 0 ``` ## 3. 当前运行栈版本 该运行环境固定了一组已经在 K100/gfx926 上验证过的组合: ```text DTK/HIP 26.04 Python 3.10 PyTorch 2.9.1a0+gitd38164a,K100/gfx926 改造构建 vLLM 0.21.1.dev0+gad7125a43.d20260522.rocm633,K100/gfx926 改造构建 Triton 3.6.0+git7c56a5e4.k100gfx926 Transformers 5.5.4 FastAPI 0.135.3 Uvicorn 0.44.0 FunASR 1.3.1 ``` 实际版本以 `bash /opt/k100-vllm/check_runtime.sh` 输出为准。 ## 4. 不使用厂商 demo 的原理 厂商 demo 通常把模型、入口、参数、服务协议和部分算子路径封装在固定示例中,能快速演示,但不利于运行更多 Hugging Face 模型,也不利于业务侧按 OpenAI API、vLLM 参数和多模型服务方式接入。 本路线采用的是: 1. 使用 DTK/HIP 作为底层运行时。 2. 使用 PyTorch 作为通用张量和模型执行框架。 3. 使用改造后的 vLLM 作为 OpenAI-compatible 推理服务。 4. 对 gfx926/K100 缺失或不稳定的 ROCm/Triton/CUDA 生态路径增加识别、fallback 或 HIP/C++ kernel。 5. 模型仍然按标准 Hugging Face 目录组织,不绑定 demo 内置模型。 换句话说,启动模型时不调用厂商 demo,而是直接调用: ```bash python -m vllm.entrypoints.openai.api_server ``` 包内的 `/opt/k100-vllm/run_openai_server.sh` 只是把常用环境变量和参数整理成脚本。 ## 5. 重新编译和改造过的内容 核心重编译内容: ```text PyTorch K100/gfx926 构建 vLLM C++/HIP 扩展 vllm._C vllm._rocm_C vllm._moe_C Triton K100/gfx926 Python 包 ``` 主要改造方向: ```text vLLM ROCm 平台识别和 gfx926 selector attention / paged prefill / decode fallback Qwen/Qwen3/Qwen3.6 相关 RoPE、MRoPE、GDN、linear attention 路线 small batch decode / skinny GEMM 兼容 AWQ/GPTQ/bitsandbytes/flash-attn/xformers import 兼容层 采样、KV cache、spec decode 的稳定 fallback ``` 包内还保留了 AITER/CK Tile 相关可选源码快照,位置: ```text /opt/k100-vllm/optional-src/aiter ``` 默认不启用 AITER fused MoE,因为不同 DTK/驱动/模型组合下需要单独验证。需要实验时再基于该源码编译,不建议作为默认生产路径直接打开。 ## 6. 下载模型 默认模型目录是: ```bash /data/models ``` 可以直接使用 Hugging Face: ```bash source /opt/k100-vllm/env.sh hf download Qwen/Qwen3-0.6B --local-dir /data/models/Qwen3-0.6B ``` 如果网络环境需要镜像: ```bash export HF_ENDPOINT=https://hf-mirror.com hf download Qwen/Qwen3-0.6B --local-dir /data/models/Qwen3-0.6B ``` 也可以把已有模型目录复制到 `/data/models/`。目录里应包含 `config.json`、tokenizer 文件、权重文件等标准 Hugging Face 内容。 ## 7. 启动 vLLM OpenAI API server 单卡启动: ```bash source /opt/k100-vllm/env.sh export HIP_VISIBLE_DEVICES=0 export K100_MODEL=/data/models/Qwen3-0.6B export SERVED_MODEL_NAME=Qwen3-0.6B export PORT=8000 export MAX_MODEL_LEN=32768 export MAX_NUM_SEQS=8 export MAX_NUM_BATCHED_TOKENS=16384 bash /opt/k100-vllm/run_qwen_tp1.sh ``` 同 CPU 下双卡 TP2: ```bash source /opt/k100-vllm/env.sh export HIP_VISIBLE_DEVICES=0,1 export K100_MODEL=/data/models/Qwen3-8B export SERVED_MODEL_NAME=Qwen3-8B export PORT=8000 export MAX_MODEL_LEN=65536 export MAX_NUM_SEQS=8 export MAX_NUM_BATCHED_TOKENS=32768 bash /opt/k100-vllm/run_qwen_tp2.sh ``` 四卡 TP4: ```bash source /opt/k100-vllm/env.sh export HIP_VISIBLE_DEVICES=0,1,2,3 export K100_MODEL=/data/models/Qwen3-14B export SERVED_MODEL_NAME=Qwen3-14B export PORT=8000 export MAX_MODEL_LEN=65536 export MAX_NUM_SEQS=8 export MAX_NUM_BATCHED_TOKENS=32768 bash /opt/k100-vllm/run_qwen_tp4.sh ``` 通用脚本参数说明: ```text K100_MODEL 模型目录 SERVED_MODEL_NAME 对外暴露的模型名 HIP_VISIBLE_DEVICES 使用哪些 K100 TP 张量并行数量,run_qwen_tp1/2/4 会自动设置 MAX_MODEL_LEN 最大上下文长度 MAX_NUM_SEQS 最大并发序列数 MAX_NUM_BATCHED_TOKENS 单批最大 token 数 GPU_MEMORY_UTILIZATION vLLM 显存利用率,默认 0.90 EXTRA_ARGS 追加给 vLLM 的参数 ``` 检查服务: ```bash curl http://127.0.0.1:8000/v1/models ``` 发起一次 chat completions: ```bash curl http://127.0.0.1:8000/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{ "model": "Qwen3-0.6B", "messages": [{"role": "user", "content": "用一句话介绍 K100 原生 vLLM 路线。"}], "max_tokens": 128, "temperature": 0.2 }' ``` ## 8. 已测试模型类型 下面是已做过 runtime smoke 或服务 bakeoff 的模型类型。详细表格见: ```text /opt/k100-vllm/public-guide/docs/tested_models.md ``` 已完成 smoke 的代表模型: ```text Qwen/Qwen3-0.6B Qwen/Qwen2.5-0.5B-Instruct HuggingFaceTB/SmolLM2-135M-Instruct TinyLlama/TinyLlama-1.1B-Chat-v1.0 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B facebook/opt-125m BAAI/bge-small-zh-v1.5 BAAI/bge-small-en-v1.5 sentence-transformers/all-MiniLM-L6-v2 BAAI/bge-reranker-base dslim/bert-base-NER Helsinki-NLP/opus-mt-en-zh google/vit-base-patch16-224 microsoft/resnet-50 facebook/detr-resnet-50 nvidia/segformer-b0-finetuned-ade-512-512 depth-anything/Depth-Anything-V2-Small-hf Salesforce/blip-image-captioning-base HuggingFaceTB/SmolVLM-256M-Instruct openai/whisper-tiny MIT/ast-finetuned-audioset-10-10-0.4593 facebook/mms-tts-eng segmind/tiny-sd TheBloke/TinyLlama-1.1B-Chat-v1.0-AWQ TheBloke/TinyLlama-1.1B-Chat-v1.0-GPTQ unsloth/Qwen3-0.6B-bnb-4bit FunAudioLLM/SenseVoiceSmall ``` 语音服务 bakeoff 中验证过: ```text Qwen3-ASR-1.7B zai-org/GLM-ASR-Nano-2512 VibeVoice-ASR-HF FunAudioLLM/Fun-ASR-Nano-2512 mistralai/Voxtral-Mini-4B-Realtime-2602 CosyVoice2-0.5B ``` Qwen3.6/GDN/MTP 路线验证过可加载和测试,但长上下文、TP4 和高并发性能仍强依赖 PCIe 拓扑、功耗策略、kernel selector 和模型大小。建议先用 TP1/TP2 确认质量,再逐步扩大上下文和并发。 ## 9. 量化和 CUDA 生态兼容边界 本环境包含 AWQ/GPTQ/bitsandbytes/flash-attn/xformers 相关兼容处理,目标是让更多模型能导入、能 smoke、能走 fallback。 需要注意: 1. 这不是 CUDA 原生 bitsandbytes/flash-attn 的完整等价替代。 2. AWQ/GPTQ/bnb 4-bit 已做小模型 smoke,但大模型和高性能路径要逐模型验证。 3. flash-attn 类 import 能兼容不代表一定会走高性能 native flash-attn kernel。 4. 需要追求极限吞吐时,应优先用 vLLM 已验证的 ROCm/HIP 路线和稳定 fallback,再逐个打开实验 kernel。 ## 10. 常见问题 ### hy-smi 看不到卡 先处理驱动和 PCIe 识别问题。运行环境包不包含驱动,也不会替代驱动安装。 ```bash hy-smi lspci | grep -i -E 'display|vga|hygon|k100' ``` ### import torch 失败 确认已经 source 环境: ```bash source /opt/k100-vllm/env.sh which python python -c "import torch; print(torch.__version__)" ``` `which python` 应指向: ```text /opt/k100-vllm/venv/bin/python ``` ### vLLM 启动显存不够 降低这些参数: ```bash export MAX_MODEL_LEN=32768 export MAX_NUM_SEQS=4 export MAX_NUM_BATCHED_TOKENS=8192 export GPU_MEMORY_UTILIZATION=0.85 ``` ### TP4 比 TP2 慢 K100 多卡性能强依赖 PCIe 拓扑。跨 CPU root complex 的 TP4 可能让通信开销压过计算收益。推荐顺序: ```text 先测 TP1 再测同 CPU 下 TP2 最后再测 TP4 ``` 如果目标是吞吐而不是单请求延迟,也可以考虑多个 TP1/TP2 服务副本加业务侧调度,但这属于服务架构选择,不是 vLLM 单进程参数。 ### 长上下文启动失败 先从小上下文开始: ```text 8k -> 32k -> 64k -> 128k -> 256k ``` 每一步确认能加载、能出字、质量正常,再增加并发。 ## 11. 建议的验证顺序 ```bash source /opt/k100-vllm/env.sh bash /opt/k100-vllm/check_runtime.sh ``` 然后: 1. 下载或复制一个小模型到 `/data/models`。 2. 用 TP1 启动。 3. `curl /v1/models`。 4. 做一次 `chat/completions`。 5. 增大上下文。 6. 增加并发。 7. 再切换 TP2/TP4。 8. 最后再测试量化、多模态、ASR/TTS 或业务模型。 ## 12. 包内文档 ```text /opt/k100-vllm/POST_EXTRACT_README.md /opt/k100-vllm/public-guide/README.md /opt/k100-vllm/public-guide/docs/tested_models.md /opt/k100-vllm/public-guide/docs/rebuilt_components.md /opt/k100-vllm/MANIFEST.json ``` 推荐先看 `POST_EXTRACT_README.md` 做快速启动,再看 `public-guide/README.md` 理解完整路线。
全部评论(6)
只看楼主
J
jackhe
8楼
使用Kylin V10 SP3 2403系统,已安装了6.3.30-V1.4.1a驱动,执行了:
tar --zstd -xpf k100-vllm-gfx926-full-runtime-20260621.tar.zst -C /
source /opt/k100-vllm/env.sh
bash /opt/k100-vllm/check_runtime.sh
报import torch失败,请问这是什么问题?谢谢! @muyi_muyi @muyi @muyixi

attachmentId-image.png

8/1
J
jackhe
7楼
群过期了,能否重新发一个
8/1
_
_mnci86ypn2gy
6楼
群过期了,能否重新发一个
7/31
S
sakura
5楼
群过期了,能否新发一个
7/22
M
muyi_muyi
楼主
4楼
attachmentId-image.png
7/14
小
小罗
3楼
群过期了,能否新发一个
7/10
L
L1Rrry
2楼
群过期了,能否新发一个
6/30
M
muyi_muyi
回复 @L1Rrry
已更新
7/1
M
muyi_muyi
楼主
1楼
通过网盘分享的文件:k100

链接: https://pan.baidu.com/s/1fz_5ohXh1ckqSUbPax-JBA?pwd=1234 提取码: 1234 

--来自百度网盘超级会员v5的分享

6/21
没有更多内容了
--
楼主
Level.2
0 帖子
楼主热帖
暂无数据