Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions src/mobius/_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
BaseModelConfig,
)
from mobius._execution_providers import ep_registry
from mobius._flags import flags
from mobius._model_package import ModelPackage
from mobius._optimizations import optimize_model
from mobius._registry import registry
Expand Down Expand Up @@ -208,6 +209,27 @@ def forward(self, op, input_ids, attention_mask,
model_role=role,
trace=trace_optimization,
)

# Lower default-domain opset from 24 to 23 when the target EP doesn't
# register opset 24 kernels for standard ops (Reshape, RMSNormalization,
# etc.). Without this, those ops fall to CPU and produce ~280 memcpy
# nodes that destroy performance. The flag defaults to True; set
# MOBIUS_ORT_LOWER_OPSET_FOR_EP=0 to disable for EPs that support
# opset 24 natively.
if flags.ort_lower_opset_for_ep and execution_provider != "default":
for name, model in pkg.items():
if "" in model.graph.opset_imports:
original = model.graph.opset_imports[""]
model.graph.opset_imports[""] = 23
logger.warning(
"Lowered opset %d→23 for '%s' (EP=%s). "
"ORT does not yet register opset %d kernels for this EP. "
"Track https://github.com/microsoft/onnxruntime/issues/27729",
original,
name,
execution_provider,
original,
)
return pkg


Expand Down
Loading