-
Notifications
You must be signed in to change notification settings - Fork 2.3k
88 lines (74 loc) · 2.75 KB
/
perf.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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 }}