blob: bef9c841b6409a14ee3391f83c3aef7cae659d8b [file] [log] [blame]
#!/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 `convperf` (https://github.com/nod-ai/convperf).
#
# `convperf` benchmarks convolution workloads on IREE and other backends such
# as libxsmm. IREE is included as a submodule.
#
# Usage:
# ./setup_convperf.sh \
# <convperf repo dir> \
# <convperf sha>
set -xeuo pipefail
export REPO_DIR="$1"
export REPO_SHA="$2"
pushd "${REPO_DIR}"
mkdir convperf
pushd convperf
git init
git fetch --depth 1 https://github.com/nod-ai/convperf.git "${REPO_SHA}"
git checkout "${REPO_SHA}"
git submodule update --init --recursive --jobs 8 --depth 1
# Checkout a specific commit.
git checkout "${REPO_SHA}"
# Create virtual environment.
python3 -m venv convperf.venv
source convperf.venv/bin/activate
pip install -r requirements.txt
# Since the root user clones the convperf repo, we update permissions so that a
# runner can access this repo, but we don't want to set the executable bit for
# non-executables because git tracks this, so we then restore any git-tracked
# changes.
chmod -R 777 .
git restore .
git submodule foreach --recursive git restore .
popd # convperf
popd # "${REPO_DIR}"