onnxruntime
bbfa896e - [WebGPU] Validate MatMul execution plans in planner (#33288)

Commit
2 days ago
[WebGPU] Validate MatMul execution plans in planner (#33288) ### Description - Change `MatMulExecutionPlanner::CreateExecutionPlan` to return `Status` and publish its output plan only after validation succeeds. - Validate algorithm/configuration compatibility, host-known algorithm prerequisites, packed tuning, subgroup size agreement, and overflow-safe packed/Split-K dispatch arithmetic in the planner. - Remove duplicated prerequisite reconstruction and validation from `MatMulComputeDispatcher`. - Add contract tests for unsupported forced requests, unchanged output on failure, invalid vendor configurations, and dispatch overflow. - Update the WebGPU MatMul planner design documentation. ### Motivation and Context Follow-up to #32630. A successful `CreateExecutionPlan` should mean that the returned plan is executable for all prerequisites already known to the host. Previously the planner returned an unchecked proposal and the dispatcher reconstructed the same prerequisite facts to validate it, which weakened the plan contract and allowed the two paths to drift. Forced test selections still bypass performance heuristics, but unsupported requests now fail in plan creation without silently falling back. ### Testing - Static Vulkan `onnxruntime_provider_test` build - 41 planner, configuration, and execution-plan validation tests passed - 22 hardware-backed forced MatMul, FP32 accumulation, Split-K, dynamic reselection, and pointwise Conv tests passed - WebGPU plugin library target built successfully The full local plugin `onnxruntime_provider_test` link remains blocked by an existing MSVC `C4744` Abseil/GoogleTest signedness warning promoted to `C2220`, followed by `LNK1257`; no changed planner source failed compilation.
Author
Parents
Loading