winml sys¶
Inspect your machine — devices, EPs, and runtime versions at a glance.
When to use this¶
Run winml sys before starting any export or build workflow to confirm that the
required ML libraries are installed and that the target hardware is visible. It is
also the first command to run when diagnosing an unexpected export failure.
Synopsis¶
Flags¶
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--format |
-f |
text | json | compact |
text |
Output format. text renders rich tables, json emits machine-readable JSON, compact prints a single-line summary. |
--list-device |
— | flag | false |
List available compute devices (NPU, GPU, CPU) in priority order instead of showing the full system report. |
--list-ep |
— | flag | false |
List available ONNX Runtime execution providers instead of showing the full system report. Can be combined with --list-device. |
--verbose |
-v |
flag | false |
Surface additional diagnostic sections: backend availability and Export Readiness. |
--help |
-h |
flag | — | Show help and exit. |
winml systakes no--model,--device,--ep,--task, or--precisionarguments. It describes the host environment, not a specific model.
How it works¶
winml sys queries Python's platform and importlib.metadata modules to report
library versions, then probes PyTorch for CUDA availability and GPU device names.
Backend availability checks use the installed runtime environment, while device
enumeration queries hardware directly in NPU > GPU > CPU priority order, and EP
enumeration merges the WinML EP registry with ONNX Runtime's
get_available_providers(). When
--format json is used the full report — including devices and EPs — is emitted as
a single JSON object, making it easy to capture in CI pipelines.
Examples¶
+------------------------------------+
| winml-cli System Information |
+------------------------------------+
Environment
Python Version 3.11.9
Python Executable C:\...\python.exe
OS Windows 11
Machine AMD64
ML Libraries
Library Version Status
torch 2.4.0 OK
transformers 4.44.0 OK
onnx 1.16.1 OK
...
Available Devices (priority order)
#1 NPU Qualcomm(R) Hexagon NPU
#2 GPU Qualcomm(R) Adreno GPU
#3 CPU Snapdragon(R) X Elite
Available Execution Providers
QNNExecutionProvider -> NPU/GPU
DmlExecutionProvider -> GPU
CPUExecutionProvider -> CPU
# Machine-readable JSON — pipe to jq or save for later comparison
$ winml sys --format json > env.json
Common pitfalls¶
--list-deviceand--list-epsuppress the full report. When either flag is present, only the requested section is printed. Omit both flags to see the complete system report.--format compactomits device and EP tables. The compact format is designed for single-line log entries and does not include device or EP details. Usetextorjsonwhen you need the full picture.- CUDA shown as unavailable on a machine with a GPU. PyTorch must be installed
with CUDA support (
torch+cuXXX). A CPU-only torch wheel will always reportcuda_available: false.
See also¶
- ONNX & Execution Providers — background on EPs and
how
--device/--epflags interact - inspect.md — inspect a specific HuggingFace model's compatibility
- catalog.md — browse the curated catalog of validated models
- How winml-cli Works — end-to-end pipeline overview