Skip to content

CRNN model decomposition Error with ARM Ethos-U backend #12270

Open
@tymons

Description

@tymons

🐛 Describe the bug

I want to convert and run my CRNN model with Resnet backend on ARM FVP 300 but facing errors in lowering method when using either EthosUPartitioner or TOSAPartitioner. Mind that there is no such issue with pure EdgeDialect (no partitioner).

edge = to_edge_transform_and_lower(
    exported_program,
    partitioner=[partitioner],
    compile_config=EdgeCompileConfig(
        _check_ir_validity=False,
    ),
)
Node aten_linear_default_2 with op <EdgeOpOverload: aten.linear.default>: schema = aten::linear(Tensor input, Tensor weight, Tensor? bias=None) -> Tensor was not decomposed or delegated.
This op was registered by the partitioner EthosUPartitioner to not be decomposed.
The following ops: {<OpOverload(op='aten.linear', overload='default')>, <OpOverload(op='aten.eye', overload='default')>, <OpOverload(op='aten.hardsigmoid', overload='default')>, <OpOverload(op='aten.upsample_nearest2d', overload='vec')>, <OpOverload(op='aten.upsample_bilinear2d', overload='vec')>, <OpOverload(op='aten.hardswish', overload='default')>, <OpOverload(op='aten.linspace', overload='default')>} were specified to not be decomposed in forward.

As I am quite new to ExecuTorch can you please explain me or point the right direction for the following questions:

  1. Does the graph in EdgeDialect should be fully delegated or is it possible to have only some ops accelerated by backend? My point is: Is this error a critical one?
  2. I don't see e.g. hardsigmoid to be part of Core ATen operations but I can see that arm backend has some code regarding that function. Can you exaplin why I am seeing an error like above?
  3. What should be the right approach if I encounter similar errors in the futurte? Change architecture, add ops implementation, user passes? I can see that problem is (probably) that one of my Attention layers is nn.Linear without bias so it is converted to torch.ops.aten.linear.default without 3rd argument.

crnn-graph.txt

Thank you folks for your outstanding work.

Versions

[pip3] executorch==0.8.0a0+f858e0d
[pip3] numpy==2.3.1
[pip3] nvidia-cublas-cu12==12.6.4.1
[pip3] nvidia-cuda-cupti-cu12==12.6.80
[pip3] nvidia-cuda-nvrtc-cu12==12.6.77
[pip3] nvidia-cuda-runtime-cu12==12.6.77
[pip3] nvidia-cudnn-cu12==9.5.1.17
[pip3] nvidia-cufft-cu12==11.3.0.4
[pip3] nvidia-curand-cu12==10.3.7.77
[pip3] nvidia-cusolver-cu12==11.7.1.2
[pip3] nvidia-cusparse-cu12==12.5.4.2
[pip3] nvidia-cusparselt-cu12==0.6.3
[pip3] nvidia-nccl-cu12==2.26.2
[pip3] nvidia-nvjitlink-cu12==12.6.85
[pip3] nvidia-nvtx-cu12==12.6.77
[pip3] pytorch_tokenizers==0.1.0
[pip3] torch==2.8.0.dev20250625+cpu
[pip3] torchao==0.12.0+gitbc68b11f
[pip3] torchaudio==2.8.0.dev20250625+cpu
[pip3] torchdata==0.11.0
[pip3] torchsr==1.0.4
[pip3] torchtune==0.6.1
[pip3] torchvision==0.23.0.dev20250625+cpu
[pip3] triton==3.3.1
[conda] Could not collect

Metadata

Metadata

Labels

module: armIssues related to arm backendtriagedThis issue has been looked at a team member, and triaged and prioritized into an appropriate module

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions