vLLM 服务在 WSL2 上失败 — 多模式编码器初始化期间 EngineCore 发生内存泄露
环境
操作系统: Windows 10 + WSL2 (Ubuntu 24.04)
GPU: NVIDIA RTX 3090 (24 GB, sm_86)
驱动: 596.x (WSL2)
vLLM: 0.26.0
Python: 3.10
模型: zai-org/GLM-OCR (BF16, 2.47 GB)
步骤VLLM_WSL2_ENABLE_PIN_MEMORY=1 vllm serve zai-org/GLM-OCR --host 0.0.0.0 --port 8080
观察到的行为
在编码器缓存初始化期间出现引擎核心故障时崩溃。在尝试中出现多种崩溃模式:
- --enforce-eager OFF: 在 CUDA 图形捕获时崩溃 → flashinfer JIT 需要 nvcc (不在 WSL2 中)
- --enforce-eager ON: 模型加载,权重加载,然后在热身期间崩溃 — Triton M-RoPE 在 glm4.py 中出现错误:139
- 所有路径都在 RuntimeError: 引擎核心初始化失败时结束。失败的核心进程: {}
什么可以工作
原生 Linux: 同样的命令可以工作(根据 vLLM 问题 #29482)
HuggingFace transformers(纯 Python,无 vLLM): 在 WSL2 上可以工作 — 模型加载, CogViT 正确处理图像
内容来源: zai-org/GLM-OCR