Skip to main content

Vllm

单机多卡

  1. 配置 vllm 参数(比如 tensor_parallel_size: 8)
  2. 执行方式选择单机(single node)
  3. 配置 worker 资源,单机最大 8 卡
图片

多机多卡

配置 leader 和 worker 的资源,资源最好保持一致(注:leader 数即为副本数)。 Vllm 参数:
  • tensor_parallel_size:8
  • pipeline-parallel-size:2(每个副本 worker + leader 数量)
  • distributed-executor-backend:ray
图片

PD 分离

注:多机多卡的 kv cache 走 p2p 共享的形式。 需要配置 prefill、decode、server 的资源,一般建议 server 为 cpu,prefill、decode 为 8 卡,开启 rdma。 vllm 参数:
  • tensor_parallel_size:8(prefill tp 8,decode tp 8)

启动加速

使用 flux vllm 镜像

flux vllm 是平台优化后的 vllm,针对 gpfs 上的模型提供了非常好的 load 加速效果。其他的版本或者地区的需求,联系一下 oncall 同学提供支持。 在 Deepseek V3.2 上:

Cuda Graph 编译加速

使用 gpfs 缓存编译结果:

Deepgemm 编译加速

通过配置 Deepgemm 预编译目录,在服务第一次启动后加速之后每次的实例启动。 使用方式:服务配置中挂载一个 gpfs volume,然后配置 DG_JIT_CACHE_DIR 环境变量指向 gpfs 中的某个目录,比如挂载到 /mnt/gpfs,DG_JIT_CACHE_DIR 配置为 /mnt/gpfs/服务名/deepgemm/。

Dynamo

Vllm Backend 多机多卡

配置同 vllm 多机多卡推理。 图片

Sglang

注:默认端口 30000

PD 分离

引擎选择 sglang,执行方式选择 pd-disaggregated。 图片 引擎参数为全局参数,会给 pd 都加上,如果要分别设置需要去角色里修改 args。 Size:当 size > 1 时就是分布式的 prefill 或者 decode,比如 decode size 2,此时 decode 每个为 2 个节点。 Replicas:副本数,prefill 或者 decode 的个数,比如 decode replica 2 size 2,此时 decode 一共有 2 * 2 = 4 个节点。 探活等其他配置和其他框架一致。 示例:deepseek v3.1 1p2d 分布式推理 Decode 参数:
Prefill 参数:
图片

启动加速

DeepGemm 加速

Sglang 推理服务启动时在环境变量中添加额外环境变量 SGLANG_ENABLE_JIT_DEEPGEMM=1,服务启动时会自行进行编译(预估耗时十几分钟)。 在启用 DeepGemm 的基础上,可以指定两个额外环境变量 SGLANG_DG_CACHE_DIRSGLANG_JIT_DEEPGEMM_PRECOMPILE 来使用编译缓存,跳过编译过程,其中 SGLANG_DG_CACHE_DIR 是预编译结果的存放路径。需要使用分布式存储,比如 GPFS 去保存第一次启动的编译结果。 PD 分离模式下,P 和 D 如果参数不一样,需要指定 Cache 目录到不同的路径下,比如 prefill 指定 SGLANG_DG_CACHE_DIR=/mnt/model/deepgemm/prefill/tp8,decode 指定 SGLANG_DG_CACHE_DIR=/mnt/model/deepgemm/decode/tp8 ENV 参数:
测试结果:Kimi K2 的启动时间从 26 分钟减少至 10 分钟左右。

Custom(自定义)

如果你想自定义角色的镜像、启动命令,选择这个引擎模式。
  1. 引擎类型选择自定义
    1. 选择执行类型:单机为单节点多副本,分布式为多节点多副本。分布式可以获取的环境变量:
    2. 填写角色镜像和启动命令
图片 其他配置和其他框架一致。