diff --git a/backends/arm/scripts/docgen/generate_op_support.py b/backends/arm/scripts/docgen/generate_op_support.py index 5b1b9c79d5b..c48ecb3166f 100644 --- a/backends/arm/scripts/docgen/generate_op_support.py +++ b/backends/arm/scripts/docgen/generate_op_support.py @@ -356,7 +356,6 @@ def _activate_backend(backend: str | BackendConfig) -> BackendConfig: "torch.ops.aten.native_layer_norm.default", "torch.ops.aten.embedding.default", "torch.ops.aten.pow.Tensor_Tensor", - "torch.ops.aten.scaled_dot_product_attention.default", } @@ -405,18 +404,6 @@ def _activate_backend(backend: str | BackendConfig) -> BackendConfig: ): { "INT": {"torch.ops.aten.embedding.default"}, }, - ( - "backends/arm/test/ops/test_sdpa.py", - "test_sdpa_vgf_no_quant", - ): { - "FP": {"torch.ops.aten.scaled_dot_product_attention.default"}, - }, - ( - "backends/arm/test/ops/test_sdpa.py", - "test_sdpa_vgf_quant", - ): { - "INT": {"torch.ops.aten.scaled_dot_product_attention.default"}, - }, } # Existing U55 runtime tests below intentionally suppress direct ATen/Edge @@ -459,12 +446,6 @@ def _activate_backend(backend: str | BackendConfig) -> BackendConfig: ): { "INT": {"torch.ops.aten.pow.Tensor_Tensor"}, }, - ( - "backends/arm/test/ops/test_sdpa.py", - "test_sdpa_u55_INT", - ): { - "INT": {"torch.ops.aten.scaled_dot_product_attention.default"}, - }, } # Existing U85 runtime tests below intentionally suppress direct ATen/Edge @@ -497,12 +478,6 @@ def _activate_backend(backend: str | BackendConfig) -> BackendConfig: ): { "INT": {"torch.ops.aten.pow.Tensor_Tensor"}, }, - ( - "backends/arm/test/ops/test_sdpa.py", - "test_sdpa_u85_INT", - ): { - "INT": {"torch.ops.aten.scaled_dot_product_attention.default"}, - }, } @@ -635,9 +610,6 @@ def _active_explicit_backend_coverage() -> dict[tuple[str, str], dict[str, set[s "torch.nn.Embedding", "torch.nn.functional.embedding", ), - "torch.ops.aten.scaled_dot_product_attention.default": ( - "torch.nn.functional.scaled_dot_product_attention", - ), # Activations. "torch.ops.aten.relu.default": ("torch.relu", "torch.nn.ReLU"), "torch.ops.aten.relu_.default": ("torch.Tensor.relu_",), diff --git a/backends/arm/test/misc/test_docgen_op_support.py b/backends/arm/test/misc/test_docgen_op_support.py index bf15667a8a5..6c2916dd0ec 100644 --- a/backends/arm/test/misc/test_docgen_op_support.py +++ b/backends/arm/test/misc/test_docgen_op_support.py @@ -215,39 +215,6 @@ def test_u85_explicit_coverage_attribution() -> None: docgen._activate_backend(original) -SDPA_OP = "torch.ops.aten.scaled_dot_product_attention.default" - - -def test_sdpa_is_decomposed_with_public_api_alias() -> None: - assert SDPA_OP in docgen.DECOMPOSED_OPS - assert docgen._pytorch_api_aliases(SDPA_OP) == ( - "torch.nn.functional.scaled_dot_product_attention", - ) - - -@pytest.mark.parametrize( - ("backend", "function", "profile"), - [ - ("vgf", "test_sdpa_vgf_no_quant", "FP"), - ("vgf", "test_sdpa_vgf_quant", "INT"), - ("u55", "test_sdpa_u55_INT", "INT"), - ("u85", "test_sdpa_u85_INT", "INT"), - ], -) -def test_sdpa_explicit_backend_coverage( - backend: str, function: str, profile: str -) -> None: - original = docgen.ACTIVE_BACKEND_KEY - try: - docgen._activate_backend(backend) - coverage = docgen._active_explicit_backend_coverage() - assert coverage[("backends/arm/test/ops/test_sdpa.py", function)][profile] == { - SDPA_OP - } - finally: - docgen._activate_backend(original) - - def test_non_vgf_backend_does_not_collect_vgf_custom_partition_ops() -> None: original = docgen.ACTIVE_BACKEND_KEY try: diff --git a/docs/source/backends/arm-ethos-u/U55_op_support.md b/docs/source/backends/arm-ethos-u/U55_op_support.md index 5b6a708546e..0a03854d877 100644 --- a/docs/source/backends/arm-ethos-u/U55_op_support.md +++ b/docs/source/backends/arm-ethos-u/U55_op_support.md @@ -6,7 +6,7 @@ This page lists Ethos-U55-supported PyTorch APIs and the dtype and quantization `8x8` means 8-bit activations and 8-bit weights. `16x8` means 16-bit activations and 8-bit weights. `8x4` means 8-bit activations and 4-bit weights. -Total supported PyTorch APIs: **105**. +Total supported PyTorch APIs: **104**. | PyTorch API | Support profile | DType | Quantization mode | | --- | --- | --- | --- | @@ -68,7 +68,6 @@ Total supported PyTorch APIs: **105**. | `torch.nn.Conv2d` / `torch.nn.functional.conv2d` | INT | `INT8`, `INT16`, `INT4` | 8x8, 8x4, 16x8 | | `torch.nn.ELU` / `torch.nn.functional.elu` | INT | `INT8` | 8x8 | | `torch.nn.functional.pad` | INT | `INT8` | 8x8 | -| `torch.nn.functional.scaled_dot_product_attention` | INT | `INT8` | 8x8 | | `torch.nn.GELU` / `torch.nn.functional.gelu` | INT | `INT8`, `INT16` | 8x8, 16x8 | | `torch.nn.Hardsigmoid` / `torch.nn.functional.hardsigmoid` | INT | `INT8` | 8x8 | | `torch.nn.Hardswish` / `torch.nn.functional.hardswish` | INT | `INT8` | 8x8 | diff --git a/docs/source/backends/arm-ethos-u/U85_op_support.md b/docs/source/backends/arm-ethos-u/U85_op_support.md index 204d411d4cc..7d778ff5cc9 100644 --- a/docs/source/backends/arm-ethos-u/U85_op_support.md +++ b/docs/source/backends/arm-ethos-u/U85_op_support.md @@ -6,7 +6,7 @@ This page lists Ethos-U85-supported PyTorch APIs and the dtype and quantization `8x8` means 8-bit activations and 8-bit weights. `16x8` means 16-bit activations and 8-bit weights. `8x4` means 8-bit activations and 4-bit weights. -Total supported PyTorch APIs: **128**. +Total supported PyTorch APIs: **127**. | PyTorch API | Support profile | DType | Quantization mode | | --- | --- | --- | --- | @@ -87,7 +87,6 @@ Total supported PyTorch APIs: **128**. | `torch.nn.ELU` / `torch.nn.functional.elu` | INT | `INT8` | 8x8 | | `torch.nn.Embedding` / `torch.nn.functional.embedding` | INT | `INT8` | 8x8 | | `torch.nn.functional.pad` | INT | `INT8` | 8x8 | -| `torch.nn.functional.scaled_dot_product_attention` | INT | `INT8` | 8x8 | | `torch.nn.GELU` / `torch.nn.functional.gelu` | INT | `INT8`, `INT16` | 8x8, 16x8 | | `torch.nn.Hardsigmoid` / `torch.nn.functional.hardsigmoid` | INT | `INT8` | 8x8 | | `torch.nn.Hardswish` / `torch.nn.functional.hardswish` | INT | `INT8` | 8x8 | diff --git a/docs/source/backends/arm-vgf/VGF_op_support.md b/docs/source/backends/arm-vgf/VGF_op_support.md index 368eff8c6d1..4a2bc8f8816 100644 --- a/docs/source/backends/arm-vgf/VGF_op_support.md +++ b/docs/source/backends/arm-vgf/VGF_op_support.md @@ -105,7 +105,6 @@ Total supported PyTorch APIs: **158**. | `torch.nn.ELU` / `torch.nn.functional.elu` | FP, INT | `FP32`, `INT8` | 8x8 | | `torch.nn.Embedding` / `torch.nn.functional.embedding` | FP, INT | `FP32`, `INT8` | 8x8 | | `torch.nn.functional.pad` | FP, INT | `FP32`, `FP16`, `BF16`, `INT8`, `INT16` | 8x8, 16x8 | -| `torch.nn.functional.scaled_dot_product_attention` | FP, INT | `FP32`, `INT8` | 8x8 | | `torch.nn.GELU` / `torch.nn.functional.gelu` | FP, INT | `FP32`, `BF16`, `INT8` | 8x8 | | `torch.nn.GroupNorm` / `torch.nn.functional.group_norm` | FP, INT | `FP32`, `INT8` | 8x8 | | `torch.nn.Hardsigmoid` / `torch.nn.functional.hardsigmoid` | FP, INT | `FP32`, `INT8` | 8x8 |