[winml perf] Build output directory fails architecture resolution
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 65/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- docker, python, pytorch
- Domain
- cli, performance, tooling
Research direction
Look at the perf command's directory input handling in the winml-cli source, likely in a module like cli/perf.py or similar. The error message suggests a failure to infer model_type from a config file in the build output directory. Start by reproducing the issue locally, then trace how the directory is scanned for model.onnx and its associated config. Check what metadata is expected versus what is present after a build. Running the existing tests for the perf command will show the expected behavior.
Written by the indexing model from the issue text.
Description
Summary
perf rejects the directory produced by a successful build
Priority: P1, confirmed by the release driver on 2026-09-23.
Bugbash reference: 2026-09-22 / BUG-003.
Status: Observed in the first test round; no fix or post-fix regression is recorded. This issue is based on retained test evidence, not a new test run.
Environment
- Test date: 2026-09-22; findings triaged on 2026-09-23.
- CLI: winml-cli 0.4.0, installed from a local wheel. The exact source commit/build provenance is not recorded in the test evidence.
- Hardware: Snapdragon X Elite X1E80100, Qualcomm Hexagon NPU.
- OS: Windows 11 26H1, build 28000.2956, ARM64.
- Python: 3.11.15, workspace virtual environment.
- EP: QNNExecutionProvider from WinML Catalog, package 2.2480.49.0.
- ONNX Runtime: 1.27.1.202607110137, Windows ML distribution.
- ONNX: 1.18.0; PyTorch: 2.14.0; Transformers: 4.57.6.
- Model: catalog microsoft/resnet-50, image-classification, pixel_values FP32 [1, 3, 224, 224].
- Quantization, where applicable: w8a16, uint8 weights / uint16 activations, 10 calibration samples.
Reproduction
Run in PowerShell with winml-cli 0.4.0 installed. Choose previously unused output paths.
$buildOutput = '.\repro-build-directory'
uv run winml build -m microsoft/resnet-50 --ep qnn --device npu --compile -o "$buildOutput"
uv run winml perf -m "$buildOutput" --ep qnn --device npu --warmup 1 --iterations 5 -o '.\repro-directory-perf.json'
The catalog build succeeds and creates model.onnx plus its compiled external context before the perf directory-input failure.
Expected result
The documented build-output-directory input resolves the generated model.onnx.
Actual result
perf exits with code 1:
Cannot resolve a concrete architecture from a model_type-less generic config.
The same build's model.onnx succeeds when passed directly, so this is an artifact-discovery/directory-input failure rather than evidence that the built model cannot execute.
Workaround
Pass the ONNX file instead of its parent directory:
uv run winml perf -m "$buildOutput\model.onnx" --ep qnn --device npu --warmup 1 --iterations 5 -o '.\repro-file-perf.json'
This direct-file path was verified successfully in the bugbash.
Scope and evidence
perf help advertises support for a build output directory. The observed failure breaks the documented build-to-perf directory handoff. This report does not establish whether other architectures or EPs are affected.
The following evidence is retained locally by the reporter; these filenames are an index, not uploaded attachments:
perf-build-directory.stderr.logperf-build-model.json
- Dominant language
- Python
- Stars
- 40
- Forks
- 11
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 59
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/winml-cli
-
bug P1
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
bug P1 triaged
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
P2 refactor triaged
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
bug P1
Difficulty 4/5 3-5 days Newbie friendliness 45/100
-
bug P1
Difficulty 4/5 3-5 days Newbie friendliness 45/100
All issues in microsoft/winml-cli
Similar issues
-
agent-ready documentation needs-triage
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" Open
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
instance instance add
Difficulty 1/5 Under an hour Newbie friendliness 72/100
searxng/searx-instances#939 · 1 comment ·
-
area-deployment area-integrations triage:bot-seen
Difficulty 2/5 Half a day Newbie friendliness 86/100