Skip to content

Commit 8001512

Browse files
authored
Qualcomm AI Engine Direct - Test Framework Refactor #2 (pytorch#20735)
### Summary - fill the test gap for newly added op - utils test ### Test plan pytest backends/qualcomm/tests/rework/utils/test.py
1 parent 497b0d9 commit 8001512

8 files changed

Lines changed: 1010 additions & 10 deletions

File tree

backends/qualcomm/tests/rework/common/pass/test.py

Lines changed: 0 additions & 5 deletions
This file was deleted.

backends/qualcomm/tests/rework/common/utils/test.py

Lines changed: 0 additions & 5 deletions
This file was deleted.

backends/qualcomm/tests/rework/conftest.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from abc import ABC, abstractmethod
1919
from collections import defaultdict
2020
from contextlib import contextmanager
21+
from dataclasses import dataclass
2122
from functools import partial
2223
from typing import Any, List, Tuple
2324

@@ -53,6 +54,7 @@
5354
# et framework messages
5455
EXCEPTION_EXIR_PROGRAM = "exir/program"
5556
EXCEPTION_FROM_PASSES = "backends/qualcomm/_passes"
57+
EXCEPTION_FROM_PREPROCESS = "backends/qualcomm/qnn_preprocess"
5658

5759

5860
def check_exception(msg):
@@ -62,6 +64,15 @@ def _check(msg, _: Exception):
6264
return partial(_check, msg)
6365

6466

67+
# extend this for backend agnostic tests
68+
def default_property():
69+
@dataclass
70+
class Property:
71+
soc_model: str = "SM8750"
72+
73+
return Property()
74+
75+
6576
class Metrics(ABC):
6677
@abstractmethod
6778
def __init__(self):

backends/qualcomm/tests/rework/htp/op/v68/test.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,24 @@ def test_add(request, kwargs):
121121
Add.test(request, kwargs) # noqa: F405
122122

123123

124+
@enumerate_activation_dtype(
125+
[
126+
Tolerance(),
127+
pytest.raises(AssertionError, match=EXPECT_NOT_FULLY_DELEGATED),
128+
Tolerance(rtol=1e-1),
129+
]
130+
)
131+
@with_htp_context
132+
def test_addmm(request, kwargs):
133+
AddMM.test(request, kwargs) # noqa: F405
134+
135+
136+
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
137+
@with_htp_context
138+
def test_alias(request, kwargs):
139+
Alias.test(request, kwargs) # noqa: F405
140+
141+
124142
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
125143
@with_htp_context
126144
def test_amax(request, kwargs):
@@ -464,6 +482,10 @@ def test_conv2d_transpose(request, kwargs):
464482
},
465483
id="16a4w_lpbq",
466484
),
485+
pytest.param(
486+
{"act": "fp16", "param": 8, "pcq": True, "expected": Tolerance()},
487+
id="fp16a8w_pcq",
488+
),
467489
],
468490
)
469491
@with_htp_context
@@ -527,6 +549,12 @@ def test_div(request, kwargs):
527549
Div.test(request, kwargs) # noqa: F405
528550

529551

552+
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
553+
@with_htp_context
554+
def test_div_with_rounding_mode(request, kwargs):
555+
DivWithRoundingMode.test(request, kwargs) # noqa: F405
556+
557+
530558
@enumerate_activation_dtype(
531559
[
532560
Tolerance(),
@@ -595,6 +623,12 @@ def test_expm1(request, kwargs):
595623
ExpM1.test(request, kwargs) # noqa: F405
596624

597625

626+
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
627+
@with_htp_context
628+
def test_fill(request, kwargs):
629+
Fill.test(request, kwargs) # noqa: F405
630+
631+
598632
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
599633
@with_htp_context
600634
def test_flip(request, kwargs):
@@ -857,6 +891,14 @@ def test_linear_block_quant(request, kwargs):
857891
{"act": 16, "param": 8, "pcq": True, "expected": Tolerance()},
858892
id="16a8w_pcq",
859893
),
894+
pytest.param(
895+
{"act": "fp16", "param": 8, "pcq": True, "expected": Tolerance()},
896+
id="fp16a8w_pcq",
897+
),
898+
pytest.param(
899+
{"act": 16, "param": 2, "pcq": True, "expected": CosineSimilarity(0.9)},
900+
id="16a2w_pcq",
901+
),
860902
pytest.param(
861903
{
862904
"act": None,
@@ -1177,12 +1219,24 @@ def test_sdpa(request, kwargs):
11771219
ScaledDotProductAttention.test(request, kwargs) # noqa: F405
11781220

11791221

1222+
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
1223+
@with_htp_context
1224+
def test_scatter_src(request, kwargs):
1225+
ScatterSrc.test(request, kwargs) # noqa: F405
1226+
1227+
11801228
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
11811229
@with_htp_context
11821230
def test_select_copy(request, kwargs):
11831231
SelectCopy.test(request, kwargs) # noqa: F405
11841232

11851233

1234+
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
1235+
@with_htp_context
1236+
def test_select_scatter(request, kwargs):
1237+
SelectScatter.test(request, kwargs) # noqa: F405
1238+
1239+
11861240
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
11871241
@with_htp_context
11881242
def test_sigmoid(request, kwargs):
@@ -1255,6 +1309,12 @@ def test_swapaxes(request, kwargs):
12551309
SwapAxes.test(request, kwargs) # noqa: F405
12561310

12571311

1312+
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
1313+
@with_htp_context
1314+
def test_tan(request, kwargs):
1315+
Tan.test(request, kwargs) # noqa: F405
1316+
1317+
12581318
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
12591319
@with_htp_context
12601320
def test_tanh(request, kwargs):
@@ -1355,3 +1415,9 @@ def test_view_5d_flatten_last_two_dims(request, kwargs):
13551415
@with_htp_context
13561416
def test_where(request, kwargs):
13571417
Where.test(request, kwargs) # noqa: F405
1418+
1419+
1420+
@enumerate_activation_dtype([Tolerance(), Tolerance(), Tolerance(rtol=1e-1)])
1421+
@with_htp_context
1422+
def test_var(request, kwargs):
1423+
Var.test(request, kwargs) # noqa: F405

0 commit comments

Comments
 (0)