Fix #2013. #503
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: Benchmark | |
on: | |
pull_request: | |
types: [ labeled, synchronize ] | |
push: | |
branches: [ master ] | |
workflow_dispatch: | |
jobs: | |
build-linux-nix: | |
if: github.repository == 'diku-dk/futhark' && (!github.event.pull_request.draft && contains(github.event.pull_request.labels.*.name, 'run-benchmarks') || github.ref == 'refs/heads/master') | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Nix | |
uses: cachix/install-nix-action@v20 | |
- uses: cachix/cachix-action@v12 | |
with: | |
name: futhark | |
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' | |
- name: Build Futhark | |
run: nix-build --argstr suffix nightly-linux-x86_64 --argstr commit $GITHUB_SHA | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: futhark-nightly-linux-x86_64.tar.xz | |
path: result/futhark-nightly-linux-x86_64.tar.xz | |
benchmark-MI100-opencl: | |
runs-on: MI100 | |
needs: [build-linux-nix] | |
env: | |
TMPDIR: "/scratch" | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- uses: ./.github/actions/benchmark | |
with: | |
backend: opencl | |
system: MI100 | |
benchmark-MI100-hip: | |
runs-on: MI100 | |
needs: [build-linux-nix] | |
env: | |
TMPDIR: "/scratch" | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- uses: ./.github/actions/benchmark | |
with: | |
backend: hip | |
system: MI100 | |
benchmark-A100: | |
runs-on: hendrix | |
needs: [build-linux-nix] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- uses: ./.github/actions/benchmark | |
with: | |
backend: opencl | |
system: A100 | |
slurm-options: -p gpu --gres=gpu:a100:1 --job-name=fut-opencl-A100 | |
- uses: ./.github/actions/benchmark | |
with: | |
backend: cuda | |
system: A100 | |
slurm-options: -p gpu --gres=gpu:a100:1 --job-name=fut-cuda-A100 | |
# benchmark-titanx-cuda: | |
# runs-on: hendrix | |
# needs: [build-linux-nix] | |
# steps: | |
# - uses: actions/checkout@v3 | |
# with: | |
# submodules: recursive | |
# fetch-depth: 0 | |
# - uses: ./.github/actions/benchmark | |
# with: | |
# backend: cuda | |
# system: titanx | |
# slurm-options: -p gpu --gres=gpu:titanx:1 --job-name=fut-cuda-titanx --exclude=hendrixgpu05fl,hendrixgpu06fl | |
# futhark-options: --exclude=mem_16gb | |
# benchmark-titanx-opencl: | |
# runs-on: hendrix | |
# needs: [build-linux-nix] | |
# steps: | |
# - uses: actions/checkout@v3 | |
# with: | |
# submodules: recursive | |
# fetch-depth: 0 | |
# - uses: ./.github/actions/benchmark | |
# with: | |
# backend: opencl | |
# system: titanx | |
# slurm-options: -p gpu --gres=gpu:titanx:1 --job-name=fut-opencl-titanx --exclude=hendrixgpu05fl,hendrixgpu06fl | |
# futhark-options: --exclude=mem_16gb | |
benchmark-titanrtx-cuda: | |
runs-on: hendrix | |
needs: [build-linux-nix] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- uses: ./.github/actions/benchmark | |
with: | |
backend: cuda | |
system: titanrtx | |
slurm-options: -p gpu --gres=gpu:titanrtx:1 --job-name=fut-cuda-titanrtx --exclude=hendrixgpu05fl,hendrixgpu06fl | |
benchmark-titanrtx-opencl: | |
runs-on: hendrix | |
needs: [build-linux-nix] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- uses: ./.github/actions/benchmark | |
with: | |
backend: opencl | |
system: titanrtx | |
slurm-options: -p gpu --gres=gpu:titanrtx:1 --job-name=fut-opencl-titanrtx --exclude=hendrixgpu05fl,hendrixgpu06fl | |
benchmark-results: | |
runs-on: ubuntu-22.04 | |
needs: | |
- benchmark-A100 | |
- benchmark-MI100-opencl | |
- benchmark-MI100-hip | |
# - benchmark-titanx-cuda | |
# - benchmark-titanx-opencl | |
- benchmark-titanrtx-cuda | |
- benchmark-titanrtx-opencl | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Install SSH key | |
uses: shimataro/ssh-key-action@v2 | |
with: | |
key: ${{ secrets.SSHKEY }} | |
known_hosts: ${{ secrets.KNOWN_HOSTS }} | |
- uses: actions/download-artifact@v3 | |
- run: | | |
ls -R | |
- name: Prepare package | |
run: | | |
mkdir -p package | |
cp */futhark-*.json package/ | |
gzip package/*.json | |
for x in package/*.json.gz; do cp $x $(echo $x | sed "s/$GITHUB_SHA/latest/"); done | |
- name: scp to server | |
run: | | |
scp -o StrictHostKeyChecking=no package/* [email protected]:/var/www/htdocs/futhark-lang.org/benchmark-results |