benchmark-command #1184
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Performance Monitoring | |
on: | |
push: | |
branches: | |
- master | |
workflow_dispatch: {} | |
repository_dispatch: | |
types: [benchmark-command] | |
env: | |
TI_CI: "1" | |
TI_SKIP_VERSION_CHECK: "ON" | |
CI_IMAGE_VERSION: '202305261112' | |
jobs: | |
gpu_backends: | |
name: Performance Monitoring | |
timeout-minutes: 60 | |
# Disable this workflow on forks | |
if: github.repository_owner == 'taichi-dev' | |
runs-on: [self-hosted, x64, cuda, linux, benchmark] | |
steps: | |
- name: Workaround checkout Needed single revision issue | |
run: git submodule foreach 'git rev-parse HEAD > /dev/null 2>&1 || rm -rf $PWD' || true | |
- uses: actions/checkout@v2 | |
with: | |
submodules: "recursive" | |
fetch-depth: '0' | |
- name: Prepare Environment | |
run: | | |
. .github/workflows/scripts/common-utils.sh | |
prepare-build-cache | |
echo CI_DOCKER_RUN_EXTRA_ARGS="-v $(pwd):/home/dev/taichi" >> $GITHUB_ENV | |
- name: Build Taichi Wheel | |
run: | | |
. .github/workflows/scripts/common-utils.sh | |
ci-docker-run-gpu --name taichi-benchmark-build \ | |
registry.botmaster.tgr/taichi-build-android:${{ env.CI_IMAGE_VERSION }} \ | |
/home/dev/taichi/.github/workflows/scripts/build.py | |
env: | |
PY: '3.8' | |
PROJECT_NAME: taichi | |
TAICHI_CMAKE_ARGS: >- | |
-DTI_WITH_OPENGL:BOOL=ON | |
-DTI_WITH_CUDA:BOOL=ON | |
-DTI_WITH_VULKAN:BOOL=ON | |
-DTI_BUILD_TESTS:BOOL=OFF | |
-DTI_WITH_C_API=OFF | |
- name: Run taichi-benchmark | |
id: run-benchmark | |
run: | | |
. .github/workflows/scripts/common-utils.sh | |
MEMFREQ=($(sudo nvidia-smi --query-supported-clocks=mem --format=csv | head -n 2 | tail -n 1)) | |
GRFREQ=($(sudo nvidia-smi --query-supported-clocks=gr --format=csv | head -n 35 | tail -n 1)) | |
function restore-freq-pinning { | |
sudo nvidia-smi -rmc | |
sudo nvidia-smi -rgc | |
sudo nvidia-smi -pm 0 | |
} | |
trap restore-freq-pinning EXIT | |
sudo nvidia-smi -pm 1 | |
sudo nvidia-smi -lmc ${MEMFREQ[0]} | |
sudo nvidia-smi -lgc ${GRFREQ[0]} | |
sleep 0.5 | |
ci-docker-run-gpu --name taichi-benchmark-run \ | |
-e GITHUB_TOKEN \ | |
-e GITHUB_EVENT_ACTION \ | |
-e BENCHMARK_UPLOAD_TOKEN \ | |
-v $GITHUB_EVENT_PATH:/github-event.json \ | |
registry.botmaster.tgr/taichi-test-android:${{ env.CI_IMAGE_VERSION }} \ | |
/home/dev/taichi/.github/workflows/scripts/unix-perf-mon.sh | |
env: | |
PY: '3.8' | |
BENCHMARK_UPLOAD_TOKEN: ${{ secrets.BENCHMARK_UPLOAD_TOKEN }} | |
GITHUB_EVENT_ACTION: ${{ github.event.action }} | |
GITHUB_TOKEN: ${{ secrets.GARDENER_PAT }} |