Skip to content

[winml perf] Build output directory fails architecture resolution #1449

Open

Description

@fangyangci

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.log
  • perf-build-model.json

Activity

  1. added
    bugSomething isn't working
    P1High — major feature broken or significant UX impact
    on Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High — major feature broken or significant UX impactbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions