| #!/bin/bash |
| |
| # 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 |
| # |
| # Sets up `mmperf` (https://github.com/mmperf/mmperf). |
| # |
| # `mmperf` benchmarks matrix-multiply workloads on IREE and other backends such |
| # as RUY, TVM, Halide, CuBLAS, etc. Some backends are included as submodules |
| # in the `mmperf` repo and built from source, and other backends are expected |
| # to already be installed. |
| # |
| # Usage: |
| # ./setup_mmperf.sh \ |
| # <mmperf repo dir> \ |
| # <mmperf sha> |
| |
| set -xeuo pipefail |
| |
| export REPO_DIR=$1 |
| export REPO_SHA=$2 |
| |
| pushd ${REPO_DIR} |
| |
| mkdir mmperf |
| pushd mmperf |
| git init |
| git fetch --depth 1 https://github.com/mmperf/mmperf.git "${REPO_SHA}" |
| git checkout ${REPO_SHA} |
| git submodule update --init --recursive --jobs 8 --depth 1 |
| |
| # Create virtual environment. |
| python3 -m venv mmperf.venv |
| source mmperf.venv/bin/activate |
| pip install -r requirements.txt |
| pip install -r ./external/llvm-project/mlir/python/requirements.txt |
| |
| popd # mmperf |
| |
| # Since the root user clones the mmperf repo, we update permissions so that a |
| # runner can access this repo. |
| chmod -R 777 . |
| |
| # Make sure there are no local changes to the IREE submodule since the workflow |
| # updates this at each run. |
| pushd mmperf/external/iree |
| git restore . |
| git submodule foreach --recursive git restore . |
| popd # mmperf/external/iree |
| |
| popd # ${REPO_DIR} |