Description
🐛 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:
- 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?
- 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?
- 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.
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