xref: /aosp_15_r20/external/executorch/backends/qualcomm/partition/utils.py (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Qualcomm Innovation Center, Inc.
2*523fa7a6SAndroid Build Coastguard Worker# All rights reserved
3*523fa7a6SAndroid Build Coastguard Worker#
4*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the
5*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree.
6*523fa7a6SAndroid Build Coastguard Worker
7*523fa7a6SAndroid Build Coastguard Workerfrom typing import List
8*523fa7a6SAndroid Build Coastguard Worker
9*523fa7a6SAndroid Build Coastguard Workerfrom executorch.backends.qualcomm.utils.constants import QCOM_QNN_COMPILE_SPEC
10*523fa7a6SAndroid Build Coastguard Worker
11*523fa7a6SAndroid Build Coastguard Workerfrom executorch.exir.backend.compile_spec_schema import CompileSpec
12*523fa7a6SAndroid Build Coastguard Worker
13*523fa7a6SAndroid Build Coastguard Worker
14*523fa7a6SAndroid Build Coastguard Workerdef generate_qnn_executorch_option(
15*523fa7a6SAndroid Build Coastguard Worker    compiler_specs: List[CompileSpec],
16*523fa7a6SAndroid Build Coastguard Worker) -> bytes:
17*523fa7a6SAndroid Build Coastguard Worker    for compiler_spec in compiler_specs:
18*523fa7a6SAndroid Build Coastguard Worker        if compiler_spec.key == QCOM_QNN_COMPILE_SPEC:
19*523fa7a6SAndroid Build Coastguard Worker            qnn_compile_spec_buffer = compiler_spec.value
20*523fa7a6SAndroid Build Coastguard Worker        else:
21*523fa7a6SAndroid Build Coastguard Worker            raise ValueError(f"unknown compiler spec key value: {compiler_spec.key}")
22*523fa7a6SAndroid Build Coastguard Worker    return qnn_compile_spec_buffer
23