|
11 | 11 | from datetime import datetime |
12 | 12 |
|
13 | 13 | from pathlib import Path |
14 | | -from typing import Any |
| 14 | +from typing import Any, Optional |
15 | 15 |
|
16 | 16 | import pytest |
17 | 17 | from executorch.backends.arm.arm_backend import ArmCompileSpecBuilder |
@@ -92,63 +92,96 @@ def get_tosa_compile_spec_unbuilt( |
92 | 92 |
|
93 | 93 |
|
94 | 94 | def get_u55_compile_spec( |
95 | | - custom_path=None, |
| 95 | + macs: int = 128, |
| 96 | + system_config: str = "Ethos_U55_High_End_Embedded", |
| 97 | + memory_mode: str = "Shared_Sram", |
| 98 | + extra_flags:str = "--debug-force-regor --output-format=raw", |
| 99 | + custom_path: Optional[str] = None, |
96 | 100 | ) -> list[CompileSpec]: |
97 | 101 | """ |
98 | | - Default compile spec for Ethos-U55 tests. |
| 102 | + Compile spec for Ethos-U55. |
99 | 103 | """ |
100 | 104 | return get_u55_compile_spec_unbuilt( |
| 105 | + macs=macs, |
| 106 | + system_config=system_config, |
| 107 | + memory_mode=memory_mode, |
| 108 | + extra_flags=extra_flags, |
101 | 109 | custom_path=custom_path, |
102 | 110 | ).build() |
103 | 111 |
|
104 | 112 |
|
105 | 113 | def get_u85_compile_spec( |
| 114 | + macs: int = 128, |
| 115 | + system_config="Ethos_U85_SYS_DRAM_Mid", |
| 116 | + memory_mode="Shared_Sram", |
| 117 | + extra_flags="--output-format=raw", |
106 | 118 | custom_path=None, |
107 | 119 | ) -> list[CompileSpec]: |
108 | 120 | """ |
109 | | - Default compile spec for Ethos-U85 tests. |
| 121 | + Compile spec for Ethos-U85. |
110 | 122 | """ |
111 | 123 | return get_u85_compile_spec_unbuilt( # type: ignore[attr-defined] |
| 124 | + macs=macs, |
| 125 | + system_config=system_config, |
| 126 | + memory_mode=memory_mode, |
| 127 | + extra_flags=extra_flags, |
112 | 128 | custom_path=custom_path, |
113 | 129 | ).build() |
114 | 130 |
|
115 | 131 |
|
116 | 132 | def get_u55_compile_spec_unbuilt( |
117 | | - custom_path=None, |
| 133 | + macs: int, |
| 134 | + system_config: str, |
| 135 | + memory_mode: str, |
| 136 | + extra_flags:str, |
| 137 | + custom_path: Optional[str], |
118 | 138 | ) -> ArmCompileSpecBuilder: |
119 | 139 | """Get the ArmCompileSpecBuilder for the Ethos-U55 tests, to modify |
120 | 140 | the compile spec before calling .build() to finalize it. |
121 | 141 | """ |
122 | 142 | artifact_path = custom_path or tempfile.mkdtemp(prefix="arm_u55_") |
123 | 143 | if not os.path.exists(artifact_path): |
124 | 144 | os.makedirs(artifact_path, exist_ok=True) |
| 145 | + |
| 146 | + # https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u-vela/-/blob/main/OPTIONS.md |
| 147 | + assert macs in [32, 64, 128, 256], "Unsupported MACs value" |
| 148 | + |
125 | 149 | compile_spec = ( |
126 | 150 | ArmCompileSpecBuilder() |
127 | 151 | .ethosu_compile_spec( |
128 | | - "ethos-u55-128", |
129 | | - system_config="Ethos_U55_High_End_Embedded", |
130 | | - memory_mode="Shared_Sram", |
131 | | - extra_flags="--debug-force-regor --output-format=raw", |
| 152 | + f"ethos-u55-{macs}", |
| 153 | + system_config=system_config, |
| 154 | + memory_mode=memory_mode, |
| 155 | + extra_flags=extra_flags, |
132 | 156 | ) |
133 | 157 | .dump_intermediate_artifacts_to(artifact_path) |
134 | 158 | ) |
135 | 159 | return compile_spec |
136 | 160 |
|
137 | 161 |
|
138 | 162 | def get_u85_compile_spec_unbuilt( |
139 | | - custom_path=None, |
| 163 | + macs: int, |
| 164 | + system_config: str, |
| 165 | + memory_mode: str, |
| 166 | + extra_flags: str, |
| 167 | + custom_path: Optional[str], |
140 | 168 | ) -> list[CompileSpec]: |
141 | 169 | """Get the ArmCompileSpecBuilder for the Ethos-U85 tests, to modify |
142 | 170 | the compile spec before calling .build() to finalize it. |
143 | 171 | """ |
144 | 172 | artifact_path = custom_path or tempfile.mkdtemp(prefix="arm_u85_") |
| 173 | + if not os.path.exists(artifact_path): |
| 174 | + os.makedirs(artifact_path, exist_ok=True) |
| 175 | + |
| 176 | + assert macs in [128, 256, 512, 1024, 2048], "Unsupported MACs value" |
| 177 | + |
145 | 178 | compile_spec = ( |
146 | 179 | ArmCompileSpecBuilder() |
147 | 180 | .ethosu_compile_spec( |
148 | | - "ethos-u85-128", |
149 | | - system_config="Ethos_U85_SYS_DRAM_Mid", |
150 | | - memory_mode="Shared_Sram", |
151 | | - extra_flags="--output-format=raw", |
| 181 | + f"ethos-u85-{macs}", |
| 182 | + system_config=system_config, |
| 183 | + memory_mode=memory_mode, |
| 184 | + extra_flags=extra_flags, |
152 | 185 | ) |
153 | 186 | .dump_intermediate_artifacts_to(artifact_path) |
154 | 187 | ) |
|
0 commit comments