馃殌 The feature, motivation and pitch
Several Ultralytics Yolo variants use 2x2 nearest neighbor upsampling operators, which are explicitly blacklisted for lowering to U55 (for U85, they can be lowered without issues):
|
exir_ops.edge.aten.upsample_nearest2d.vec, # RESIZE |
For TFlite exports, this operator is correctly ran on the NPU, while for ExecuTorch, this is currently the only remaining operator in the model running on CPU, leading to a much higher runtime and insertion of Q/DQ nodes in the graph.
According to the documentation, it should be possible to run this operator on U55: https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u-vela/-/blob/main/SUPPORTED_OPS.md?ref_type=heads#ethos-u55-and-ethos-u65-tflite-resize_nearest_neighbor-constraints
Since Yolo models are quite a common use case for platforms with U55, I think it would make sense to add the necessary plumbing for this operator in the ExecuTorch -> U55 path.
Alternatives
No response
Additional context
Comparison of ExecuTorch graph of Yolo v26 on Ethos-U55 vs. TFlite graph:
RFC (Optional)
No response
cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani
馃殌 The feature, motivation and pitch
Several Ultralytics Yolo variants use 2x2 nearest neighbor upsampling operators, which are explicitly blacklisted for lowering to U55 (for U85, they can be lowered without issues):
executorch/backends/arm/operator_support/ethos_u55_support.py
Line 212 in 73b46d3
For TFlite exports, this operator is correctly ran on the NPU, while for ExecuTorch, this is currently the only remaining operator in the model running on CPU, leading to a much higher runtime and insertion of Q/DQ nodes in the graph.
According to the documentation, it should be possible to run this operator on U55: https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u-vela/-/blob/main/SUPPORTED_OPS.md?ref_type=heads#ethos-u55-and-ethos-u65-tflite-resize_nearest_neighbor-constraints
Since Yolo models are quite a common use case for platforms with U55, I think it would make sense to add the necessary plumbing for this operator in the ExecuTorch -> U55 path.
Alternatives
No response
Additional context
Comparison of ExecuTorch graph of Yolo v26 on Ethos-U55 vs. TFlite graph:
RFC (Optional)
No response
cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani