blob: 0bfd7396067e98578823bde154303920cf770549 [file] [log] [blame]
## Copyright 2022 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
"""Defines IREE VMVX benchmarks."""
from typing import List, Tuple
from e2e_test_framework import unique_ids
from e2e_test_framework.definitions import common_definitions, iree_definitions
from e2e_test_framework.device_specs import device_collections
from e2e_test_framework.models import tflite_models
import benchmark_suites.iree.module_execution_configs
import benchmark_suites.iree.utils
class Android_VMVX_Benchmarks(object):
"""Benchmarks VMVX on Android devices."""
VMVX_CPU_TARGET = iree_definitions.CompileTarget(
target_backend=iree_definitions.TargetBackend.VMVX,
target_architecture=common_definitions.DeviceArchitecture.VMVX_GENERIC,
target_abi=iree_definitions.TargetABI.VMVX)
EXPERIMENTAL_COMPILE_CONFIG = iree_definitions.CompileConfig.build(
id=unique_ids.IREE_COMPILE_CONFIG_VMVX_GENERIC_EXPERIMENTAL,
tags=["experimental-flags"],
compile_targets=[VMVX_CPU_TARGET])
def generate(
self
) -> Tuple[List[iree_definitions.ModuleGenerationConfig],
List[iree_definitions.E2EModelRunConfig]]:
"""Generates IREE compile and run configs."""
gen_configs = [
iree_definitions.ModuleGenerationConfig.build(
compile_config=self.EXPERIMENTAL_COMPILE_CONFIG,
imported_model=iree_definitions.ImportedModel.from_model(model)) for
model in [tflite_models.MOBILENET_V2, tflite_models.MOBILENET_V3SMALL]
]
default_execution_configs = [
benchmark_suites.iree.module_execution_configs.
get_vmvx_system_scheduling_local_task_config(thread_num=4)
]
big_cores_devices = device_collections.DEFAULT_DEVICE_COLLECTION.query_device_specs(
architecture=common_definitions.DeviceArchitecture.ARMV8_2_A_GENERIC,
host_environment=common_definitions.HostEnvironment.ANDROID_ARMV8_2_A,
device_parameters={"big-cores"})
run_configs = benchmark_suites.iree.utils.generate_e2e_model_run_configs(
module_generation_configs=gen_configs,
module_execution_configs=default_execution_configs,
device_specs=big_cores_devices)
return (gen_configs, run_configs)