microsoft / microsoft/onnxruntime
[Feature Request] Enable applications to discover if an EP supports compilation
- Dominant language
- C++
- Stars
- 21.9k
- Forks
- 4.2k
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 184
Description
### Describe the feature request
Currently, if a developer wants to build an application targeting different silicon on Windows, there is no way for them to discover what EPs on the device support compilation. As an example, the MIGraphX EP does not implement the Compile() method and so the caller gets back an error (e.g., on 1.24.x ORT, `Model compilation status: ep_plugin_provider_interfaces.cc:349 onnxruntime::ConvertEpContextNodes MIGraphXExecutionProvider: OrtEp::Compile() returned a NULL EPContext node.` and on 1.23.x ORT, `Failed to compile model: Fatal error: com.microsoft:MGXKernel_graph_main_8923502235690979284_0(-1) is not a registered function/op`).
### Describe scenario use case
The use case here would be to enable an application to pre-emptively determine if the EPs on the device where they are running support compilation (without having to try it and deal with the errors). This would enable writing slightly more general code without having to handle IHV-specific variances.
Contributor guide
Research direction
Start by tracing the EP compilation path and the OrtEp::Compile() interface, using the reported ep_plugin_provider_interfaces.cc failure as an entry point. Determine how an application could query compilation support before attempting compilation, then verify that the result distinguishes providers such as MIGraphX and prevents the reported errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100