Last tested: July 2026. A community PR for native Windows support was submitted but has not been merged into a stable release. Until then, WSL2 + Docker remains the recommended path.
Prerequisites
- Windows 11 (22H2 or later) with WSL2 enabled
- 1 or more NVIDIA GPUs with driver version ≥535
- Docker Desktop for Windows with the WSL2 backend enabled
- At least 16 GB of system RAM (32 GB recommended for models ≥13B)
Step 1: install WSL2 with GPU support
Open PowerShell as Administrator and install WSL2:nvidia-smi reports no devices, update your Windows NVIDIA driver to ≥535 and restart WSL:
Step 2: install Docker with NVIDIA Container Toolkit
- Install Docker Desktop on Windows.
- Open Docker Desktop settings and confirm Use the WSL 2 based engine is checked.
- Under Resources → WSL Integration, enable your Ubuntu distribution.
Step 3: launch vLLM with Docker Compose
Create adocker-compose.yml file:
docker-compose.yml
Uvicorn running on http://0.0.0.0:8000, the server is ready.
Step 4: verify it works
Send a test request from inside WSL2:choices array containing the model’s reply.
Multi-GPU configuration (MCDM)
WSL2 supports multi-GPU tensor parallelism through the Microsoft Compute Driver Model (MCDM). This replaces the older TCC mode and requires NVIDIA driver ≥535.Switch to MCDM mode
On the Windows host, open an Administrator command prompt:0 with the GPU index), then reboot. After reboot, confirm all GPUs appear in WSL2:
Launch with tensor parallelism
Update yourdocker-compose.yml command to use multiple GPUs:
Connect from the Windows host
WSL2 runs in a lightweight VM with its own network. Docker’s port mapping forwardslocalhost:8000 from the WSL2 VM to the Windows host automatically, so you can reach vLLM from Windows applications:
localhost forwarding doesn’t work, find the WSL2 IP address and use it directly:
Expose your endpoint with Tokios
Running vLLM on WSL2 gives you local inference, but it’s only reachable from the same machine. Install the Tokios connector inside WSL2 alongside your vLLM container to expose your model through a secure tunnel — accessible from any device, without port forwarding or firewall rules:https://api.tokios.com/v1 from anywhere.
See Connector install for the full walkthrough.
Troubleshooting
GPU not detected in WSL2
GPU not detected in WSL2
Your NVIDIA driver is too old or WSL2 kernel is outdated. Update the Windows NVIDIA driver to ≥535, then run
wsl --update from PowerShell and restart WSL with wsl --shutdown.Out of memory on multi-GPU
Out of memory on multi-GPU
vLLM reserves more VRAM for CUDA graphs than Ollama. If a 32B model OOMs on 2x RTX 3090, lower
--gpu-memory-utilization to 0.85 or reduce --max-model-len.Docker container exits immediately
Docker container exits immediately
Check that Docker Desktop’s WSL2 integration is enabled for your distribution. Run
docker compose logs vllm to see the exit reason — it’s usually a missing GPU driver or an incorrect model path.MCDM not enabled
MCDM not enabled
If
nvidia-smi inside WSL2 only shows 1 GPU on a multi-GPU system, MCDM may not be active. Run nvidia-smi -g <GPU_ID> -dm 0 on the Windows host for each GPU, then reboot.Native Windows support status
A community fork by SystemPanic adds native Windows support to vLLM without WSL2 or Docker. The PR was submitted in early 2025 but has not been merged into a stable release. Track progress on the vLLM GitHub repository. Until native support ships in a stable release, WSL2 + Docker is the production path for Windows.Next steps
vLLM remote access
Expose your vLLM server to any device with Tokios — no port forwarding required.
Model fit
Find which models fit your GPU’s VRAM and what throughput to expect.