|
11 | 11 | from enum import Enum |
12 | 12 |
|
13 | 13 | from utils.utils import run, git_clone, create_build_path |
14 | | -from utils.logger import log |
15 | 14 | from .base import Benchmark, Suite, TracingType |
16 | 15 | from utils.result import BenchmarkMetadata, Result |
17 | 16 | from .base import Benchmark, Suite |
@@ -97,7 +96,7 @@ def setup(self) -> None: |
97 | 96 | run(configure_command, add_sycl=True) |
98 | 97 |
|
99 | 98 | run( |
100 | | - f"cmake --build {build_path} -j {options.build_jobs} -- -k -i ", |
| 99 | + f"cmake --build {build_path} -j {options.build_jobs}", |
101 | 100 | add_sycl=True, |
102 | 101 | ) |
103 | 102 |
|
@@ -310,23 +309,17 @@ def __init__(self, bench, name, test, runtime: RUNTIMES = None): |
310 | 309 | # Subclasses MUST set both `self.iterations_regular` and |
311 | 310 | # `self.iterations_trace` (positive ints) in their __init__ before |
312 | 311 | # calling super().__init__(). The base class enforces this. |
313 | | - if ( |
314 | | - not hasattr(self, "iterations_regular") |
315 | | - or not isinstance(getattr(self, "iterations_regular", None), int) |
316 | | - or getattr(self, "iterations_regular", 0) <= 0 |
317 | | - ): |
318 | | - raise ValueError( |
319 | | - f"{self.bench_name}: subclasses must set `iterations_regular` (positive int) before calling super().__init__" |
320 | | - ) |
321 | 312 |
|
322 | | - if ( |
323 | | - not hasattr(self, "iterations_trace") |
324 | | - or not isinstance(getattr(self, "iterations_trace", None), int) |
325 | | - or getattr(self, "iterations_trace", 0) <= 0 |
326 | | - ): |
327 | | - raise ValueError( |
328 | | - f"{self.bench_name}: subclasses must set `iterations_trace` (positive int) before calling super().__init__" |
329 | | - ) |
| 313 | + self._validate_attr("iterations_regular") |
| 314 | + self._validate_attr("iterations_trace") |
| 315 | + |
| 316 | + def get_iters(self, run_trace: TracingType): |
| 317 | + """Returns the number of iterations to run for the given tracing type.""" |
| 318 | + return ( |
| 319 | + self.iterations_trace |
| 320 | + if run_trace != TracingType.NONE |
| 321 | + else self.iterations_regular |
| 322 | + ) |
330 | 323 |
|
331 | 324 | def supported_runtimes(self) -> list[RUNTIMES]: |
332 | 325 | """Base runtimes supported by this benchmark, can be overridden.""" |
@@ -452,6 +445,16 @@ def parse_output(self, output): |
452 | 445 | def teardown(self): |
453 | 446 | return |
454 | 447 |
|
| 448 | + def _validate_attr(self, attr_name: str): |
| 449 | + if ( |
| 450 | + not hasattr(self, attr_name) |
| 451 | + or not isinstance(getattr(self, attr_name, None), int) |
| 452 | + or getattr(self, attr_name, 0) <= 0 |
| 453 | + ): |
| 454 | + raise ValueError( |
| 455 | + f"{self.bench_name}: subclasses must set `{attr_name}` (positive int) before calling super().__init__" |
| 456 | + ) |
| 457 | + |
455 | 458 |
|
456 | 459 | class SubmitKernel(ComputeBenchmark): |
457 | 460 | def __init__( |
@@ -541,11 +544,7 @@ def range(self) -> tuple[float, float]: |
541 | 544 | return (0.0, None) |
542 | 545 |
|
543 | 546 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
544 | | - iters = ( |
545 | | - self.iterations_trace |
546 | | - if run_trace != TracingType.NONE |
547 | | - else self.iterations_regular |
548 | | - ) |
| 547 | + iters = self.get_iters(run_trace) |
549 | 548 | return [ |
550 | 549 | f"--iterations={iters}", |
551 | 550 | f"--Ioq={self.ioq}", |
@@ -605,11 +604,7 @@ def get_tags(self): |
605 | 604 | return ["memory", "submit", "latency", "SYCL", "micro"] |
606 | 605 |
|
607 | 606 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
608 | | - iters = ( |
609 | | - self.iterations_trace |
610 | | - if run_trace != TracingType.NONE |
611 | | - else self.iterations_regular |
612 | | - ) |
| 607 | + iters = self.get_iters(run_trace) |
613 | 608 | return [ |
614 | 609 | f"--iterations={iters}", |
615 | 610 | f"--ioq={self.ioq}", |
@@ -650,11 +645,7 @@ def get_tags(self): |
650 | 645 | return ["memory", "latency", "SYCL", "micro"] |
651 | 646 |
|
652 | 647 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
653 | | - iters = ( |
654 | | - self.iterations_trace |
655 | | - if run_trace != TracingType.NONE |
656 | | - else self.iterations_regular |
657 | | - ) |
| 648 | + iters = self.get_iters(run_trace) |
658 | 649 | return [ |
659 | 650 | f"--iterations={iters}", |
660 | 651 | f"--IsCopyOnly={self.isCopyOnly}", |
@@ -692,11 +683,7 @@ def get_tags(self): |
692 | 683 | return ["memory", "latency", "SYCL", "micro"] |
693 | 684 |
|
694 | 685 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
695 | | - iters = ( |
696 | | - self.iterations_trace |
697 | | - if run_trace != TracingType.NONE |
698 | | - else self.iterations_regular |
699 | | - ) |
| 686 | + iters = self.get_iters(run_trace) |
700 | 687 | return [ |
701 | 688 | f"--iterations={iters}", |
702 | 689 | f"--sourcePlacement={self.source}", |
@@ -735,11 +722,7 @@ def get_tags(self): |
735 | 722 | return ["memory", "throughput", "SYCL", "micro"] |
736 | 723 |
|
737 | 724 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
738 | | - iters = ( |
739 | | - self.iterations_trace |
740 | | - if run_trace != TracingType.NONE |
741 | | - else self.iterations_regular |
742 | | - ) |
| 725 | + iters = self.get_iters(run_trace) |
743 | 726 | return [ |
744 | 727 | f"--iterations={iters}", |
745 | 728 | f"--type={self.type}", |
@@ -775,11 +758,7 @@ def get_tags(self): |
775 | 758 | return ["math", "throughput", "SYCL", "micro"] |
776 | 759 |
|
777 | 760 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
778 | | - iters = ( |
779 | | - self.iterations_trace |
780 | | - if run_trace != TracingType.NONE |
781 | | - else self.iterations_regular |
782 | | - ) |
| 761 | + iters = self.get_iters(run_trace) |
783 | 762 | return [ |
784 | 763 | f"--iterations={iters}", |
785 | 764 | "--numberOfElementsX=512", |
@@ -873,11 +852,7 @@ def get_tags(self): |
873 | 852 | return ["memory", "latency", runtime_to_tag_name(self.runtime), "micro"] |
874 | 853 |
|
875 | 854 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
876 | | - iters = ( |
877 | | - self.iterations_trace |
878 | | - if run_trace != TracingType.NONE |
879 | | - else self.iterations_regular |
880 | | - ) |
| 855 | + iters = self.get_iters(run_trace) |
881 | 856 | return [ |
882 | 857 | f"--iterations={iters}", |
883 | 858 | "--Ioq=1", |
@@ -934,11 +909,7 @@ def get_tags(self): |
934 | 909 | ] |
935 | 910 |
|
936 | 911 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
937 | | - iters = ( |
938 | | - self.iterations_trace |
939 | | - if run_trace != TracingType.NONE |
940 | | - else self.iterations_regular |
941 | | - ) |
| 912 | + iters = self.get_iters(run_trace) |
942 | 913 | return [ |
943 | 914 | f"--iterations={iters}", |
944 | 915 | f"--numKernels={self.numKernels}", |
@@ -1002,11 +973,7 @@ def get_tags(self): |
1002 | 973 | ] |
1003 | 974 |
|
1004 | 975 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
1005 | | - iters = ( |
1006 | | - self.iterations_trace |
1007 | | - if run_trace != TracingType.NONE |
1008 | | - else self.iterations_regular |
1009 | | - ) |
| 976 | + iters = self.get_iters(run_trace) |
1010 | 977 | return [ |
1011 | 978 | f"--iterations={iters}", |
1012 | 979 | f"--NumKernels={self.numKernels}", |
@@ -1052,11 +1019,7 @@ def get_tags(self): |
1052 | 1019 | return [runtime_to_tag_name(self.runtime), "micro", "latency", "submit"] |
1053 | 1020 |
|
1054 | 1021 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
1055 | | - iters = ( |
1056 | | - self.iterations_trace |
1057 | | - if run_trace != TracingType.NONE |
1058 | | - else self.iterations_regular |
1059 | | - ) |
| 1022 | + iters = self.get_iters(run_trace) |
1060 | 1023 | return [ |
1061 | 1024 | f"--iterations={iters}", |
1062 | 1025 | f"--wgs={self.wgs}", |
@@ -1108,11 +1071,7 @@ def get_tags(self): |
1108 | 1071 | return [runtime_to_tag_name(self.runtime), "micro", "latency", "submit"] |
1109 | 1072 |
|
1110 | 1073 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
1111 | | - iters = ( |
1112 | | - self.iterations_trace |
1113 | | - if run_trace != TracingType.NONE |
1114 | | - else self.iterations_regular |
1115 | | - ) |
| 1074 | + iters = self.get_iters(run_trace) |
1116 | 1075 | return [ |
1117 | 1076 | f"--iterations={iters}", |
1118 | 1077 | f"--count={self.count}", |
@@ -1172,11 +1131,7 @@ def description(self) -> str: |
1172 | 1131 | ) |
1173 | 1132 |
|
1174 | 1133 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
1175 | | - iters = ( |
1176 | | - self.iterations_trace |
1177 | | - if run_trace != TracingType.NONE |
1178 | | - else self.iterations_regular |
1179 | | - ) |
| 1134 | + iters = self.get_iters(run_trace) |
1180 | 1135 | return [ |
1181 | 1136 | f"--iterations={iters}", |
1182 | 1137 | f"--type={self.usm_memory_placement}", |
@@ -1240,11 +1195,7 @@ def description(self) -> str: |
1240 | 1195 | ) |
1241 | 1196 |
|
1242 | 1197 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
1243 | | - iters = ( |
1244 | | - self.iterations_trace |
1245 | | - if run_trace != TracingType.NONE |
1246 | | - else self.iterations_regular |
1247 | | - ) |
| 1198 | + iters = self.get_iters(run_trace) |
1248 | 1199 | return [ |
1249 | 1200 | f"--iterations={iters}", |
1250 | 1201 | f"--type={self.usm_memory_placement}", |
@@ -1316,11 +1267,7 @@ def get_tags(self): |
1316 | 1267 | ] |
1317 | 1268 |
|
1318 | 1269 | def bin_args(self, run_trace: TracingType = TracingType.NONE) -> list[str]: |
1319 | | - iters = ( |
1320 | | - self.iterations_trace |
1321 | | - if run_trace != TracingType.NONE |
1322 | | - else self.iterations_regular |
1323 | | - ) |
| 1270 | + iters = self.get_iters(run_trace) |
1324 | 1271 | return [ |
1325 | 1272 | f"--iterations={iters}", |
1326 | 1273 | f"--rebuildGraphEveryIter={self.rebuild_graph_every_iteration}", |
|
0 commit comments