| # 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 |
| |
| ################################################################################ |
| # # |
| # Default benchmark configurations # |
| # # |
| # Each suite benchmarks a list of modules with configurations specifying a # |
| # target architecture and runtime characteristics (e.g. threads/cores). These # |
| # benchmarks only configure IREE compilation and runtime flags for the target # |
| # architecture and do *not* include any non-default flags. No non-default # |
| # flags should be added here. # |
| # # |
| ################################################################################ |
| |
| set(ANDROID_MALI_GPU_COMPILATION_FLAGS |
| "--iree-input-type=tosa" |
| "--iree-vulkan-target-triple=valhall-unknown-android31" |
| ) |
| |
| # GPU, Vulkan, Mali, full-inference |
| iree_benchmark_suite( |
| GROUP_NAME |
| "android-mali" |
| |
| MODULES |
| "${DEEPLABV3_FP32_MODULE}" |
| "${MOBILESSD_FP32_MODULE}" |
| "${POSENET_FP32_MODULE}" |
| "${MOBILEBERT_FP32_MODULE}" |
| "${MOBILENET_V2_MODULE}" |
| "${MOBILENET_V3SMALL_MODULE}" |
| |
| BENCHMARK_MODES |
| "full-inference,default-flags" |
| TARGET_BACKEND |
| "vulkan-spirv" |
| TARGET_ARCHITECTURE |
| "GPU-Mali-Valhall" |
| COMPILATION_FLAGS |
| ${ANDROID_MALI_GPU_COMPILATION_FLAGS} |
| BENCHMARK_TOOL |
| iree-benchmark-module |
| CONFIG |
| "iree-vulkan" |
| DRIVER |
| "vulkan" |
| ) |
| |
| # GPU, Vulkan, Mali, full-inference |
| iree_benchmark_suite( |
| GROUP_NAME |
| "android-mali" |
| |
| MODULES |
| "${MOBILEBERT_FP16_MODULE}" |
| |
| BENCHMARK_MODES |
| "full-inference,default-flags" |
| TARGET_BACKEND |
| "vulkan-spirv" |
| TARGET_ARCHITECTURE |
| "GPU-Mali-Valhall" |
| COMPILATION_FLAGS |
| ${ANDROID_MALI_GPU_COMPILATION_FLAGS} |
| # This isn't a special optimization flag. It's so we can reuse the same f32 |
| # model file. See comments on MOBILEBERT_FP16_MODULE |
| "--iree-flow-demote-f32-to-f16" |
| BENCHMARK_TOOL |
| iree-benchmark-module |
| CONFIG |
| "iree-vulkan" |
| DRIVER |
| "vulkan" |
| ) |
| |
| ################################################################################ |
| |
| ################################################################################ |
| # # |
| # Specialized benchmark configurations # |
| # # |
| # Each suite benchmarks one or more module with configurations that can vary # |
| # on model or architecture characteristics. These are intended for providing # |
| # continuous benchmarks of experimental features that cannot be turned on by # |
| # default yet. It is primarily intended for whoever is actively investigating # |
| # optimizations for a feature exemplified in a specific model or architecture. # |
| # Due to our current benchmark setup, there can only be one experimental # |
| # configuration per model and other benchmark mode. # |
| # # |
| ################################################################################ |
| |
| # GPU, Vulkan, Mali, full-inference |
| iree_benchmark_suite( |
| GROUP_NAME |
| "android-mali" |
| |
| MODULES |
| "${DEEPLABV3_FP32_MODULE}" |
| "${MOBILESSD_FP32_MODULE}" |
| "${POSENET_FP32_MODULE}" |
| "${MOBILEBERT_FP32_MODULE}" |
| "${MOBILENET_V2_MODULE}" |
| "${MOBILENET_V3SMALL_MODULE}" |
| |
| BENCHMARK_MODES |
| "full-inference,experimental-flags" |
| TARGET_BACKEND |
| "vulkan-spirv" |
| TARGET_ARCHITECTURE |
| "GPU-Mali-Valhall" |
| COMPILATION_FLAGS |
| ${ANDROID_MALI_GPU_COMPILATION_FLAGS} |
| "--iree-flow-enable-fuse-padding-into-linalg-consumer-ops" |
| BENCHMARK_TOOL |
| iree-benchmark-module |
| CONFIG |
| "iree-vulkan" |
| DRIVER |
| "vulkan" |
| ) |
| |
| iree_benchmark_suite( |
| GROUP_NAME |
| "android-mali" |
| |
| MODULES |
| "${MOBILEBERT_FP16_MODULE}" |
| |
| BENCHMARK_MODES |
| "full-inference,experimental-flags" |
| TARGET_BACKEND |
| "vulkan-spirv" |
| TARGET_ARCHITECTURE |
| "GPU-Mali-Valhall" |
| COMPILATION_FLAGS |
| "--iree-input-type=tosa" |
| "--iree-flow-demote-f32-to-f16" |
| "--iree-vulkan-target-triple=valhall-unknown-android31" |
| "--iree-flow-enable-fuse-padding-into-linalg-consumer-ops" |
| BENCHMARK_TOOL |
| iree-benchmark-module |
| CONFIG |
| "iree-vulkan" |
| DRIVER |
| "vulkan" |
| ) |
| |
| # kernel-execution |
| |
| # Note that for kernel-execution benchmarks batch_size/repeat-count need to be |
| # low enough that the whole dispatch completes within an OS-specific timeout. |
| # Otherwise you'll get error like: |
| # ``` |
| # INTERNAL; VK_ERROR_DEVICE_LOST; vkQueueSubmit; while invoking native function |
| # hal.ex.submit_and_wait; while calling import; |
| # ``` |
| |
| # GPU, Vulkan, Mali, kernel-execution |
| iree_benchmark_suite( |
| GROUP_NAME |
| "android-mali" |
| |
| MODULES |
| "${DEEPLABV3_FP32_MODULE}" |
| "${MOBILESSD_FP32_MODULE}" |
| "${POSENET_FP32_MODULE}" |
| "${MOBILEBERT_FP32_MODULE}" |
| "${MOBILENET_V2_MODULE}" |
| "${MOBILENET_V3SMALL_MODULE}" |
| |
| BENCHMARK_MODES |
| "kernel-execution,experimental-flags" |
| TARGET_BACKEND |
| "vulkan-spirv" |
| TARGET_ARCHITECTURE |
| "GPU-Mali-Valhall" |
| COMPILATION_FLAGS |
| ${ANDROID_MALI_GPU_COMPILATION_FLAGS} |
| "--iree-flow-enable-fuse-padding-into-linalg-consumer-ops" |
| "--iree-hal-benchmark-dispatch-repeat-count=32" |
| BENCHMARK_TOOL |
| iree-benchmark-module |
| CONFIG |
| "iree-vulkan" |
| DRIVER |
| "vulkan" |
| RUNTIME_FLAGS |
| "--batch_size=32" |
| ) |
| |
| iree_benchmark_suite( |
| GROUP_NAME |
| "android-mali" |
| |
| MODULES |
| "${MOBILEBERT_FP16_MODULE}" |
| |
| BENCHMARK_MODES |
| "kernel-execution,experimental-flags" |
| TARGET_BACKEND |
| "vulkan-spirv" |
| TARGET_ARCHITECTURE |
| "GPU-Mali-Valhall" |
| COMPILATION_FLAGS |
| "--iree-input-type=tosa" |
| "--iree-flow-demote-f32-to-f16" |
| "--iree-vulkan-target-triple=valhall-unknown-android31" |
| "--iree-flow-enable-fuse-padding-into-linalg-consumer-ops" |
| "--iree-hal-benchmark-dispatch-repeat-count=32" |
| BENCHMARK_TOOL |
| iree-benchmark-module |
| CONFIG |
| "iree-vulkan" |
| DRIVER |
| "vulkan" |
| RUNTIME_FLAGS |
| "--batch_size=32" |
| ) |
| |
| ################################################################################ |