microsoft / microsoft/WSL

[BUG] WSL2 2.6.3 stable: Blackwell (sm_120) FP8 tensor cores not exposed via dxgkrnl — affects PyTorch diffusion + LLM inference on RTX 5090

Open
#40,333 6 comments 0 reactions 0 assignees View on GitHub
GPU
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

## Summary

WSL2 2.6.3 stable (also affects 2.7.x pre-release per linked threads) does not expose RTX 5090's Blackwell (sm_120) native FP8 tensor cores to GPU compute workloads inside WSL2 distros / Docker containers. FP8 ops fall back to FP16/emulated paths — losing the ~2x speedup the hardware is rated for.

This is a re-file per the auto-close message on #14452 ("If you're still experiencing this issue please re-file it as a new issue").

## Reproduction

- **GPU:** GeForce RTX 5090 32GB (Blackwell, sm_120) — hardware spec lists native FP8 tensor cores
- **Host:** Windows 11 Pro 10.0.26200.8246
- **NVIDIA Driver:** Studio 595.79 (Mar 10, 2026 — latest Studio at time of report)
- **WSL:** 2.6.3.0 stable (latest stable; tested community pre-release 2.7.3 same behavior)
- **Kernel:** 6.6.87.2-1
- **WSLg:** 1.0.71 / DXCore: 10.0.26100.1
- **Docker Desktop:** 29.4.0 (WSL2 backend)
- **CUDA Toolkit (in container):** 13.0
- **Frameworks tested:** PyTorch 2.x, ComfyUI 0.19.x, vLLM 0.20.0

## Observed behavior

1. `torch.cuda.get_device_capability()` returns `(12, 0)` correctly — sm_120 detected ✓
2. `torch.cuda.is_bf16_supported()` returns True — BF16 works ✓
3. CUDA graph capture works post-WSL 2.7.0 (per microsoft/WSL#14452) ✓
4. **FP8 inference paths (vLLM W8A8, ComfyUI fp8_matrix_mult)** silently fall back to FP16 emulation — measured throughput matches FP16 baseline, not the 2x FP8 native expectation
5. vLLM benchmark on Qwen3-14B FP8 W8A8: **44.9 tok/s** (vs ~140 tok/s INT4 AWQ on the same hardware — FP8 is 3x SLOWER, indicating emulation)

## Expected behavior

WSL2 should expose RTX 5090's hardware FP8 tensor cores so frameworks can use them, matching native Linux + Windows native PyTorch FP8 throughput.

## Impact

This affects every Blackwell consumer GPU user trying to run AI workloads inside WSL2 Docker — including:
- LLM serving (vLLM, llama.cpp, TGI) where FP8 vs FP16 is a 2x throughput difference
- Image diffusion (ComfyUI, A1111) where scaled-FP8 model variants would benefit
- Fine-tuning / training where FP8 optimizer states halve memory pressure

The community workaround is to skip FP8 entirely and use INT4 AWQ (LLM) or BF16 (diffusion) — but this leaves significant performance on the table that bare-metal Linux users on the same hardware get for free.

## Related

- vllm-project/vllm#37242 (LLM-side report, open)
- microsoft/WSL#14452 (closed by inactivity bot, not by resolution)
- Affects bare-metal-vs-WSL2 perf parity discussion in https://forums.developer.nvidia.com/t/rtx-5090-not-working-with-pytorch-and-stable-diffusion-sm-120-unsupported/338015

## Question for Microsoft team

Is exposing Blackwell native FP8 tensor cores via dxgkrnl on the WSL roadmap? If yes — what milestone/version? If no — what's the rationale? The community would benefit from clarity here so we can plan around it (bare-metal Linux dual-boot vs waiting).

[WslLogs-2026-04-26_14-02-39.zip](https://github.com/user-attachments/files/27098568/WslLogs-2026-04-26_14-02-39.zip)

Contributor guide

Open the contributing guide

Research direction

Start with the attached WslLogs archive and reproduce the reported behavior using torch.cuda.get_device_capability(), the vLLM W8A8 benchmark, and the listed WSL, driver, and CUDA versions. Compare the FP8 results with the linked WSL#14452 discussion and determine whether dxgkrnl currently exposes the required capability; done would be a confirmed fix or a clear roadmap answer from the WSL team.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, linux, pytorch
Domain
machine-learning, operating-systems, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.