Skip to content

Commit 848c58f

Browse files
Jiseong-ohchong-chen01jonghun-chaxiongzhan-linghu
committed
Add more CI testcases for Exynos Backend
- Support necessary stages for E2E test - Enable test for float/quant ops and float models Co-authored-by: chong.checn <chong.chen@samsung.com> Co-authored-by: jhbb.cha <jhbb.cha@samsung.com> Co-authored-by: xz.linghu <xz.linghu@samsung.com> Signed-off-by: jiseong.oh <jiseong.oh@samsung.com>
1 parent 6a20827 commit 848c58f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+512
-46
lines changed

.github/workflows/pull.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1247,6 +1247,7 @@ jobs:
12471247
fi
12481248
12491249
# Test models
1250+
#python -m executorch.backends.samsung.test.utils.run_tests --chipset E9955
12501251
python -m unittest discover -s backends/samsung/test/models -p "test_*.py"
12511252
12521253
test-vulkan-models-linux:

backends/samsung/test/models/test_deeplab_v3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
gen_samsung_backend_compile_spec,
1111
)
1212
from executorch.backends.samsung.test.tester import SamsungTester
13+
from executorch.backends.samsung.test.utils.utils import TestConfig
1314
from executorch.examples.models.deeplab_v3 import DeepLabV3ResNet50Model
1415

1516

@@ -18,7 +19,7 @@ def test_dl3_fp16(self):
1819
model = DeepLabV3ResNet50Model().get_eager_model()
1920
example_input = DeepLabV3ResNet50Model().get_example_inputs()
2021
tester = SamsungTester(
21-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
22+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2223
)
2324
(
2425
tester.export()

backends/samsung/test/models/test_edsr.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
gen_samsung_backend_compile_spec,
1313
)
1414
from executorch.backends.samsung.test.tester import SamsungTester
15+
from executorch.backends.samsung.test.utils.utils import TestConfig
1516
from executorch.examples.models.edsr import EdsrModel
1617

1718

@@ -20,7 +21,7 @@ def test_edsr_fp16(self):
2021
model = EdsrModel().get_eager_model()
2122
example_input = EdsrModel().get_example_inputs()
2223
tester = SamsungTester(
23-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
24+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2425
)
2526
(
2627
tester.export()

backends/samsung/test/models/test_inception_v3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
gen_samsung_backend_compile_spec,
1515
)
1616
from executorch.backends.samsung.test.tester import SamsungTester
17+
from executorch.backends.samsung.test.utils.utils import TestConfig
1718
from executorch.examples.models.inception_v3 import InceptionV3Model
1819

1920

@@ -23,7 +24,7 @@ def test_inception_v3_fp16(self):
2324
model = InceptionV3Model().get_eager_model()
2425
example_input = InceptionV3Model().get_example_inputs()
2526
tester = SamsungTester(
26-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
27+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2728
)
2829
(
2930
tester.export()

backends/samsung/test/models/test_inception_v4.py

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,60 @@
55
# except in compliance with the License. See the license file in the root
66
# directory of this source tree for more details.
77

8-
8+
import logging
9+
import os
910
import unittest
1011

1112
from executorch.backends.samsung.serialization.compile_options import (
1213
gen_samsung_backend_compile_spec,
1314
)
1415
from executorch.backends.samsung.test.tester import SamsungTester
16+
from executorch.backends.samsung.test.utils.utils import TestConfig
1517
from executorch.examples.models.inception_v4 import InceptionV4Model
1618

1719

20+
def patch_iv4(weight_path: str):
21+
assert os.path.isfile(weight_path), "Can not found weight path for iv4"
22+
from safetensors import safe_open
23+
from timm.models import inception_v4
24+
25+
def _monkeypatch_get_eager_model(self):
26+
tensors = {}
27+
with safe_open(weight_path, framework="pt") as st:
28+
for k in st.keys():
29+
tensors[k] = st.get_tensor(k)
30+
logging.info("Loading inception_v4 model")
31+
m = inception_v4(pretrained=True, pretrained_cfg={"state_dict": tensors})
32+
logging.info("Loaded inception_v4 model")
33+
return m
34+
35+
old_func = InceptionV4Model.get_eager_model
36+
InceptionV4Model.get_eager_model = _monkeypatch_get_eager_model
37+
return old_func
38+
39+
40+
def recover_iv4(old_func):
41+
InceptionV4Model.get_eager_model = old_func
42+
43+
1844
class TestMilestoneInceptionV4(unittest.TestCase):
45+
@classmethod
46+
def setUpClass(cls):
47+
assert (model_cache_dir := os.getenv("MODEL_CACHE")), "MODEL_CACHE not set!"
48+
weight_path = os.path.join(
49+
model_cache_dir, os.path.join(model_cache_dir, "iv4/model.safetensors")
50+
)
51+
cls._old_func = patch_iv4(weight_path)
52+
53+
@classmethod
54+
def tearDownClass(cls):
55+
recover_iv4(cls._old_func)
56+
1957
def test_inception_v4_fp16(self):
2058
model = InceptionV4Model().get_eager_model()
2159
example_input = InceptionV4Model().get_example_inputs()
2260
tester = SamsungTester(
23-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
61+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2462
)
2563
(
2664
tester.export()

backends/samsung/test/models/test_mobilenet_v2.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
gen_samsung_backend_compile_spec,
1111
)
1212
from executorch.backends.samsung.test.tester import SamsungTester
13+
from executorch.backends.samsung.test.utils.utils import TestConfig
1314
from executorch.examples.models.mobilenet_v2 import MV2Model
1415

1516

@@ -18,7 +19,7 @@ def test_mv2_fp16(self):
1819
model = MV2Model().get_eager_model()
1920
example_input = MV2Model().get_example_inputs()
2021
tester = SamsungTester(
21-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
22+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2223
)
2324
(
2425
tester.export()

backends/samsung/test/models/test_mobilenet_v3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
gen_samsung_backend_compile_spec,
1515
)
1616
from executorch.backends.samsung.test.tester import SamsungTester
17+
from executorch.backends.samsung.test.utils.utils import TestConfig
1718
from executorch.examples.models.mobilenet_v3 import MV3Model
1819

1920

@@ -23,7 +24,7 @@ def test_mv3_fp16(self):
2324
model = MV3Model().get_eager_model()
2425
example_input = MV3Model().get_example_inputs()
2526
tester = SamsungTester(
26-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
27+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2728
)
2829
(
2930
tester.export()

backends/samsung/test/models/test_resnet18.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
gen_samsung_backend_compile_spec,
1313
)
1414
from executorch.backends.samsung.test.tester import SamsungTester
15+
from executorch.backends.samsung.test.utils.utils import TestConfig
1516
from executorch.examples.models.resnet import ResNet18Model
1617

1718

@@ -20,7 +21,7 @@ def test_resnet18_fp16(self):
2021
model = ResNet18Model().get_eager_model()
2122
example_input = ResNet18Model().get_example_inputs()
2223
tester = SamsungTester(
23-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
24+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2425
)
2526
(
2627
tester.export()

backends/samsung/test/models/test_resnet50.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
gen_samsung_backend_compile_spec,
1313
)
1414
from executorch.backends.samsung.test.tester import SamsungTester
15+
from executorch.backends.samsung.test.utils.utils import TestConfig
1516
from executorch.examples.models.resnet import ResNet50Model
1617

1718

@@ -20,7 +21,7 @@ def test_resnet50_fp16(self):
2021
model = ResNet50Model().get_eager_model()
2122
example_input = ResNet50Model().get_example_inputs()
2223
tester = SamsungTester(
23-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
24+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2425
)
2526
(
2627
tester.export()

backends/samsung/test/models/test_torchvision_vit.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
gen_samsung_backend_compile_spec,
1212
)
1313
from executorch.backends.samsung.test.tester import SamsungTester
14+
from executorch.backends.samsung.test.utils.utils import TestConfig
1415
from executorch.examples.models.torchvision_vit import TorchVisionViTModel
1516

1617

@@ -20,7 +21,7 @@ def test_torchvision_vit_fp16(self):
2021
model = TorchVisionViTModel().get_eager_model()
2122
example_input = TorchVisionViTModel().get_example_inputs()
2223
tester = SamsungTester(
23-
model, example_input, [gen_samsung_backend_compile_spec("E9955")]
24+
model, example_input, [gen_samsung_backend_compile_spec(TestConfig.chipset)]
2425
)
2526
(
2627
tester.export()

0 commit comments

Comments
 (0)