Skip to content

Adding new APIs

Adding new APIs #213

Workflow file for this run

name: DLIO Profiler Build and Test
on:
pull_request:
branches: [ main, dev ]
push:
jobs:
build-and-test:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-20.04, ubuntu-22.04]
dir: ["clone", "github"]
perm: ["root", "user"]
name: ${{ matrix.os }}-${{ matrix.dir }}-${{ matrix.perm }}
runs-on: ${{ matrix.os }}
env:
CC: gcc
CXX: g++
DIR: ${{ matrix.dir }}
PERM: ${{ matrix.perm }}
steps:
- name: Push checkout
if: github.event_name == 'push'
uses: actions/checkout@v3
- name: PR checkout
if: github.event_name == 'pull_request'
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install additional packages
run: |
sudo apt-get update
sudo apt-get install gcc g++ libtool-bin openmpi-bin libopenmpi-dev
sudo apt-get install python3.10 python3-pip
sudo apt-get install gcovr
- name: Install dlio benchmark
if: matrix.os == 'ubuntu-22.04' && matrix.perm == 'root' && matrix.dir == 'github'
run: |
LOC=git+https://github.com/argonne-lcf/dlio_benchmark.git@main
if [[ $PERM == 'user' ]]; then
export DLIO_LOGGER_USER=1
echo pip install ${LOC}
pip install ${LOC}
else
echo pip install ${LOC}
sudo pip install ${LOC}
fi
- name: Build from ${{ matrix.dir }} on ${{ matrix.perm }}
run: |
export CMAKE_BUILD_TYPE=Profile
export DLIO_PROFILER_ENABLE_TESTS=ON
LOC=.
if [[ $DIR == 'github' ]]; then
LOC=git+https://github.com/hariharan-devarajan/dlio-profiler.git@dev
fi
if [[ $PERM == 'user' ]]; then
export DLIO_LOGGER_USER=1
echo pip install -v ${LOC}
pip install -v ${LOC}
else
echo pip install -v ${LOC}
sudo pip install -v ${LOC}
fi
- name: Test ctest
if: matrix.os == 'ubuntu-22.04' && matrix.dir == 'clone' && matrix.perm == 'user'
run: |
pip install -r test/py/requirements.txt
cd build/temp*/dlio_profiler_py
ctest -VV
- name: Create Coverage
if: matrix.os == 'ubuntu-22.04' && matrix.dir == 'clone' && matrix.perm == 'user'
run: |
mkdir coverage
FILE=$PWD/coverage/coverage.json
cd build
COVERALLS_REPO_TOKEN=${{ secrets.GITHUB_TOKEN }} gcovr -r ../ . --coveralls $FILE -e ../test/ -e ../src/example
if [ -e '$FILE' ]; then
sed -i'' -e 's/"service_name": "github-actions-ci"/"service_name": "github"/' '$FILE'
fi
cat $FILE
curl -v -F json_file=@$FILE https://coveralls.io/api/v1/jobs
- name: Test dlio benchmark npz
if: matrix.os == 'ubuntu-22.04' && matrix.perm == 'root' && matrix.dir == 'github'
run: |
export DLIO_PROFILER_ENABLE=1
dlio_benchmark workload=unet3d ++workload.output.folder=$PWD/output ++workload.train.computation_time=0.05 ++workload.evaluation.eval_time=0.01 ++workload.train.epochs=2 ++workload.workflow.train=True ++workload.workflow.generate_data=True ++workload.dataset.num_files_train=16 ++workload.dataset.num_files_eval=16 ++workload.reader.read_threads=2 ++workload.dataset.record_length=4096 ++workload.dataset.record_length_stdev=0 \
++workload.framework=tensorflow ++workload.reader.data_loader=tensorflow ++workload.dataset.format=npz
ls -a $PWD/output
num_posix_lines=`cat $PWD/output/.trace*.pfw | grep POSIX | wc -l`
total_lines=`cat $PWD/output/.trace*.pfw | wc -l`
echo $num_posix_lines of $total_lines
rm -rf $PWD/output
if [[ "$num_posix_lines" -ne "1728" ]]; then
exit 1
fi
- name: Test dlio benchmark tfrecord
if: matrix.os == 'ubuntu-22.04' && matrix.perm == 'root' && matrix.dir == 'github'
run: |
export DLIO_PROFILER_ENABLE=1
dlio_benchmark workload=unet3d ++workload.output.folder=$PWD/output ++workload.train.computation_time=0.05 ++workload.evaluation.eval_time=0.01 ++workload.train.epochs=2 ++workload.workflow.train=True ++workload.workflow.generate_data=True ++workload.dataset.num_files_train=16 ++workload.dataset.num_files_eval=16 ++workload.reader.read_threads=2 ++workload.dataset.record_length=4096 ++workload.dataset.record_length_stdev=0 \
++workload.framework=tensorflow ++workload.reader.data_loader=tensorflow ++workload.dataset.format=tfrecord
ls -a $PWD/output
num_posix_lines=`cat $PWD/output/.trace*.pfw | grep POSIX | wc -l`
total_lines=`cat $PWD/output/.trace*.pfw | wc -l`
echo $num_posix_lines of $total_lines
rm -rf $PWD/output
if [[ "$num_posix_lines" -ne "192" ]]; then
exit 1
fi
- name: Test dlio benchmark jpeg
if: matrix.os == 'ubuntu-22.04' && matrix.perm == 'root' && matrix.dir == 'github'
run: |
export DLIO_PROFILER_ENABLE=1
dlio_benchmark workload=unet3d ++workload.output.folder=$PWD/output ++workload.train.computation_time=0.05 ++workload.evaluation.eval_time=0.01 ++workload.train.epochs=2 ++workload.workflow.train=True ++workload.workflow.generate_data=True ++workload.dataset.num_files_train=16 ++workload.dataset.num_files_eval=16 ++workload.reader.read_threads=2 ++workload.dataset.record_length=4096 ++workload.dataset.record_length_stdev=0 \
++workload.framework=tensorflow ++workload.reader.data_loader=tensorflow ++workload.dataset.format=jpeg
ls -a $PWD/output
num_posix_lines=`cat $PWD/output/.trace*.pfw | grep POSIX | wc -l`
total_lines=`cat $PWD/output/.trace*.pfw | wc -l`
echo $num_posix_lines of $total_lines
rm -rf $PWD/output
if [[ "$num_posix_lines" -ne "416" ]]; then
exit 1
fi
- name: Test dlio benchmark png
if: matrix.os == 'ubuntu-22.04' && matrix.perm == 'root' && matrix.dir == 'github'
run: |
export DLIO_PROFILER_ENABLE=1
dlio_benchmark workload=unet3d ++workload.output.folder=$PWD/output ++workload.train.computation_time=0.05 ++workload.evaluation.eval_time=0.01 ++workload.train.epochs=2 ++workload.workflow.train=True ++workload.workflow.generate_data=True ++workload.dataset.num_files_train=16 ++workload.dataset.num_files_eval=16 ++workload.reader.read_threads=2 ++workload.dataset.record_length=4096 ++workload.dataset.record_length_stdev=0 \
++workload.framework=tensorflow ++workload.reader.data_loader=tensorflow ++workload.dataset.format=png
ls -a $PWD/output
num_posix_lines=`cat $PWD/output/.trace*.pfw | grep POSIX | wc -l`
total_lines=`cat $PWD/output/.trace*.pfw | wc -l`
echo $num_posix_lines of $total_lines
rm -rf $PWD/output
if [[ "$num_posix_lines" -ne "544" ]]; then
exit 1
fi
- name: Test dlio benchmark hdf5
if: matrix.os == 'ubuntu-22.04' && matrix.perm == 'root' && matrix.dir == 'github'
run: |
export DLIO_PROFILER_ENABLE=1
dlio_benchmark workload=unet3d ++workload.output.folder=$PWD/output ++workload.train.computation_time=0.05 ++workload.evaluation.eval_time=0.01 ++workload.train.epochs=2 ++workload.workflow.train=True ++workload.workflow.generate_data=True ++workload.dataset.num_files_train=16 ++workload.dataset.num_files_eval=16 ++workload.reader.read_threads=2 ++workload.dataset.record_length=4096 ++workload.dataset.record_length_stdev=0 \
++workload.framework=tensorflow ++workload.reader.data_loader=tensorflow ++workload.dataset.format=hdf5
ls -a $PWD/output
num_posix_lines=`cat $PWD/output/.trace*.pfw | grep POSIX | wc -l`
total_lines=`cat $PWD/output/.trace*.pfw | wc -l`
echo $num_posix_lines of $total_lines
rm -rf $PWD/output
if [[ "$num_posix_lines" -ne "640" ]]; then
exit 1
fi