blob: 47fdbe6b04650a8c4061fc2983bd7d957abc528e [file] [log] [blame]
# Copyright 2021 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
# Pipeline steps for https://buildkite.com/iree/iree-benchmark
steps:
- label: "Build"
commands:
- "docker run --user=$(id -u):$(id -g) --volume=\\${HOME?}:\\${HOME?} --volume=/etc/passwd:/etc/passwd:ro --volume=/etc/group:/etc/group:ro --volume=\\$PWD:\\$IREE_DOCKER_WORKDIR --workdir=\\$IREE_DOCKER_WORKDIR --rm gcr.io/iree-oss/frontends@sha256:7a7a6d2fce60f3db82bfd2f18316231f9e4662cd9307b079d5adfbb6e119b817 build_tools/cmake/build_android_benchmark.sh"
- "tar --exclude='*.tar.gz' --exclude='*.tgz' --exclude='*.mlir' --exclude='*.tflite' --exclude='*tf-model' -czvf benchmark-suites-${BUILDKITE_BUILD_NUMBER}.tgz build-host/benchmark_suites"
- "find build-host/benchmark_suites -name '*.mlir' | tar -czvf source-mlir-models-${BUILDKITE_BUILD_NUMBER}.tgz -T -"
- "tar -czvf iree-android-tools-${BUILDKITE_BUILD_NUMBER}.tgz build-android/tools/iree-benchmark-module build-android-trace/tools/iree-benchmark-module build-android/tools/build_config.txt"
if: "build.pull_request.id == null || (build.pull_request.labels includes 'buildkite:benchmark')"
agents:
- "queue=build"
env:
IREE_DOCKER_WORKDIR: "/usr/src/github/iree"
artifact_paths:
- "benchmark-suites-${BUILDKITE_BUILD_NUMBER}.tgz"
- "source-mlir-models-${BUILDKITE_BUILD_NUMBER}.tgz"
- "iree-android-tools-${BUILDKITE_BUILD_NUMBER}.tgz"
- wait
- label: "Benchmark on Pixel 4 (snapdragon-855, adreno-640)"
commands:
- "git clean -fdx"
- "buildkite-agent artifact download --step Build benchmark-suites-${BUILDKITE_BUILD_NUMBER}.tgz ./"
- "buildkite-agent artifact download --step Build iree-android-tools-${BUILDKITE_BUILD_NUMBER}.tgz ./"
- "wget https://storage.googleapis.com/iree-shared-files/tracy-capture-eeffb6d2.tgz"
- "tar -xzvf benchmark-suites-${BUILDKITE_BUILD_NUMBER}.tgz"
- "tar -xzvf iree-android-tools-${BUILDKITE_BUILD_NUMBER}.tgz"
- "tar -xzvf tracy-capture-eeffb6d2.tgz"
- "python3 build_tools/benchmarks/run_benchmarks_on_android.py --pin-cpu-freq --pin-gpu-freq --normal_benchmark_tool_dir=build-android/tools/ --traced_benchmark_tool_dir=build-android-trace/tools/ --trace_capture_tool=tracy-capture -o benchmark-results-pixel-4-${BUILDKITE_BUILD_NUMBER}.json --capture_tarball=trace-captures-pixel-4-${BUILDKITE_BUILD_NUMBER}.tgz --driver_filter_regex='(?!vulkan).*' --verbose build-host/"
if: "build.pull_request.id == null || (build.pull_request.labels includes 'buildkite:benchmark')"
agents:
- "android-soc=snapdragon-855"
- "android-version=12"
- "queue=benchmark-android"
artifact_paths:
- "benchmark-results-pixel-4-${BUILDKITE_BUILD_NUMBER}.json"
- "trace-captures-pixel-4-${BUILDKITE_BUILD_NUMBER}.tgz"
timeout_in_minutes: "60"
- label: "Benchmark on Pixel 6 Pro (google-tensor, mali-g78)"
commands:
- "git clean -fdx"
- "buildkite-agent artifact download --step Build benchmark-suites-${BUILDKITE_BUILD_NUMBER}.tgz ./"
- "buildkite-agent artifact download --step Build iree-android-tools-${BUILDKITE_BUILD_NUMBER}.tgz ./"
- "wget https://storage.googleapis.com/iree-shared-files/tracy-capture-eeffb6d2.tgz"
- "tar -xzvf benchmark-suites-${BUILDKITE_BUILD_NUMBER}.tgz"
- "tar -xzvf iree-android-tools-${BUILDKITE_BUILD_NUMBER}.tgz"
- "tar -xzvf tracy-capture-eeffb6d2.tgz"
- "python3 build_tools/benchmarks/run_benchmarks_on_android.py --pin-cpu-freq --pin-gpu-freq --normal_benchmark_tool_dir=build-android/tools/ --traced_benchmark_tool_dir=build-android-trace/tools/ --trace_capture_tool=tracy-capture -o benchmark-results-pixel6-pro-${BUILDKITE_BUILD_NUMBER}.json --capture_tarball=trace-captures-pixel6-pro-${BUILDKITE_BUILD_NUMBER}.tgz --verbose build-host/"
if: "build.pull_request.id == null || (build.pull_request.labels includes 'buildkite:benchmark')"
agents:
- "android-soc=google-tensor"
- "android-version=12"
- "queue=benchmark-android"
artifact_paths:
- "benchmark-results-pixel6-pro-${BUILDKITE_BUILD_NUMBER}.json"
- "trace-captures-pixel6-pro-${BUILDKITE_BUILD_NUMBER}.tgz"
timeout_in_minutes: "60"
- label: "Benchmark on Moto Edge X30 (snapdragon-8gen1, adreno-730)"
commands:
- "git clean -fdx"
- "buildkite-agent artifact download --step Build benchmark-suites-${BUILDKITE_BUILD_NUMBER}.tgz ./"
- "buildkite-agent artifact download --step Build iree-android-tools-${BUILDKITE_BUILD_NUMBER}.tgz ./"
- "wget https://storage.googleapis.com/iree-shared-files/tracy-capture-eeffb6d2.tgz"
- "tar -xzvf benchmark-suites-${BUILDKITE_BUILD_NUMBER}.tgz"
- "tar -xzvf iree-android-tools-${BUILDKITE_BUILD_NUMBER}.tgz"
- "tar -xzvf tracy-capture-eeffb6d2.tgz"
- "python3 build_tools/benchmarks/run_benchmarks_on_android.py --pin-cpu-freq --pin-gpu-freq --normal_benchmark_tool_dir=build-android/tools/ --traced_benchmark_tool_dir=build-android-trace/tools/ --trace_capture_tool=tracy-capture -o benchmark-results-moto-edge-x30-${BUILDKITE_BUILD_NUMBER}.json --capture_tarball=trace-captures-moto-edge-x30-${BUILDKITE_BUILD_NUMBER}.tgz --driver_filter_regex='vulkan' --verbose build-host/"
if: "build.pull_request.id == null || (build.pull_request.labels includes 'buildkite:benchmark')"
agents:
- "android-soc=snapdragon-8gen1"
- "android-version=12"
- "queue=benchmark-android"
artifact_paths:
- "benchmark-results-moto-edge-x30-${BUILDKITE_BUILD_NUMBER}.json"
- "trace-captures-moto-edge-x30-${BUILDKITE_BUILD_NUMBER}.tgz"
timeout_in_minutes: "60"
- wait
- label: "Comment benchmark results on pull request"
commands:
- "git clean -fdx"
- "buildkite-agent artifact download benchmark-results-*.json ./"
- "python3 build_tools/benchmarks/post_benchmarks_as_pr_comment.py --verbose --query-base --benchmark_files benchmark-results-*.json"
key: "post-on-pr"
if: "build.pull_request.id != null && (build.pull_request.labels includes 'buildkite:benchmark')"
agents:
- "queue=report"
- label: "Push benchmark results to dashboard"
commands:
- "git clean -fdx"
- "buildkite-agent artifact download benchmark-results-*.json ./"
- "python3 build_tools/benchmarks/upload_benchmarks_to_dashboard.py --verbose --benchmark_files benchmark-results-*.json"
key: "upload-to-dashboard"
branches: "main"
agents:
- "queue=report"