Skip to content

Commit 0650248

Browse files
committed
tools: Autotuner: Update smoke tests to use AutoTuner as module
Signed-off-by: Eryk Szpotanski <[email protected]>
1 parent 23d44fa commit 0650248

File tree

4 files changed

+34
-96
lines changed

4 files changed

+34
-96
lines changed

tools/AutoTuner/test/smoke_test_algo_eval.py

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import os
44

55
cur_dir = os.path.dirname(os.path.abspath(__file__))
6-
src_dir = os.path.join(cur_dir, "../src/autotuner")
76
orfs_dir = os.path.join(cur_dir, "../../../flow")
8-
os.chdir(src_dir)
97

108

119
class BaseAlgoEvalSmokeTest(unittest.TestCase):
@@ -22,7 +20,7 @@ def setUp(self):
2220
_eval = ["default", "ppa-improv"]
2321
self.matrix = [(a, e) for a in _algo for e in _eval]
2422
self.commands = [
25-
f"python3 distributed.py"
23+
f"python3 -m autotuner.distributed"
2624
f" --design {self.design}"
2725
f" --platform {self.platform}"
2826
f" --experiment {self.experiment}"
@@ -34,23 +32,18 @@ def setUp(self):
3432
]
3533

3634
def make_base(self):
37-
os.chdir(orfs_dir)
3835
commands = [
39-
f"make DESIGN_CONFIG=./designs/{self.platform}/{self.design}/config.mk clean_all",
40-
f"make DESIGN_CONFIG=./designs/{self.platform}/{self.design}/config.mk EQUIVALENCE_CHECK=0",
41-
f"make DESIGN_CONFIG=./designs/{self.platform}/{self.design}/config.mk update_metadata_autotuner",
36+
f"make -C {orfs_dir} DESIGN_CONFIG=./designs/{self.platform}/{self.design}/config.mk clean_all",
37+
f"make -C {orfs_dir} DESIGN_CONFIG=./designs/{self.platform}/{self.design}/config.mk EQUIVALENCE_CHECK=0",
38+
f"make -C {orfs_dir} DESIGN_CONFIG=./designs/{self.platform}/{self.design}/config.mk update_metadata_autotuner",
4239
]
4340
for command in commands:
4441
out = subprocess.run(command, shell=True, check=True)
4542
self.assertTrue(out.returncode == 0)
46-
os.chdir(src_dir)
47-
48-
49-
class ASAP7AlgoEvalSmokeTest(BaseAlgoEvalSmokeTest):
50-
platform = "asap7"
51-
design = "gcd"
5243

5344
def test_algo_eval(self):
45+
if not (self.platform and self.design):
46+
raise unittest.SkipTest("Platform and design have to be defined")
5447
# Run `make` to get baseline metrics (metadata-base-ok.json)
5548
self.make_base()
5649
for command in self.commands:
@@ -60,33 +53,20 @@ def test_algo_eval(self):
6053
self.assertTrue(successful)
6154

6255

56+
class ASAP7AlgoEvalSmokeTest(BaseAlgoEvalSmokeTest):
57+
platform = "asap7"
58+
design = "gcd"
59+
60+
6361
class IHPSG13G2AlgoEvalSmokeTest(BaseAlgoEvalSmokeTest):
6462
platform = "ihp-sg13g2"
6563
design = "gcd"
6664

67-
def test_algo_eval(self):
68-
# Run `make` to get baseline metrics (metadata-base-ok.json)
69-
self.make_base()
70-
for command in self.commands:
71-
print(command)
72-
out = subprocess.run(command, shell=True, check=True)
73-
successful = out.returncode == 0
74-
self.assertTrue(successful)
75-
7665

7766
class SKY130HDAlgoEvalSmokeTest(BaseAlgoEvalSmokeTest):
7867
platform = "sky130hd"
7968
design = "gcd"
8069

81-
def test_algo_eval(self):
82-
# Run `make` to get baseline metrics (metadata-base-ok.json)
83-
self.make_base()
84-
for command in self.commands:
85-
print(command)
86-
out = subprocess.run(command, shell=True, check=True)
87-
successful = out.returncode == 0
88-
self.assertTrue(successful)
89-
9070

9171
if __name__ == "__main__":
9272
unittest.main()

tools/AutoTuner/test/smoke_test_sample_iteration.py

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import os
44

55
cur_dir = os.path.dirname(os.path.abspath(__file__))
6-
src_dir = os.path.join(cur_dir, "../src/autotuner")
7-
os.chdir(src_dir)
86

97

108
class BaseSampleIterationSmokeTest(unittest.TestCase):
@@ -19,7 +17,7 @@ def setUp(self):
1917
self.experiment = f"smoke-test-sample-iteration-{self.platform}"
2018
self.matrix = [(5, 1), (1, 5), (2, 2), (1, 1)]
2119
self.commands = [
22-
f"python3 distributed.py"
20+
f"python3 -m autotuner.distributed"
2321
f" --design {self.design}"
2422
f" --platform {self.platform}"
2523
f" --experiment {self.experiment}"
@@ -28,42 +26,30 @@ def setUp(self):
2826
for s, i in self.matrix
2927
]
3028

31-
32-
class ASAP7SampleIterationSmokeTest(BaseSampleIterationSmokeTest):
33-
platform = "asap7"
34-
design = "gcd"
35-
3629
def test_sample_iteration(self):
30+
if not (self.platform and self.design):
31+
raise unittest.SkipTest("Platform and design have to be defined")
3732
for command in self.commands:
3833
print(command)
3934
out = subprocess.run(command, shell=True, check=True)
4035
successful = out.returncode == 0
4136
self.assertTrue(successful)
4237

4338

39+
class ASAP7SampleIterationSmokeTest(BaseSampleIterationSmokeTest):
40+
platform = "asap7"
41+
design = "gcd"
42+
43+
4444
class SKY130HDSampleIterationSmokeTest(BaseSampleIterationSmokeTest):
4545
platform = "sky130hd"
4646
design = "gcd"
4747

48-
def test_sample_iteration(self):
49-
for command in self.commands:
50-
print(command)
51-
out = subprocess.run(command, shell=True, check=True)
52-
successful = out.returncode == 0
53-
self.assertTrue(successful)
54-
5548

5649
class IHPSG13G2SampleIterationSmokeTest(BaseSampleIterationSmokeTest):
5750
platform = "ihp-sg13g2"
5851
design = "gcd"
5952

60-
def test_sample_iteration(self):
61-
for command in self.commands:
62-
print(command)
63-
out = subprocess.run(command, shell=True, check=True)
64-
successful = out.returncode == 0
65-
self.assertTrue(successful)
66-
6753

6854
if __name__ == "__main__":
6955
unittest.main()

tools/AutoTuner/test/smoke_test_sweep.py

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
import json
55

66
cur_dir = os.path.dirname(os.path.abspath(__file__))
7-
src_dir = os.path.join(cur_dir, "../src/autotuner")
8-
os.chdir(src_dir)
97

108

119
class BaseSweepSmokeTest(unittest.TestCase):
1210
platform = ""
1311
design = ""
1412

1513
def setUp(self):
16-
self.config = "distributed-sweep-example.json"
14+
self.config = os.path.abspath(
15+
os.path.join(cur_dir, "../src/autotuner/distributed-sweep-example.json")
16+
)
1717
# make sure this json only has 1 key called "CTS_CLUSTER_SIZE" and 4 possible values
1818
with open(self.config) as f:
1919
contents = json.load(f)
@@ -31,7 +31,7 @@ def setUp(self):
3131
self.jobs = 4 if core >= 4 else core
3232
self.experiment = f"smoke-test-sweep-{self.platform}"
3333
self.command = (
34-
"python3 distributed.py"
34+
"python3 -m autotuner.distributed"
3535
f" --design {self.design}"
3636
f" --platform {self.platform}"
3737
f" --experiment {self.experiment}"
@@ -41,40 +41,27 @@ def setUp(self):
4141
)
4242

4343
def test_sweep(self):
44-
raise NotImplementedError(
45-
"This method needs to be implemented in the derivative classes."
46-
)
44+
if not (self.platform and self.design):
45+
raise unittest.SkipTest("Platform and design have to be defined")
46+
out = subprocess.run(self.command, shell=True, check=True)
47+
successful = out.returncode == 0
48+
self.assertTrue(successful)
4749

4850

4951
class ASAP7SweepSmokeTest(BaseSweepSmokeTest):
5052
platform = "asap7"
5153
design = "gcd"
5254

53-
def test_sweep(self):
54-
out = subprocess.run(self.command, shell=True, check=True)
55-
successful = out.returncode == 0
56-
self.assertTrue(successful)
57-
5855

5956
class SKY130HDSweepSmokeTest(BaseSweepSmokeTest):
6057
platform = "sky130hd"
6158
design = "gcd"
6259

63-
def test_sweep(self):
64-
out = subprocess.run(self.command, shell=True, check=True)
65-
successful = out.returncode == 0
66-
self.assertTrue(successful)
67-
6860

6961
class IHPSG13G2SweepSmokeTest(BaseSweepSmokeTest):
7062
platform = "ihp-sg13g2"
7163
design = "gcd"
7264

73-
def test_sweep(self):
74-
out = subprocess.run(self.command, shell=True, check=True)
75-
successful = out.returncode == 0
76-
self.assertTrue(successful)
77-
7865

7966
if __name__ == "__main__":
8067
unittest.main()

tools/AutoTuner/test/smoke_test_tune.py

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import os
44

55
cur_dir = os.path.dirname(os.path.abspath(__file__))
6-
src_dir = os.path.join(cur_dir, "../src/autotuner")
7-
os.chdir(src_dir)
86

97

108
class BaseTuneSmokeTest(unittest.TestCase):
@@ -18,7 +16,7 @@ def setUp(self):
1816
)
1917
self.experiment = f"smoke-test-tune-{self.platform}"
2018
self.command = (
21-
"python3 distributed.py"
19+
"python3 -m autotuner.distributed"
2220
f" --design {self.design}"
2321
f" --platform {self.platform}"
2422
f" --experiment {self.experiment}"
@@ -27,40 +25,27 @@ def setUp(self):
2725
)
2826

2927
def test_tune(self):
30-
raise NotImplementedError(
31-
"This method needs to be implemented in the derivative classes."
32-
)
28+
if not (self.platform and self.design):
29+
raise unittest.SkipTest("Platform and design have to be defined")
30+
out = subprocess.run(self.command, shell=True, check=True)
31+
successful = out.returncode == 0
32+
self.assertTrue(successful)
3333

3434

3535
class ASAP7TuneSmokeTest(BaseTuneSmokeTest):
3636
platform = "asap7"
3737
design = "gcd"
3838

39-
def test_tune(self):
40-
out = subprocess.run(self.command, shell=True, check=True)
41-
successful = out.returncode == 0
42-
self.assertTrue(successful)
43-
4439

4540
class SKY130HDTuneSmokeTest(BaseTuneSmokeTest):
4641
platform = "sky130hd"
4742
design = "gcd"
4843

49-
def test_tune(self):
50-
out = subprocess.run(self.command, shell=True, check=True)
51-
successful = out.returncode == 0
52-
self.assertTrue(successful)
53-
5444

5545
class IHPSG13G2TuneSmokeTest(BaseTuneSmokeTest):
5646
platform = "ihp-sg13g2"
5747
design = "gcd"
5848

59-
def test_tune(self):
60-
out = subprocess.run(self.command, shell=True, check=True)
61-
successful = out.returncode == 0
62-
self.assertTrue(successful)
63-
6449

6550
if __name__ == "__main__":
6651
unittest.main()

0 commit comments

Comments
 (0)