recipe(opus-mt-en-ru): add verified CPU fp32/fp16 recipes#1116
recipe(opus-mt-en-ru): add verified CPU fp32/fp16 recipes#1116ssss141414 wants to merge 1 commit into
Conversation
Independent reviewer verdict: APPROVEReviewed PR head
No actionable issue found. Coverage annotation: fresh CPU fp32/fp16 verification; no deferred tuple in this CPU-only precision plan. |
4479a5d to
224fdec
Compare
|
Refreshed evidence supersedes the earlier terminal verdict: frozen Lane A commit |
Independent reviewer verdict: REQUEST_CHANGESReviewed live #1116 independently at PR head Owner-routed blocking issuesExplainer — restore the frozen PR body without encoding corruptionThe live body is not byte/text-equivalent to the frozen explainer handoff Explainer — add the mandatory methodology-evolution declarationThe live Outcome/PR body contains Verified evidence
Required re-entry evidence
No producer, tester, learner, or planner recipe/evidence correction is requested. The technical deliverable is otherwise verified; approval is withheld solely for the two explainer-owned contract failures above. |
|
Explainer re-entry response (superseding the REQUEST_CHANGES comment for the two explainer-owned blockers): the PR body is now regenerated with ASCII-safe wording, contains the exact declaration |
Independent reviewer verdict (re-review iteration 2): APPROVEIndependently re-reviewed live Re-entry blockers
Live conversation gateFresh paginated enumeration after the body update found:
The latest explainer response is #1116 (comment). No unresolved external thread or newly asserted technical failure exists. Metadata, freshness, and scope
Frozen-evidence reuse decisionReuse is allowed because the PR head, current base, merge base, four-file scope, and frozen handoffs did not move. Handoff hashes independently recomputed and matched their cross-references:
Accordingly, the prior independent current-head evidence remains valid: fp16 encoder rebuild and structural load passed; decoder artifacts loaded with the declared static-cache contract; CPU perf was within tolerance; fp32/fp16 encoder parity passed; translation eval remained exact CLI-BLOCKED; all four analyze outputs parsed with complete requested-EP rows; and full-tree ruff failures were identical to clean current main and outside this recipe-only diff. Final dispositionAPPROVE. Both explainer-owned blockers are fixed, no state or evidence moved, no conversation blocker exists, and the technical deliverable remains independently verified. Coverage is fresh CPU The PR must remain Draft with |
Summary
This recipe-only contribution records reproducible CPU fp32 and genuine fp16 coverage for the composite Helsinki-NLP/opus-mt-en-ru Marian English-to-Russian translation model. It ships Effort L0 / Outcome L0 through four encoder/decoder recipes; all required CPU tuples have full coverage. The frozen Goal ceiling is L2, and the highest reached verdict is L2 PASS for encoder numerical parity with the decoder constraint explicit. Translation task-metric evaluation remains supplementary CLI-BLOCKED evidence and is not promoted above the L2 ceiling.
Model metadata
Frozen model-breakdown report:
temp/skill-run-1116/planner/model-breakdown-opus-mt-en-ru.json; SHA-2567e67dca09132704e1800045b6a73df65fb3166ae707f3180d15a4782752a0522. Claims below retain the frozen evidence and confidence labels.What the model does
A text-to-text Marian encoder-decoder checkpoint that translates normalized, SentencePiece-tokenized English text into Russian token logits and generated Russian text.
verifiedPrimary user stories
verifiedSupported tasks
translation- support surfaces:checkpoint,winmlverifiedtext2text-generation- support surfaces:transformers,optimum-onnx,winmlverifiedfeature-extraction- support surfaces:optimum-onnx,winmlverifiedModel architecture
MarianMTModel is a 76,672,000-parameter encoder-decoder Transformer with a shared 62,518x512 token embedding, learned/frozen sinusoidal positional embeddings, six 512-wide 8-head encoder layers, six 512-wide 8-head decoder layers, 2,048-wide swish feed-forward blocks, decoder cross-attention, a tied vocabulary projection, and runtime autoregressive KV-cache/generation orchestration. WinML exports it as separate encoder and decoder components.
model.shared_embedding,model.encoder,model.encoder.layers[],model.decoder,model.decoder.layers[],model.lm_head,runtime.generation_and_kv_cacheverifiedValidation and support evidence
1. Baseline
76d48ad38f894c3fc5a5e760de67f0a096e438a60.2.0uv run winml build -m Helsinki-NLP/opus-mt-en-ru -o temp/skill-run-1116/baseline_opus_mt_en_ru --ep cpu --device cpu --no-analyze --no-optimize --no-quant --no-compile --rebuildtemp/skill-run-1116/planner/baseline_build_utf8.log; encoderBuild complete in 28.7s; decoderBuild complete in 40.5s.uv run winml perf -m temp/skill-run-1116/baseline_opus_mt_en_ru/encoder_model.onnx --ep cpu --device cpu ; uv run winml perf -m temp/skill-run-1116/baseline_opus_mt_en_ru/decoder_model.onnx --ep cpu --device cpuTask 'translation' is not supported by winml eval.uv run winml eval --schema --task translationtemp/skill-run-1116/planner/baseline_eval_translation_utf8.logtemp/skill-run-1116/starting_config_opus_mt_en_ru_{encoder,decoder}uv run winml config -m Helsinki-NLP/opus-mt-en-ru --task translation -o temp/skill-run-1116/starting_config_opus_mt_en_ruL1; baseline proves L0 build and L1 component perf, while translation eval is CLI-BLOCKED and retained only as supplementary evidence.feature-extraction,feature-extraction-with-past,text-generation,text-generation-with-past,text2text-generation,text2text-generation-with-past; after WinML:feature-extraction,feature-extraction-with-past,text-generation,text-generation-with-past,text2text-generation,text2text-generation-with-past; added by WinML: none.2. Goal
3. Outcome
examples/recipes/Helsinki-NLP_opus-mt-en-ru/cpu/cpu/translation_fp32_encoder_config.jsonexamples/recipes/Helsinki-NLP_opus-mt-en-ru/cpu/cpu/translation_fp32_decoder_config.jsonexamples/recipes/Helsinki-NLP_opus-mt-en-ru/cpu/cpu/translation_fp16_encoder_config.jsonexamples/recipes/Helsinki-NLP_opus-mt-en-ru/cpu/cpu/translation_fp16_decoder_config.jsonmarian-008inmodel_knowledge/marian.json.4. Per-EP/device/precision results including concrete perf and eval data/exact blockers
Goal ladder
L0 build and structure
FLOAT=102,INT64=32; external data adjacent=true; artifacttemp/skill-run-1116/tester/build/cpu_cpu_fp32_encoder/model.onnxFLOAT=166,INT64=43; external data adjacent=true; artifacttemp/skill-run-1116/tester/build/cpu_cpu_fp32_decoder/model.onnxFLOAT16=102,INT64=32; external data adjacent=true; artifacttemp/skill-run-1116/tester/build/cpu_cpu_fp16_encoder/model.onnxFLOAT16=166,INT64=43; external data adjacent=true; artifacttemp/skill-run-1116/tester/build/cpu_cpu_fp16_decoder/model.onnxL1 perf
These are component measurements, not end-to-end autoregressive translation latency. VRAM delta was not reported by the frozen CPU evidence.
L2 numerical parity
The quick brown fox jumps over the lazy dog.; shape[1, 512, 512]The quick brown fox jumps over the lazy dog.; shape[1, 512, 512]Supplementary eval evidence
Because the committed ceiling is L2, this eval evidence is supplementary and does not create or imply an L3 verdict.
temp/skill-run-1116/tester/feature-gap-translation-eval.json.temp/skill-run-1116/tester/feature-gap-translation-eval.json.winml eval. Supported tasks: depth-estimation, feature-extraction, fill-mask, image-classification, image-feature-extraction, image-segmentation, image-to-text, keypoint-detection, mask-generation, next-sentence-prediction, object-detection, question-answering, sentence-similarity, sequence-classification, text-classification, token-classification, zero-shot-classification, zero-shot-image-classification.| cpu / cpu | fp16 | encoder | CLI-BLOCKED | not produced because CLI-BLOCKED | not produced because CLI-BLOCKED | 1 | Evaluation failed: Task 'translation' is not supported. Supported tasks: compare-tensor, depth-estimation, feature-extraction, fill-mask, image-classification, image-feature-extraction, image-segmentation, image-to-text, keypoint-detection, mask-generation, next-sentence-prediction, object-detection, question-answering, sentence-similarity, sequence-classification, text-classification, token-classification, zero-shot-classification, zero-shot-image-classification. Feature gap:
temp/skill-run-1116/tester/feature-gap-translation-eval.json. || cpu / cpu | fp16 | decoder | CLI-BLOCKED | not produced because CLI-BLOCKED | not produced because CLI-BLOCKED | 1 | Evaluation failed: Task 'translation' is not supported. Supported tasks: compare-tensor, depth-estimation, feature-extraction, fill-mask, image-classification, image-feature-extraction, image-segmentation, image-to-text, keypoint-detection, mask-generation, next-sentence-prediction, object-detection, question-answering, sentence-similarity, sequence-classification, text-classification, token-classification, zero-shot-classification, zero-shot-image-classification. Feature gap:
temp/skill-run-1116/tester/feature-gap-translation-eval.json. |winml eval. Supported tasks: depth-estimation, feature-extraction, fill-mask, image-classification, image-feature-extraction, image-segmentation, image-to-text, keypoint-detection, mask-generation, next-sentence-prediction, object-detection, question-answering, sentence-similarity, sequence-classification, text-classification, token-classification, zero-shot-classification, zero-shot-image-classification.5. Delta
temp/skill-run-1116/starting_config_opus_mt_en_ru_{encoder,decoder}translation_fp32_encoder_config.json: IDENTICALtranslation_fp32_decoder_config.json: IDENTICALtranslation_fp16_encoder_config.json: CHANGED_ONLY_AT_/quanttranslation_fp16_decoder_config.json: CHANGED_ONLY_AT_/quantexamples/recipes/Helsinki-NLP_opus-mt-en-ru/cpu/cpu/translation_fp16_encoder_config.jsonat JSON pointer/quant: old valuenull; new value{"mode":"fp16","samples":10,"calibration_method":"minmax","weight_type":"uint8","activation_type":"uint8","per_channel":false,"symmetric":false,"weight_symmetric":null,"activation_symmetric":null,"save_calibration":false,"distribution":"uniform","seed":null,"calibration_load_path":null,"calibration_save_path":null,"op_types_to_quantize":null,"nodes_to_exclude":null,"task":"feature-extraction","model_id":"Helsinki-NLP/opus-mt-en-ru","model_type":"marian","fp16_keep_io_types":true,"fp16_op_block_list":null}. Reason: Charter-required explicit fp16 coverage; build also passed --precision fp16 and artifact inspection found genuine FLOAT16 initializers.examples/recipes/Helsinki-NLP_opus-mt-en-ru/cpu/cpu/translation_fp16_decoder_config.jsonat JSON pointer/quant: old valuenull; new value{"mode":"fp16","samples":10,"calibration_method":"minmax","weight_type":"uint8","activation_type":"uint8","per_channel":false,"symmetric":false,"weight_symmetric":null,"activation_symmetric":null,"save_calibration":false,"distribution":"uniform","seed":null,"calibration_load_path":null,"calibration_save_path":null,"op_types_to_quantize":null,"nodes_to_exclude":null,"task":"text2text-generation","model_id":"Helsinki-NLP/opus-mt-en-ru","model_type":"marian","fp16_keep_io_types":true,"fp16_op_block_list":null}. Reason: Charter-required explicit fp16 coverage; build also passed --precision fp16 and artifact inspection found genuine FLOAT16 initializers.uv run winml build -m Helsinki-NLP/opus-mt-en-ru -o temp/skill-run-1116/baseline_opus_mt_en_ru --ep cpu --device cpu --no-analyze --no-optimize --no-quant --no-compile --rebuild6. Analyze results containing both full component-level and op-level analysis
Overall status: ANALYZE-PARTIAL-SUCCESS. All four commands exited 1 because support is partial/unknown, not setup failure. Each emitted parseable JSON with metadata and six complete requested EP result rows. No exit 2 setup failure occurred. Rules environment:
WINMLCLI_RULES_DIR=C:\repo\ModelKitArtifacts\rules; forbidden WINML_RULES_PATH used=false. Static analyze is rule-based graph analysis and is not runtime execution evidence.Component-level analysis
fp32 encoder
temp/skill-run-1116/tester/analyze_cpu_cpu_fp32_encoder.json; SHA-2568e046ffc826fe555e1633e01fa7941e18383121b1a19972d299064b154d16a23.$env:WINMLCLI_RULES_DIR='C:\repo\ModelKitArtifacts\rules'; uv run winml analyze --model temp/skill-run-1116/tester/build/cpu_cpu_fp32_encoder/model.onnx --ep all --output temp/skill-run-1116/tester/analyze_cpu_cpu_fp32_encoder.jsonmodel.encoder/encoder/*,/encoder/Reshape,/encoder/Mul,/encoder/AddAdd=1,Cast=2,Expand=1,Mul=1,Reshape=1,Sub=1,Unsqueeze=2,Where=1unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[0]/encoder/layers.N/*,/encoder/layers.0/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.0/self_attn/Transpose_2,/encoder/layers.0/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Slice=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[1]/encoder/layers.N/*,/encoder/layers.1/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.1/self_attn/Transpose_2,/encoder/layers.1/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[2]/encoder/layers.N/*,/encoder/layers.2/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.2/self_attn/Transpose_2,/encoder/layers.2/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[3]/encoder/layers.N/*,/encoder/layers.3/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.3/self_attn/Transpose_2,/encoder/layers.3/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[4]/encoder/layers.N/*,/encoder/layers.4/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.4/self_attn/Transpose_2,/encoder/layers.4/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[5]/encoder/layers.N/*,/encoder/layers.5/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.5/self_attn/Transpose_2,/encoder/layers.5/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.optimizer_inserted/encoder/*,gemm_input_reshape_token_8,gemm_output_reshape_token_11_new_reshape,gemm_output_reshape_token_5_new_reshapeReshape=54unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.shared_embedding/encoder/*,/encoder/embed_tokens/GatherGather=1unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownMapping gaps:
fp32 decoder
temp/skill-run-1116/tester/analyze_cpu_cpu_fp32_decoder.json; SHA-25662846ffbf0ae2a68033c932d79bff956227c32c9f067952e95a42c90816bf055.$env:WINMLCLI_RULES_DIR='C:\repo\ModelKitArtifacts\rules'; uv run winml analyze --model temp/skill-run-1116/tester/build/cpu_cpu_fp32_decoder/model.onnx --ep all --output temp/skill-run-1116/tester/analyze_cpu_cpu_fp32_decoder.jsonmodel.decoder.layers[0]/decoder/layers.N/*,/model/model/decoder/layers.0/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.0/encoder_attn/Transpose_1,/model/model/decoder/layers.0/encoder_attn/SliceAdd=5,Concat=1,Expand=1,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Slice=2,Softmax=2,Transpose=9,Unsqueeze=1unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:partial,unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[1]/decoder/layers.N/*,/model/model/decoder/layers.1/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.1/encoder_attn/Transpose_1,/model/model/decoder/layers.1/self_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[2]/decoder/layers.N/*,/model/model/decoder/layers.2/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.2/encoder_attn/Transpose_1,/model/model/decoder/layers.2/self_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[3]/decoder/layers.N/*,/model/model/decoder/layers.3/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.3/encoder_attn/Transpose_1,/model/model/decoder/layers.3/self_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[4]/decoder/layers.N/*,/model/model/decoder/layers.4/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.4/encoder_attn/Transpose_1,/model/model/decoder/layers.4/self_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[5]/decoder/layers.N/*,/model/model/decoder/layers.5/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.5/encoder_attn/Transpose_1,/model/model/decoder/layers.5/self_attn/Reshape_3Add=5,Expand=1,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=5,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:partial,unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.optimizer_inserted/decoder/*,gemm_input_reshape_token_212,gemm_output_reshape_token_215_new_reshape,gemm_output_reshape_token_185_new_reshapeAdd=3,Cast=4,Equal=1,Expand=3,Gather=2,Greater=1,Mul=2,Reshape=87,ScatterND=1,Slice=1,Sub=1,Unsqueeze=6,Where=2unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:partial,unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.lm_head/decoder/*,/model/lm_head/MatMulMatMul=1unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownMapping gaps:
fp16 encoder
temp/skill-run-1116/tester/analyze_cpu_cpu_fp16_encoder.json; SHA-256a4801b73f962b7fc75bc6b236955b2d1add0cbd998d0dc814be1af64da6a7e07.$env:WINMLCLI_RULES_DIR='C:\repo\ModelKitArtifacts\rules'; uv run winml analyze --model temp/skill-run-1116/tester/build/cpu_cpu_fp16_encoder/model.onnx --ep all --output temp/skill-run-1116/tester/analyze_cpu_cpu_fp16_encoder.jsonmodel.encoder/encoder/*,/encoder/Reshape,/encoder/Mul,/encoder/AddAdd=1,Cast=2,Expand=1,Mul=1,Reshape=1,Sub=1,Unsqueeze=2,Where=1unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[0]/encoder/layers.N/*,/encoder/layers.0/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.0/self_attn/Transpose_2,/encoder/layers.0/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Slice=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[1]/encoder/layers.N/*,/encoder/layers.1/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.1/self_attn/Transpose_2,/encoder/layers.1/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[2]/encoder/layers.N/*,/encoder/layers.2/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.2/self_attn/Transpose_2,/encoder/layers.2/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[3]/encoder/layers.N/*,/encoder/layers.3/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.3/self_attn/Transpose_2,/encoder/layers.3/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[4]/encoder/layers.N/*,/encoder/layers.4/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.4/self_attn/Transpose_2,/encoder/layers.4/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.layers[5]/encoder/layers.N/*,/encoder/layers.5/self_attn/k_proj/MatMul/MatMulAddFusion,/encoder/layers.5/self_attn/Transpose_2,/encoder/layers.5/self_attn/Mul_1Add=3,Gemm=6,LayerNormalization=2,MatMul=2,Mul=3,Reshape=1,Sigmoid=1,Softmax=1,Transpose=4unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.encoder.optimizer_inserted/encoder/*,gemm_input_reshape_token_8,gemm_output_reshape_token_11_new_reshape,gemm_output_reshape_token_5_new_reshapeCast=1,Reshape=54unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.shared_embedding/encoder/*,/encoder/embed_tokens/GatherGather=1unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownMapping gaps:
fp16 decoder
temp/skill-run-1116/tester/analyze_cpu_cpu_fp16_decoder.json; SHA-2567e4c2cc7088bc463f01b9f3dd88570d4cfee9dfb996f27b39c3b6da8625a3398.$env:WINMLCLI_RULES_DIR='C:\repo\ModelKitArtifacts\rules'; uv run winml analyze --model temp/skill-run-1116/tester/build/cpu_cpu_fp16_decoder/model.onnx --ep all --output temp/skill-run-1116/tester/analyze_cpu_cpu_fp16_decoder.jsonmodel.decoder.layers[0]/decoder/layers.N/*,/model/model/decoder/layers.0/encoder_attn/Slice,/model/model/decoder/layers.0/self_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.0/self_attn/Transpose_2Add=5,Concat=1,Expand=1,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Slice=2,Softmax=2,Transpose=9,Unsqueeze=1unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:partial,unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[1]/decoder/layers.N/*,/model/model/decoder/layers.1/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.1/encoder_attn/Transpose_1,/model/model/decoder/layers.1/self_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[2]/decoder/layers.N/*,/model/model/decoder/layers.2/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.2/encoder_attn/Transpose_1,/model/model/decoder/layers.2/self_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[3]/decoder/layers.N/*,/model/model/decoder/layers.3/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.3/encoder_attn/Transpose_1,/model/model/decoder/layers.3/self_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[4]/decoder/layers.N/*,/model/model/decoder/layers.4/encoder_attn/v_proj/MatMul/MatMulAddFusion,/model/model/decoder/layers.4/encoder_attn/Transpose_1,/model/model/decoder/layers.4/self_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=4,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.layers[5]/decoder/layers.N/*,/model/model/decoder/layers.5/self_attn/Reshape_3,/model/model/decoder/layers.5/self_attn/Expand_2,/model/model/decoder/layers.5/encoder_attn/v_proj/MatMul/MatMulAddFusionAdd=5,Expand=1,Gemm=10,LayerNormalization=3,MatMul=4,Mul=5,Reshape=5,ScatterND=2,Sigmoid=1,Softmax=2,Transpose=9unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:partial,unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.decoder.optimizer_inserted/decoder/*,/model/model/decoder/Unsqueeze_8,/model/model/decoder/Unsqueeze_9,/model/model/decoder/Expand_6Add=3,Cast=30,Equal=1,Expand=3,Gather=2,Greater=1,Mul=2,Reshape=87,ScatterND=1,Slice=1,Sub=1,Unsqueeze=6,Where=2unknown; CUDAExecutionProvider:unknown; MIGraphXExecutionProvider:unknown; QNNExecutionProvider:partial,unsupported,unknown; OpenVINOExecutionProvider:unknown; DmlExecutionProvider:unknownmodel.lm_head/decoder/*,/model/lm_head/MatMulMatMul=1unknown; MIGraphXExecutionProvider:unknown; DmlExecutionProvider:unknownMapping gaps:
Op-level analysis
fp32 encoder
Reshape=61,Gather=1,Mul=19,Add=19,Gemm=36,Transpose=24,MatMul=12,Unsqueeze=2,Expand=1,Cast=2,Sub=1,Where=1,Slice=1,Softmax=6,LayerNormalization=12,Sigmoid=6.Reshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,Sigmoidfp32 decoder
Reshape=112,Gemm=60,Transpose=54,Unsqueeze=7,Expand=5,Cast=4,Sub=1,Where=2,Slice=3,Gather=2,Mul=32,Add=33,Concat=1,ScatterND=13,Greater=1,Equal=1,MatMul=25,Softmax=12,LayerNormalization=18,Sigmoid=6.Reshape,Gemm,Transpose,Unsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Concat,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,SigmoidScatterNDReshape,Gemm,Transpose,Unsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Concat,ScatterND,Greater,Equal,MatMul,Softmax,LayerNormalization,SigmoidReshape,Gemm,Transpose,Unsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Concat,ScatterND,Greater,Equal,MatMul,Softmax,LayerNormalization,SigmoidReshape,Gemm,Transpose,Unsqueeze,Sub,Cast,Where,Slice,Gather,Mul,Add,Expand,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,SigmoidExpand,Cast,ConcatScatterNDReshape,Gemm,Transpose,Unsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Concat,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,SigmoidScatterNDReshape,Gemm,Transpose,Unsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Concat,ScatterND,Greater,Equal,MatMul,Softmax,LayerNormalization,Sigmoidfp16 encoder
Reshape=61,Gather=1,Mul=19,Add=19,Gemm=36,Transpose=24,MatMul=12,Unsqueeze=2,Expand=1,Cast=3,Sub=1,Where=1,Slice=1,Softmax=6,LayerNormalization=12,Sigmoid=6.Reshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,SigmoidReshape,Gather,Mul,Add,Gemm,Transpose,MatMul,Unsqueeze,Expand,Cast,Sub,Where,Slice,Softmax,LayerNormalization,Sigmoidfp16 decoder
Unsqueeze=7,Expand=5,Cast=30,Sub=1,Where=2,Slice=3,Gather=2,Mul=32,Add=33,Reshape=112,Gemm=60,Transpose=54,Concat=1,Greater=1,Equal=1,ScatterND=13,MatMul=25,Softmax=12,LayerNormalization=18,Sigmoid=6.Unsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Reshape,Gemm,Transpose,Concat,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,SigmoidScatterNDUnsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Reshape,Gemm,Transpose,Concat,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,SigmoidUnsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Reshape,Gemm,Transpose,Concat,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,SigmoidUnsqueeze,Sub,Cast,Where,Slice,Gather,Mul,Add,Reshape,Gemm,Transpose,Expand,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,SigmoidExpand,ConcatCastScatterNDUnsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Reshape,Gemm,Transpose,Concat,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,SigmoidScatterNDUnsqueeze,Expand,Cast,Sub,Where,Slice,Gather,Mul,Add,Reshape,Gemm,Transpose,Concat,Greater,Equal,ScatterND,MatMul,Softmax,LayerNormalization,Sigmoid7. Reproduce commands