Skip to content

avoid out-of-bound reading the delta list #361

avoid out-of-bound reading the delta list

avoid out-of-bound reading the delta list #361

Workflow file for this run

# This is a basic workflow to help you get started with Actions
#Turing commands are commented out , we regress QV100,RTX3070,A100
name: Long Tests
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the mydev branch
push:
branches-ignore:
- "gh-readonly-queue**"
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
SASS-Simulation:
if: github.repository == 'accel-sim/accel-sim-framework'
runs-on: tgrogers-raid
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- name: Setup Environment
run: |
rm -rf env-setup
git clone [email protected]:purdue-aalp/env-setup.git
cd env-setup
git checkout cluster-ubuntu
- name: Build Accel-Sim
run: |
source ./env-setup/12.4_env_setup.sh
rm -rf ./gpu-simulator/gpgpu-sim
source ./gpu-simulator/setup_environment.sh
make clean -C gpu-simulator
srun --time=8:00:00 -c20 make -j20 -C gpu-simulator
- name: Run SASS
run: |
source ./env-setup/12.4_env_setup.sh
source ./gpu-simulator/setup_environment.sh
./util/job_launching/run_simulations.py -B GPU_Microbenchmark -C QV100-SASS -T /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/QV100//hw_run/traces/device-0/12.8/ -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/run_simulations.py -B rodinia_2.0-ft -C QV100-SASS -T /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/QV100/hw_run/traces/device-0/12.8/ -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
#./util/job_launching/run_simulations.py -B rodinia_2.0-ft -C RTX2060-SASS -T ~/../common/accel-sim/traces/turing-rtx2060/latest/ -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/run_simulations.py -B GPU_Microbenchmark -C RTX3070-SASS -T /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/RTX3070/hw_run/traces/device-0/12.8/ -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/run_simulations.py -B rodinia_2.0-ft -C RTX3070-SASS -T /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/RTX3070/hw_run/traces/device-0/12.8/ -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/run_simulations.py -B GPU_Microbenchmark -C A100-SASS -T /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/A100/hw_run/traces/device-0/12.8/ -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/run_simulations.py -B rodinia_2.0-ft -C A100-SASS -T /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/A100/hw_run/traces/device-0/12.8/ -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/run_simulations.py -B mlperf_inference -C RTX3070-SASS -T /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/mlperf_rtx3070/traces/device-0/12.8/ -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/monitor_func_test.py -v -s --sleep_time 300 stats-per-app-sass.csv -N sass-short-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
- name: Archive Stats
run: |
source ./env-setup/12.4_env_setup.sh
rm -rf ./statistics-archive
git clone [email protected]:accel-sim/statistics-archive.git
BRANCH_NAME=${GITHUB_REPOSITORY}/${GITHUB_REF_NAME}
# either create a new branch or check it out if it already exists
git -C ./statistics-archive checkout $BRANCH_NAME 2>/dev/null || git -C ./statistics-archive checkout -b $BRANCH_NAME
./util/job_launching/get_stats.py -k -K -R -B GPU_Microbenchmark -C QV100-SASS -A | tee v100-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv
#./util/job_launching/get_stats.py -k -K -R -B GPU_Microbenchmark -C RTX2060-SASS -A | tee turing-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv
./util/job_launching/get_stats.py -k -K -R -B GPU_Microbenchmark -C RTX3070-SASS -A | tee ampere-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv
./util/job_launching/get_stats.py -k -K -R -B GPU_Microbenchmark -C A100-SASS -A | tee ampere-a100-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv
mkdir -p statistics-archive/ubench/
# First we merge and archive this run to the main csv that contains all previous runs
./util/plotting/merge-stats.py -R -c ./statistics-archive/ubench/v100-ubench-sass.csv,v100-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv \
| tee v100-ubench-sass.csv && mv v100-ubench-sass.csv ./statistics-archive/ubench/
# ./util/plotting/merge-stats.py -R -c ./statistics-archive/ubench/turing-ubench-sass.csv,turing-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv \
# | tee turing-ubench-sass.csv && mv turing-ubench-sass.csv ./statistics-archive/ubench/
./util/plotting/merge-stats.py -R -c ./statistics-archive/ubench/ampere-ubench-sass.csv,ampere-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv \
| tee ampere-ubench-sass.csv && mv ampere-ubench-sass.csv ./statistics-archive/ubench/
./util/plotting/merge-stats.py -R -c ./statistics-archive/ubench/ampere-a100-ubench-sass.csv,ampere-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv \
| tee ampere-a100-ubench-sass.csv && mv ampere-a100-ubench-sass.csv ./statistics-archive/ubench/
# Next we merge the latest run with the current run (used for correlation plots) then archive the current run as the new latest for the next time this action occurs
./util/plotting/merge-stats.py -R -c ./statistics-archive/ubench/v100-ubench-sass-latest.csv,v100-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv \
| tee v100-ubench-sass-latest2.csv && mv v100-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv ./statistics-archive/ubench/v100-ubench-sass-latest.csv
# ./util/plotting/merge-stats.py -R -c ./statistics-archive/ubench/turing-ubench-sass-latest.csv,turing-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv \
# | tee turing-ubench-sass-latest2.csv && mv turing-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv ./statistics-archive/ubench/turing-ubench-sass-latest.csv
./util/plotting/merge-stats.py -R -c ./statistics-archive/ubench/ampere-ubench-sass-latest.csv,ampere-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv \
| tee ampere-ubench-sass-latest2.csv && mv ampere-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv ./statistics-archive/ubench/ampere-ubench-sass-latest.csv
./util/plotting/merge-stats.py -R -c ./statistics-archive/ubench/ampere-a100-ubench-sass-latest.csv,ampere-a100-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv \
| tee ampere-a100-ubench-sass-latest2.csv && mv ampere-a100-ubench-sass-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT.csv ./statistics-archive/ubench/ampere-a100-ubench-sass-latest.csv
if [[ $GITHUB_EVENT_NAME == 'push' ]]; then
git -C ./statistics-archive add --all
git -C ./statistics-archive commit \
-m "Jenkins automated checkin $BRANCH_NAME Build:$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT" || echo "No Changes."
git -C ./statistics-archive push -u origin $BRANCH_NAME
fi
- name: Correlate Ubench
run: |
source ./env-setup/12.4_env_setup.sh
./util/hw_stats/get_hw_data.sh > /dev/null 2>&1
rm -rf ./util/plotting/correl-html/
./util/plotting/plot-correlation.py -c ./v100-ubench-sass-latest2.csv -H /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/QV100/hw_run/device-0/12.8/ | tee v100-ubench-correl.txt
#./util/plotting/plot-correlation.py -c ./turing-ubench-sass-latest2.csv -H ./hw_run/TURING-RTX2060/10.2/ | tee turing-ubench-correl.txt
./util/plotting/plot-correlation.py -c ./ampere-ubench-sass-latest2.csv -H /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/RTX3070/hw_run/device-0/12.8/ | tee ampere-ubench-correl.txt
./util/plotting/plot-correlation.py -c ./ampere-a100-ubench-sass-latest2.csv -H /scratch/tgrogers-disk01/a/common/for-sharing/accel-sim/A100/hw_run/device-0/12.8/ | tee ampere-a100-ubench-correl.txt
ssh ghci@tgrogers-pc01 mkdir -p /home/ghci/accel-sim/correl/git_${GITHUB_REF}"_"$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT/
rsync --delete -r ./util/plotting/correl-html/ ghci@tgrogers-pc01:/home/ghci/accel-sim/correl/git_${GITHUB_REF}"_"$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT/
if [[ $GITHUB_EVENT_NAME == 'push' ]]; then
rm -rf /scratch/tgrogers-disk01/a/tgrghci/ci/accel_sim_framework/lastDevSuccess
mkdir -p /scratch/tgrogers-disk01/a/tgrghci/ci/accel_sim_framework/lastDevSuccess
mv $PWD/* /scratch/tgrogers-disk01/a/tgrghci/ci/accel_sim_framework/lastDevSuccess/
fi
BODY="Github CI - Build $GITHUB_REF SUCCESS.
Action link: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
Branch/PR Name: $GITHUB_REF_NAME
Correlation Report at: https://tgrogers-pc01.ecn.purdue.edu/github-ci/accel-sim/correl/git_${GITHUB_REF}"_"$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT/.
Directory: /scratch/tgrogers-disk01/a/tgrghci/ci/accel_sim_framework/lastDevSuccess"
SUBJECT="✅ Github CI - Build $GITHUB_REF SUCCESS"
TO="${{ secrets.GROUP_EMAIL }}"
srun echo "$BODY" | mail -s "$SUBJECT" "$TO"
echo "Correlation Report at: https://tgrogers-pc01.ecn.purdue.edu/github-ci/accel-sim/correl/git_${GITHUB_REF}"_"$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT/."
PTX-Simulation:
if: github.repository == 'accel-sim/accel-sim-framework'
runs-on: tgrogers-raid
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- name: Setup Environment
run: |
rm -rf env-setup
git clone [email protected]:purdue-aalp/env-setup.git
cd env-setup
git checkout cluster-ubuntu
- name: Build Accel-Sim
run: |
source ./env-setup/12.4_env_setup.sh
rm -rf ./gpu-simulator/gpgpu-sim
source ./gpu-simulator/setup_environment.sh
make clean -C gpu-simulator
srun --time=8:00:00 -c20 make -j20 -C gpu-simulator
- name: Run PTX
run: |
source ./env-setup/12.4_env_setup.sh
source ./gpu-simulator/setup_environment.sh
rm -rf ./gpu-app-collection
git clone --recurse-submodules -b dev [email protected]:accel-sim/gpu-app-collection.git
source ./gpu-app-collection/src/setup_environment
srun --time=8:00:00 -c20 make rodinia_2.0-ft GPU_Microbenchmark -j20 -C ./gpu-app-collection/src
./gpu-app-collection/get_regression_data.sh
#./util/job_launching/run_simulations.py -B rodinia_2.0-ft,GPU_Microbenchmark -C QV100-PTX,RTX2060-PTX,RTX3070-PTX,A100-PTX -N short-ptx-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/run_simulations.py -B rodinia_2.0-ft,GPU_Microbenchmark -C QV100-PTX,RTX3070-PTX,A100-PTX -N short-ptx-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
./util/job_launching/monitor_func_test.py -v -s stats-per-app-ptx.csv -N short-ptx-$GITHUB_RUN_NUMBER"_"$GITHUB_RUN_ATTEMPT
Tracer-Tool:
if: github.repository == 'accel-sim/accel-sim-framework'
runs-on: tgrogers-gpu01
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- name: Setup Environment
run: |
rm -rf env-setup
git clone [email protected]:purdue-aalp/env-setup.git
cd env-setup
git checkout cluster-ubuntu
- name: Build Accel-Sim
run: |
source ./env-setup/12.4_env_setup.sh
rm -rf ./gpu-simulator/gpgpu-sim
source ./gpu-simulator/setup_environment.sh
make clean -C gpu-simulator
make -j20 -C gpu-simulator
- name: test-prebuilt-traces
run: |
source ./env-setup/12.4_env_setup.sh
source ./gpu-simulator/setup_environment.sh
./get-accel-sim-traces.py -a tesla-v100/rodinia_2.0-ft
cd hw_run; tar -xzvf rodinia_2.0-ft.tgz; cd -
./util/job_launching/run_simulations.py -B rodinia_2.0-ft -C QV100-SASS -T ./hw_run/ -N rodinia_2.0-ft-online-$$
./util/job_launching/monitor_func_test.py -N rodinia_2.0-ft-online-$$ -v
rm -rf hw_run
rm -rf sim_run_11.0
- name: Build Tracer
run: |
source ./env-setup/12.4_env_setup.sh
./util/tracer_nvbit/install_nvbit.sh
make clean -C ./util/tracer_nvbit/
make -C ./util/tracer_nvbit/
- name: rodinia_2.0-ft-build
run: |
source ./env-setup/12.4_env_setup.sh
rm -rf ./gpu-app-collection/
git clone [email protected]:accel-sim/gpu-app-collection.git
source ./gpu-app-collection/src/setup_environment
ln -s /home/tgrogers-raid/a/common/data_dirs ./gpu-app-collection/
make -C ./gpu-app-collection/src rodinia_2.0-ft
- name: generate-rodinia_2.0-ft-traces
run: |
source ./env-setup/12.4_env_setup.sh
source ./gpu-app-collection/src/setup_environment
rm -rf ./hw_run/
./util/tracer_nvbit/run_hw_trace.py -B rodinia_2.0-ft -D 7
- name: generate-rodinia_2.0-ft-hw_stats
run: |
source ./env-setup/12.4_env_setup.sh
source ./gpu-app-collection/src/setup_environment
./util/hw_stats/run_hw.py -B rodinia_2.0-ft -D 7
- name: test-new-traces
run: |
source ./env-setup/12.4_env_setup.sh
source ./gpu-simulator/setup_environment.sh
./util/job_launching/run_simulations.py -B rodinia_2.0-ft -C QV100-SASS -T ./hw_run/traces/device-7/ -N rodinia_2.0-ft-$$
./util/job_launching/monitor_func_test.py -I -v -s rodinia-stats-per-app.csv -N rodinia_2.0-ft-$$
format-code:
if: github.event_name == 'pull_request'
runs-on: tgrogers-raid
needs: [SASS-Simulation, PTX-Simulation, Tracer-Tool]
steps:
- uses: actions/checkout@v4
with:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
ssh-key: ''
- name: Run clang-format
run: |
git config user.name "purdue-jenkins"
git config user.email "[email protected]"
git remote set-url origin [email protected]:${{github.event.pull_request.head.repo.full_name}}
git remote -v
/bin/bash ./gpu-simulator/format-code.sh
/bin/bash ./util/tracer_nvbit/tracer_tool/format-code.sh
if git status --untracked-files=no | grep -q "nothing to commit"; then echo "No changes to commit."; else git commit -a -m "Automated Format"; git push; fi
failures:
if: failure()
runs-on: tgrogers-raid
needs: [SASS-Simulation, PTX-Simulation, Tracer-Tool]
steps:
- name: Notify Failure
run: |
BODY="Github CI - Build $GITHUB_REF FAILED.
Action link: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
Branch/PR Name: $GITHUB_REF_NAME"
if [[ $GITHUB_EVENT_NAME == 'push' ]]; then
SUBJECT="❗Github CI FAILED - Build $GITHUB_REF"
else
SUBJECT="⚠️ Github CI FAILED - PR $GITHUB_REF"
fi
TO="${{ secrets.GROUP_EMAIL }}"
srun echo "$BODY" | mail -s "$SUBJECT" "$TO"