microsoft / microsoft/winml-cli
VitisAI EP leaks original-info-signature.txt / original-model-signature.txt into the working directory
@KayMKM is already working on this.
Since Jul 30, 2026.
- Dominant language
- Python
- Stars
- 40
- Forks
- 11
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 50
Description
Summary
Any command that compiles a model through the VitisAI EP (for example winml eval auto-selecting the AMD NPU) leaves two stray files in the process working directory — which is the repository root when commands are run from a checkout:
original-info-signature.txt (32 bytes, MD5 hex)
original-model-signature.txt (32 bytes, MD5 hex)
They appear as untracked files in git status and are not covered by .gitignore.
Where they come from
They are not written by winml-cli — neither filename appears anywhere in this repository. A byte scan of the EP package identifies the writer:
HIT onnxruntime_vitisai_ep.dll at offset 59491832 (needle: "original-model-signature")
C:\Program Files\WindowsApps\
MicrosoftCorporationII.WinML.AMD.NPU.EP.1.8_1.8.72.0_x64__8wekyb3d8bbwe\
ExecutionProvider\onnxruntime_vitisai_ep.dll
The same two filenames are also written — correctly — inside the VitisAI cache directory:
C:\temp\<user>\vaip\.cache\<model-hash>\original-info-signature.txt
C:\temp\<user>\vaip\.cache\<model-hash>\original-model-signature.txt
C:\temp\<user>\vaip\.cache\<model-hash>\vaiml_par_1\original-info-signature.txt
C:\temp\<user>\vaip\.cache\<model-hash>\vaiml_par_1\original-model-signature.txt
So at least one code path inside the EP resolves these paths relative to the current working directory instead of anchoring them to its own cache directory.
Repro
Host: AMD Ryzen AI 9 HX 370 (NPU), VitisAI EP 1.8.72.0, onnxruntime 1.24.5 (windowsml).
cd <repo root>
winml eval -m dslim/bert-base-NER --task token-classification --samples 10
git status --porcelain
?? original-info-signature.txt
?? original-model-signature.txt
Also reproduces through pytest tests/e2e/test_eval_e2e.py -m e2e on an NPU host, since TestEvalPerTask lets the CLI auto-select hardware.
Impact
- Pollutes
git statusin a developer checkout and is easy to commit by accident. - On CI agents the files land in the sources directory.
- Same class of problem as the ORT/EP scratch files that
scripts/e2e_eval/run_eval.py::_clean_stray_cwd_artifactsalready sweeps up (sym_shape_infer_temp.onnx,timing_log.csv, UUID-prefixed.onnx/_ctx.onnxdumps) — that helper does not cover these two names.
Suggested actions
- Report upstream to AMD: the EP should anchor these signature files to its cache directory, never to the caller's working directory.
- Mitigation on our side, until the EP is fixed:
- add both filenames to
_STRAY_CWD_EXACTinscripts/e2e_eval/run_eval.py, and/or - add them to
.gitignore.
- add both filenames to
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.
Assessment
This issue has not been assessed yet.