Skip to content

Add modular precision update #1111

Add modular precision update

Add modular precision update #1111

Workflow file for this run

name: 'Benchmark'
on: pull_request
jobs:
file-changes:
name: Detect File Changes
runs-on: 'ubuntu-latest'
outputs:
checkall: ${{ steps.changes.outputs.checkall }}
steps:
- name: Clone
uses: actions/checkout@v4
- name: Detect Changes
uses: dorny/paths-filter@v3
id: changes
with:
filters: ".github/file-filter.yml"
self:
name: Georgia Tech | Phoenix (NVHPC)
if: github.repository == 'MFlowCode/MFC'
strategy:
matrix:
device: ['cpu', 'gpu']
runs-on:
group: phoenix
labels: gt
timeout-minutes: 1400
env:
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
steps:
- name: Clone - PR
uses: actions/checkout@v3
with:
path: pr
- name: Clone - Master
uses: actions/checkout@v3
with:
repository: MFlowCode/MFC
ref: master
path: master
- name: Bench (Master v. PR)
run: |
(cd pr && bash .github/workflows/phoenix/submit.sh .github/workflows/phoenix/bench.sh ${{ matrix.device }}) &
(cd master && bash .github/workflows/phoenix/submit.sh .github/workflows/phoenix/bench.sh ${{ matrix.device }}) &
wait
(cd pr && bash .github/workflows/phoenix/submit.sh .github/workflows/phoenix/bench.sh ${{ matrix.device }} --single) &
(cd master && bash .github/workflows/phoenix/submit.sh .github/workflows/phoenix/bench.sh ${{ matrix.device }} --single) &
wait
- name: Check Speedup
run: |
cd pr
. ./mfc.sh load -c p -m ${{ matrix.device }}
single_time=$(grep "Runtime:" bench-${{ matrix.device }}-single.yaml | awk '{print $2}')
double_time=$(grep "Runtime:" bench-${{ matrix.device }}.yaml | awk '{print $2}')
speedup=$(echo "$double_time / $single_time" | bc -l)
echo "Single precision time: $single_time"
echo "Double precision time: $double_time"
echo "Speedup: $speedup"
if (( $(echo "$speedup < 1.5" | bc -l) )); then
echo "Error: Speedup is less than 1.5x in single precision"
exit 1
fi
- name: Generate & Post Comment
run: |
cd pr
. ./mfc.sh load -c p -m ${{ matrix.device }}
./mfc.sh bench_diff ../master/bench-${{ matrix.device }}.yaml bench-${{ matrix.device }}.yaml
- name: Archive Logs
uses: actions/upload-artifact@v3
if: always()
with:
name: logs-${{ matrix.device }}
path: |
pr/bench-${{ matrix.device }}.*
pr/build/benchmarks/*
master/bench-${{ matrix.device }}.*
master/build/benchmarks/*