惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
I
InfoQ
H
Help Net Security
GbyAI
GbyAI
博客园 - 叶小钗
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
Y
Y Combinator Blog
L
LangChain Blog
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
博客园 - Franky
D
Docker
Jina AI
Jina AI
罗磊的独立博客

钟意博客

国家统计局数据查询 MCP 照见·硅·肆 涌现之前 照见·硅·叁 换行重启 照见·硅·贰 钢筋水泥 照见·硅·壹 你好世界 照见·硅·零 序言 大语言模型的不确定性 科艺知识库 ARM64 胶东半岛观察 博客多平台负载均衡方案 浅谈RAG Web技术构建桌面应用方案 Spring WebSocket 错误 SpringBoot WebSocket 代理模式、客户端模式 Spring AOP 调用自身失效 window 端口占用但是查不到 Coze同插件不同工具之间代码复用 Pachelbel's Greatest Hit: The Ultimate Canon - 纪念帕海贝尔:终极卡农 圣诞快乐,劳伦斯先生 Merry Christmas Mr. Lawrence
海光 K100 DCU VLLM 推理环境构建
钟意 · 2025-08-30 · via 钟意博客

系统环境

  • 系统: Kylin OS
  • 芯片: 128H, Hygon C86 7390 2S * 64
  • 显存: 128G, Hygon K100 DCU 64G * 2
  • 内存: 500G

基础驱动

PS: 详情参考 DTK环境安装与部署

  • DTK: 最新DTK列表
    1. 解压: tar -xzvf DTK*.tar.gz
    2. 载入环境: cd DTK* && source env.sh
    3. 测试: hipcc --version
  • 驱动: 最新驱动列表
    • 执行: ./rock*
    • 测试: hy-smi

部署资源

模型文件

可以从任意平台下载 vllm 所需要的离线模型文件,以下举例 HF、魔搭下载。

强烈建议像示例一样小模型测试,启动快看报错也快。

  • HuggingFace

PS: 也可以选择Git命令下载: git clone https://hf-mirror.com/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

HF下载模型
1
2
3
4
5
6
7
8
9
10
11
# 基于PY环境安装HF脚手架
pip install huggingface-hub

# 镜像加速
$HF_ENDPOINT = "https://hf-mirror.com"

# 下载完整模型
huggingface-cli download --repo-type model \
deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B \
--local-dir ./DeepSeek-R1-Distill-Qwen-1.5B \
--local-dir-use-symlinks False
  • ModelScope(国内)

PS: 也可以选择Git命令下载: git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git

魔搭下载模型
1
2
pip install modelscope
modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local_dir ./DeepSeek-R1-Distill-Qwen-1.5B

环境镜像

与其它卡有所不同,因缺少 CDNA/GCN 架构的优化内核、未针对 Hygon 芯片做算子优化等原因,国产加速卡需要使用定制的镜像。

镜像按照自己的DCU驱动版本选择: 光源定制镜像

离线内网环境请先准备好镜像包导入。

部署服务

参数详情:

  • HIP_VISIBLE_DEVICES: 使用的显卡槽
  • HSA_OVERRIDE_GFX_VERSION: 匹配K100架构
  • --tensor-parallel-size: 使用显卡数量
  • --gpu-memory-utilization: 显卡使用率

编排文件: 请自行修改以下内容

  • environment里显卡数、显卡槽
  • command里model路径
  • volumes里映射的模型路径实际路径
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: "3.9"

services:
vllm:
image: image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.4.1-ubuntu22.04-dtk25.04.1-py3.10
container_name: vllm-test
environment:
- HIP_VISIBLE_DEVICES=0,1
- HSA_OVERRIDE_GFX_VERSION=10.3.0
command: >
python3 -m vllm.entrypoints.openai.api_server
--model /workspace/models/DeepSeek-R1-Distill-Qwen-1.5B
--tensor-parallel-size 2
--gpu-memory-utilization 0.9
--served-model-name ds-r1-1.5b
--dtype float16
--trust-remote-code
--enforce-eager
--host 0.0.0.0
--port 8000
network_mode: host
ipc: host
devices:
- "/dev/kfd:/dev/kfd"
- "/dev/dri:/dev/dri"
volumes:
- /opt/hyhal:/opt/hyhal:ro
- /workspace/service/vllm/models:/workspace/models:ro
cap_add:
- SYS_PTRACE
security_opt:
- seccomp=unconfined
group_add:
- video
- render
restart: unless-stopped

测试命令

一些打印测试的命令,成功部署可以忽略。

  • 测试服务是否正常运行

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    curl -X POST "http://127.0.0.1:8000/v1/completions" \
    -H "Content-Type: application/json" \
    -d '{
    "model": "ds-r1-1.5b",
    "prompt": "Compute the Fourier transform of the constant function f(t) = 1. What should the correct answer be?",
    "max_tokens": 50,
    "temperature": 0.7
    }'

    # ====理论输出====
    # answer is 2πδ(ω)
  • 查看容器对显卡的识别

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    python3 - <<'PY'
    import torch
    print("PyTorch 版本:", torch.__version__)
    print("是否可见 HIP/GPU:", torch.cuda.is_available())
    print("GPU 数量:", torch.cuda.device_count())
    for i in range(torch.cuda.device_count()):
    print(f"设备 {i} 名称:", torch.cuda.get_device_name(i))
    PY

    # ====理论输出====
    # PyTorch 版本: 2.5.1
    # 是否可见 HIP/GPU: True
    # GPU 数量: 2
    # 设备 0 名称: K100
    # 设备 1 名称: K100