Skip to content

Commit 8ccf38f

Browse files
chenweng-quicCheng-Hsin Weng
andauthored
Qualcomm AI Engine Direct - Remove input_list dependencies (#13411)
### Summary - Current SimpleADB push logic require each script to prepare input_list, and the name must follow the logic. Remove all these dependencies. ### Test plan All existing unit tests should already cover this change. Co-authored-by: Cheng-Hsin Weng <[email protected]>
1 parent 0856f59 commit 8ccf38f

Some content is hidden

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

47 files changed

+139
-204
lines changed

backends/qualcomm/debugger/utils.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,6 @@ def qnn_context_binary_generator(
267267
assert os.path.isfile(f"{self.tmp_dir}/{binary_name}.bin"), result.stderr
268268

269269
def qnn_net_run(self, graph_name="forward.serialized"):
270-
input_list = ""
271-
for idx, _ in enumerate(self.sample_input):
272-
input_name = f"input_{idx}_0.raw"
273-
input_list += input_name + " "
274-
input_list = input_list.strip() + "\n"
275270

276271
self.config["backend_extension_config"]["backend_extensions"][
277272
"shared_library_path"
@@ -304,7 +299,6 @@ def qnn_net_run(self, graph_name="forward.serialized"):
304299
]
305300
self.adb.push(
306301
inputs=self.sample_input,
307-
input_list=input_list,
308302
files=files,
309303
)
310304
self.adb.execute(custom_runner_cmd=" ".join(cmds))

backends/qualcomm/tests/utils.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,6 @@ def _save_model_and_expected_output(
193193
inputs: Tuple[torch.Tensor],
194194
dir_name: str,
195195
) -> None:
196-
# Save the input data list to be executed
197-
input_list = ""
198-
for idx, _ in enumerate(inputs):
199-
input_name = f"input_0_{idx}.raw"
200-
input_list += input_name + " "
201-
input_list = input_list.strip() + "\n"
202-
203196
ref_output = module(*inputs)
204197

205198
# Save the expected output data to be verified
@@ -216,7 +209,7 @@ def _save_model_and_expected_output(
216209
with open(pte_fname, "wb") as file:
217210
file.write(buffer)
218211

219-
return input_list, ref_outputs, pte_fname
212+
return ref_outputs, pte_fname
220213

221214
def required_envs(self, conditions=None) -> bool:
222215
conditions = [] if conditions is None else conditions
@@ -247,7 +240,6 @@ def verify_output( # noqa: C901
247240
):
248241
with tempfile.TemporaryDirectory() as tmp_dir:
249242
(
250-
input_list,
251243
ref_outputs,
252244
pte_fname,
253245
) = self._save_model_and_expected_output(
@@ -319,9 +311,7 @@ def validate_intermediate_tensor():
319311
)
320312

321313
if self.enable_x86_64:
322-
generate_inputs(
323-
tmp_dir, "input_list.txt", [processed_inputs], input_list
324-
)
314+
generate_inputs(tmp_dir, "input_list.txt", [processed_inputs])
325315
make_output_dir(output_dir)
326316

327317
target = "x86_64-linux-clang"
@@ -434,7 +424,6 @@ def validate_intermediate_tensor():
434424
)
435425
adb.push(
436426
inputs=[processed_inputs],
437-
input_list=input_list,
438427
files=op_package_paths,
439428
)
440429
adb.extra_cmds += extra_cmds

examples/qualcomm/custom_op/custom_ops_1.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,6 @@ def annotate_custom(gm: torch.fx.GraphModule) -> None:
102102
)
103103

104104

105-
def create_device_inputs(example_inputs):
106-
input_list = ""
107-
for idx, _ in enumerate(example_inputs):
108-
input_name = f"input_0_{idx}.raw"
109-
input_list += input_name + " "
110-
input_list = input_list.strip() + "\n"
111-
return input_list
112-
113-
114105
def _run(cmd, cwd=None):
115106
subprocess.run(cmd, stdout=sys.stdout, cwd=cwd, check=True)
116107

@@ -204,7 +195,6 @@ def main(args):
204195
sample_input = (torch.ones(1, 32, 28, 28),)
205196
workspace = f"/data/local/tmp/executorch/{pte_filename}"
206197

207-
input_list = create_device_inputs(sample_input)
208198
soc_info = _soc_info_table[getattr(QcomChipset, args.model)]
209199

210200
op_package_options, op_package_paths = prepare_op_package(
@@ -237,8 +227,7 @@ def main(args):
237227

238228
if args.enable_x86_64:
239229
input_list_filename = "input_list.txt"
240-
input_list = f"{args.artifact}/{input_list}"
241-
generate_inputs(args.artifact, input_list_filename, sample_input, input_list)
230+
generate_inputs(args.artifact, input_list_filename, sample_input)
242231
qnn_sdk = os.getenv("QNN_SDK_ROOT")
243232
assert qnn_sdk, "QNN_SDK_ROOT was not found in environment variable"
244233
target = "x86_64-linux-clang"
@@ -276,7 +265,7 @@ def main(args):
276265
host_id=args.host,
277266
soc_model=args.model,
278267
)
279-
adb.push(inputs=sample_input, input_list=input_list, files=op_package_paths)
268+
adb.push(inputs=sample_input, files=op_package_paths)
280269
adb.execute()
281270
adb.pull(output_path=args.artifact)
282271

examples/qualcomm/oss_scripts/albert.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def main(args):
5151
"This option is for CI to verify the export flow. It uses random input and will result in poor accuracy."
5252
)
5353
else:
54-
inputs, targets, input_list = get_masked_language_model_dataset(
54+
inputs, targets = get_masked_language_model_dataset(
5555
args.dataset, tokenizer, data_size
5656
)
5757

@@ -94,7 +94,7 @@ def main(args):
9494
make_output_dir(output_data_folder)
9595

9696
# accuracy analysis
97-
adb.push(inputs=inputs, input_list=input_list)
97+
adb.push(inputs=inputs)
9898
adb.execute()
9999
adb.pull(output_path=args.artifact)
100100
# since the original nn.Module could not perform well on this task either

examples/qualcomm/oss_scripts/bert.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def main(args):
5050
"This option is for CI to verify the export flow. It uses random input and will result in poor accuracy."
5151
)
5252
else:
53-
inputs, targets, input_list = get_masked_language_model_dataset(
53+
inputs, targets = get_masked_language_model_dataset(
5454
args.dataset, tokenizer, data_size
5555
)
5656
module = AutoModelForMaskedLM.from_pretrained(
@@ -92,7 +92,7 @@ def main(args):
9292
make_output_dir(output_data_folder)
9393

9494
# accuracy analysis
95-
adb.push(inputs=inputs, input_list=input_list)
95+
adb.push(inputs=inputs)
9696
adb.execute()
9797
adb.pull(output_path=args.artifact)
9898
goldens, predictions = [], []

examples/qualcomm/oss_scripts/conv_former.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def main(args):
5151
"This option is for CI to verify the export flow. It uses random input and will result in poor accuracy."
5252
)
5353
else:
54-
inputs, targets, input_list = get_imagenet_dataset(
54+
inputs, targets = get_imagenet_dataset(
5555
dataset_path=f"{args.dataset}",
5656
data_size=data_num,
5757
image_shape=(256, 256),
@@ -89,7 +89,7 @@ def main(args):
8989
soc_model=args.model,
9090
shared_buffer=args.shared_buffer,
9191
)
92-
adb.push(inputs=inputs, input_list=input_list)
92+
adb.push(inputs=inputs)
9393
adb.execute()
9494

9595
# collect output data

examples/qualcomm/oss_scripts/cvt.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def main(args):
106106
"This option is for CI to verify the export flow. It uses random input and will result in poor accuracy."
107107
)
108108
else:
109-
inputs, targets, input_list = get_imagenet_dataset(
109+
inputs, targets = get_imagenet_dataset(
110110
dataset_path=f"{args.dataset}",
111111
data_size=data_num,
112112
image_shape=(256, 256),
@@ -146,7 +146,7 @@ def main(args):
146146
soc_model=args.model,
147147
shared_buffer=args.shared_buffer,
148148
)
149-
adb.push(inputs=inputs, input_list=input_list)
149+
adb.push(inputs=inputs)
150150
adb.execute()
151151

152152
# collect output data

examples/qualcomm/oss_scripts/deit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def main(args):
5555
"This option is for CI to verify the export flow. It uses random input and will result in poor accuracy."
5656
)
5757
else:
58-
inputs, targets, input_list = get_imagenet_dataset(
58+
inputs, targets = get_imagenet_dataset(
5959
dataset_path=f"{args.dataset}",
6060
data_size=data_num,
6161
image_shape=(height, width),
@@ -96,7 +96,7 @@ def main(args):
9696
host_id=args.host,
9797
soc_model=args.model,
9898
)
99-
adb.push(inputs=inputs, input_list=input_list)
99+
adb.push(inputs=inputs)
100100
adb.execute()
101101

102102
# collect output data

examples/qualcomm/oss_scripts/dino_v2.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def main(args):
4949
)
5050

5151
img_size, data_num = 224, 100
52-
inputs, targets, input_list = get_imagenet_dataset(
52+
inputs, targets = get_imagenet_dataset(
5353
dataset_path=f"{args.dataset}",
5454
data_size=data_num,
5555
image_shape=(256, 256),
@@ -85,7 +85,7 @@ def main(args):
8585
host_id=args.host,
8686
soc_model=args.model,
8787
)
88-
adb.push(inputs=inputs, input_list=input_list)
88+
adb.push(inputs=inputs)
8989
adb.execute()
9090

9191
# collect output data

examples/qualcomm/oss_scripts/distilbert.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def main(args):
5050
"This option is for CI to verify the export flow. It uses random input and will result in poor accuracy."
5151
)
5252
else:
53-
inputs, targets, input_list = get_masked_language_model_dataset(
53+
inputs, targets = get_masked_language_model_dataset(
5454
args.dataset, tokenizer, data_size
5555
)
5656
module = AutoModelForMaskedLM.from_pretrained(
@@ -92,7 +92,7 @@ def main(args):
9292
make_output_dir(output_data_folder)
9393

9494
# accuracy analysis
95-
adb.push(inputs=inputs, input_list=input_list)
95+
adb.push(inputs=inputs)
9696
adb.execute()
9797
adb.pull(output_path=args.artifact)
9898
goldens, predictions = [], []

0 commit comments

Comments
 (0)