一文搞定海光DCU模型部署与可视化监控:GLM-5.1部署到性能可视化全流程

本文面向AI算法工程师、运维人员、国产算力适配从业者,全程可复现,从0到1走通海光BW1100 DCU上大模型部署、推理、性能监控的完整链路,避免踩坑。
在这里插入图片描述

前置说明

本次实操用到的核心组件如下:

组件 用途 要求
海光BW1100 DCU 国产算力硬件 至少8卡(适配GLM-5.1-FP8最低要求)、驱动版本≥6.2.26
GLM-5.1-FP8 智谱AI最新旗舰大模型 仅支持BW1100/BW1101系列DCU
vLLM/SGLang 推理框架 我们提供预适配DTK26.04的官方镜像,无需手动编译
dcu-exporter+Prometheus+Grafana 监控栈 实现DCU硬件指标+推理服务业务指标的全链路可视化

一、模型与环境准备

1.1 本次部署的模型介绍:GLM-5.1

GLM-5.1是智谱AI面向智能体场景的下一代旗舰模型,相比前代能力提升非常明显:

  • 代码能力登顶SWE-Bench Pro,NL2Repo(代码仓库生成)、Terminal-Bench 2.0指标远超GLM-5
  • 独有的长会话迭代能力:支持数百轮交互、数千次工具调用,运行时间越长输出效果越好,不会像传统模型一样 early stop 能力枯竭
  • FP8量化版本大小754B,刚好适配海光BW1100的FP8硬件加速能力,性价比拉满

GLM-5.1 Benchmark

1.2 环境依赖与镜像拉取

我们已经预打包了适配DTK26.04的推理框架镜像,无需手动编译依赖,直接拉取即可:

推理框架 镜像地址
vLLM 0.15.1 harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.15.1–ubuntu22.04-dtk26.04-py3.10-20260409
SGLang 0.5.10 harbor.sourcefind.cn:5443/dcu/admin/base/custom:sglang-0.5.10-glm5-0416

更多DCU适配镜像可前往光源平台下载

启动容器命令(以vLLM为例,SGLang仅需替换镜像地址即可):

docker run -it \
    --shm-size 256g \
    --network=host \
    --name glm-5.1 \
    --privileged \
    --device=/dev/kfd \
    --device=/dev/dri \
    --device=/dev/mkfd \
    --group-add video \
    --cap-add=SYS_PTRACE \
    --security-opt seccomp=unconfined \
    -u root \
    -v /opt/hyhal/:/opt/hyhal/:ro \ # DCU驱动目录,必须挂载
    -v /你的本地模型目录/:/容器内模型目录/ \ # 替换为你自己的模型、代码挂载路径
    harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.15.1--ubuntu22.04-dtk26.04-py3.10-20260409 bash

1.3 预训练权重下载

FP8版本仅支持BW1100系列DCU,请勿在其他型号DCU上使用:

模型名称 精度 最低卡数 下载地址
GLM-5.1-FP8 FP8 8卡 ModelScope

二、模型推理部署

2.1 基于vLLM部署

进入容器后先配置DCU优化环境变量(直接复制执行即可,都是官方适配的性能最优参数):

# 清理缓存避免冲突
rm -rf ~/.cache
rm -rf ~/.triton
# 配置8卡可见
export HIP_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
# DCU通信与推理优化参数
export ALLREDUCE_STREAM_WITH_COMPUTE=1
export NCCL_MIN_NCHANNELS=16
export NCCL_MAX_NCHANNELS=16
export Allgather_Base_STREAM_WITH_COMPUTE=1
export SENDRECV_STREAM_WITH_COMPUTE=1
export HIP_KERNEL_EVENT_SYSTENFENCE=1
export VLLM_RPC_TIMEOUT=1800000
export VLLM_USE_PD_SPLIT=1
export VLLM_USE_PIECEWISE=1
export VLLM_REJECT_SAMPLE_OPT=1
export USE_FUSED_RMS_QUANT=0
export USE_FUSED_SILU_MUL_QUANT=1
export VLLM_USE_GLOBAL_CACHE13=1
export VLLM_FUSED_MOE_CHUNK_SIZE=16384
export VLLM_CUSTOM_CACHE=1
export VLLM_USE_OPT_CAT=1
export VLLM_USE_FUSED_FILL_RMS_CAT=1
export VLLM_USE_LIGHTOP_MOE_SUM_MUL_ADD=0
export VLLM_USE_LIGHTOP_RMS_ROPE_CONCAT=0
export VLLM_USE_FLASH_MLA=1
export VLLM_DISABLE_DSA=0
export USE_LIGHTOP_TOPK=1
export USE_LIGHTOP_PER_TOKEN_GROUP_QUANT_FP8=1
export USE_LIGHTOP_CONVERT_REQ_INDEX_TO_GLOBAL_INDEX=1

启动vLLM推理服务:

vllm serve 你的模型本地路径 \
    --gpu-memory-utilization 0.925 \ # 显存利用率上限
    --port 8001 \
    --tensor-parallel-size 8 \ # 8卡并行
    --tool-call-parser glm47 \
    --reasoning-parser glm45 \
    --enable-auto-tool-choice \
    --kv-cache-dtype fp8_ds_mla \ # KV缓存也用FP8,最大化显存利用率
    --served-model-name glm-5.1-fp8 \
    --disable-log-requests \
    --compilation-config '{"pass_config": {"fuse_act_quant": false}}'

启动完成后测试服务是否正常:

curl http://localhost:8001/v1/chat/completions   \
    -H "Content-Type: application/json"  \
    -d '{
        "model": "glm-5.1-fp8",
        "messages": [
          {"role": "system", "content": "You are a helpful assistant."},
          {"role": "user", "content": "Summarize GLM-5 in one sentence."}
        ],
        "max_tokens": 4096,
        "temperature": 0.7,
        "chat_template_kwargs": {"enable_thinking": false}
    }'

常见报错处理:

  1. 出现ImportError: librocm_smi64.so.2报错:机器hyhal驱动版本过低,升级到≥6.2.26即可
  2. 显存不足:确认你是8卡BW1100,且模型是FP8版本

2.2 基于SGLang部署

如果偏好SGLang框架,启动流程类似,先配置环境变量:

export SGLANG_USE_LIGHTOP=1
export HIP_GRAPH_USE_CMD_CACHE=0
export SGLANG_ROCM_USE_AITER_MOE=0

启动SGLang推理服务:

model_path=你的模型本地路径 # FP8模型路径
option="--numa-node 0 0 0 0 1 1 1 1 "
option+=" --disable-radix-cache "
option+=" --chunked-prefill-size 16384"
option+=" --page-size 64 "
option+=" --nsa-prefill-backend flashmla_auto --nsa-decode-backend flashmla_kv "

python3 -m sglang.launch_server --model-path "${model_path}" ${option} \
                                --trust-remote-code \
                                --reasoning-parser glm45 \
                                --tool-call-parser glm47 \
                                --kv-cache-dtype fp8_e4m3 \
                                --dtype bfloat16 \
                                --mem-fraction-static 0.925 \
                                --host 0.0.0.0 \
                                --port 8001 \
                                --tp-size 8 \
                                --context-length 32768 \
                                --served-model-name glm-5.1-fp8
                                --enable-metrics
                                --enable-mfu-metrics 

测试命令和vLLM完全一致,且DCU上推理精度和GPU完全一致,无需担心效果损失,切记加上–enable-metrics 、–enable-mfu-metrics这两个参数。


三、性能监控栈搭建

模型跑起来只是第一步,我们还需要实时监控DCU硬件状态、推理服务的吞吐、延迟等指标,这里我们用官方推荐的dcu-exporter+Prometheus+Grafana栈实现全链路可视化。

3.1 第一步:部署dcu-exporter采集DCU硬件指标

dcu-exporter是海光官方开源的DCU指标采集工具,会自动采集每块DCU的利用率、显存、温度、功耗、显存带宽等指标,暴露为Prometheus格式。

Docker部署命令:

docker run --name dcu-exporter-v2 -d --privileged \
  --device=/dev/kfd \
  --device=/dev/mkfd \
  --device=/dev/dri \
  -v /etc/hostname:/etc/hostname \
  -v /etc/vdev:/etc/vdev \
  -v /opt/hyhal:/opt/hyhal \ # 挂载驱动目录
  -p 16080:16080 \
  -e CONNECT_K8S=false \ # 非K8s环境设为false
  dcu-exporter:latest

验证是否部署成功:访问http://你的DCU机器IP:16080/metrics,可以看到大量DCU相关指标即正常。


3.2 第二步:部署Prometheus采集指标

Prometheus负责定时拉取dcu-exporter和推理服务的指标并存储,先编写配置文件prometheus.yml

global:
  scrape_interval: 15s # 每15秒采集一次
scrape_configs:
  # 采集DCU硬件指标
  - job_name: 'dcu-exporter'
    static_configs:
      - targets: ['你的DCU机器IP:16080']
  # 采集vLLM/SGLang推理服务指标
  - job_name: 'llm-inference'
    static_configs:
      - targets: ['你的DCU机器IP:8001'] # 推理服务端口

启动Prometheus:

docker run -d \
  --name prometheus \
  -p 9090:9090 \
  -v 你的配置文件路径/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus:latest

访问http://你的IP:9090,可以看到Prometheus界面即正常。


3.3 第三步:部署Grafana实现可视化

Grafana负责把Prometheus的指标做成直观的 Dashboard,启动命令:

docker run -d \
  --name grafana \
  -p 3000:3000 \
  grafana/grafana:latest

初始账号密码都是admin

配置步骤:
  1. 登录Grafana后,点击Connections -> Data sources -> Add data source,选择Prometheus,填写地址http://你的Prometheus IP:9090,保存测试通过。
  2. 导入Dashboard:
    • DCU硬件监控面板:搜索海光官方DCU Dashboard ID,或者直接导入官方提供的JSON模板,即可看到每块卡的利用率、显存、温度、功耗等实时指标。
      在这里插入图片描述

    • LLM推理业务监控面板:直接输入公共Dashboard ID 25502导入,即可同时支持vLLM和SGLang的指标展示,覆盖请求量、Token吞吐、延迟分位数、KV缓存命中率、队列长度等核心业务指标,适合压测、运维场景使用。
      在这里插入图片描述

四、效果展示

推理效果
监控面板可以清晰看到:

  • 8卡BW1100的FP8算力可以完美跑满GLM-5.1-FP8,单卡利用率稳定在90%以上
  • 推理吞吐和延迟表现和同级别GPU基本持平,完全满足生产环境使用要求。

五、问题反馈与参考资料

  • 部署问题反馈:光源平台GLM-5.1适配仓库
  • GLM-5.1官方资料:https://github.com/zai-org/GLM-5
  • dcu-exporter官方仓库:https://github.com/HYGON-AI/dcu-dcgm

更多推荐