Z100 DCU 上 vLLM CUDA Graph 推理优化实践
我们在海光 Z100 DCU (gfx906) 上对 vLLM 推理框架的 CUDA Graph 功能进行了完整的测试验证。本文记录开启 CUDA Graph + torch.compile 的具体配置、性能数据和关键发现。 测试环境 项目 详情 服务器 scnet GPU 1x 海光 Z100 DCU (gfx906), 16 GiB Python 3.10.12 PyTorch 2.10.0+das.opt1.dtk2604 vLLM 0.18.1+das.3266200.dtk2604 Triton 3.4.0 模型 Qwen3.5-4B (BF16) 两种配置对比 Baseline:enforce_eager=True(禁用 CUDA Graph) compilation_config.mode = CompilationMode.NONE cudagraph_mode = CUDAGraphMode.NONE 启用 custom fusions(norm_quant、act_quant) 模型加载时间:~125s 显存占用:~13.25 GiB CUDA Graph + Compile:enforce_eager=False compilation_config.mode = VLLM_COMPILE(Inductor backend) cudagraph_mode = FULL_AND_PIECEWISE compile_ranges_endpoints: [8192] cudagraph_capture_sizes: [1, 2] 禁用 custom fusions(与 compile 不兼容) 模型加载时间:~172s(编译开销) 显存占用:~14.5 GiB(多出 ~1.3 GiB 用于 Graph 缓冲) 关键:CUDA Graph 模式不要传 –enforce-eager,去掉该参数后 vLLM 自动启用 VLLM_COMPILE + FULL_AND_PIECEWISE CUDA Graph。 ...