-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #241 from MaryaSharf/marya/netwrks
Add build and run Resnet50 and VGG16 actions to the tartan CI job.
- Loading branch information
Showing
7 changed files
with
240 additions
and
63 deletions.
There are no files selected for viewing
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
name: Setup and build networks; VGG16, Resnet50 | ||
description: Build and run VGG16 and Resnet50 with oneAPI base toolkit and oneAPI-Construction-Kit | ||
|
||
inputs: | ||
workspace: | ||
description: 'Main workflow workspace' | ||
default: ${{ github.workspace }} | ||
|
||
runs: | ||
# We don't want a new docker just a list of steps, so mark as composite | ||
using: "composite" | ||
steps: | ||
- name: setup python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.8' | ||
|
||
- name: Install Python libraries and system dependencies | ||
shell: bash | ||
run: | | ||
pip install --user requests numpy h5py Pillow | ||
sudo add-apt-repository universe | ||
sudo apt-get update | ||
sudo apt-get install -y libblas-dev libopenblas64-dev libopenblas-dev libpthread-stubs0-dev libboost-all-dev | ||
- name: Clone portDNN | ||
shell: bash | ||
run: git clone --recursive --depth 1 --single-branch https://github.com/codeplaysoftware/portDNN.git | ||
|
||
- name: Download Daily Release | ||
shell: bash | ||
run: | | ||
wget "https://github.com/intel/llvm/releases/download/nightly-2023-12-18/sycl_linux.tar.gz" | ||
mkdir linux_nightly_release | ||
tar -xzf sycl_linux.tar.gz -C linux_nightly_release | ||
- name: Download Image for testing | ||
shell: bash | ||
run: | | ||
wget https://upload.wikimedia.org/wikipedia/commons/8/8d/Labrador_Retriever_Molly.jpg | ||
- name: Set up environment and build networks | ||
shell: bash | ||
run: | | ||
export LD_LIBRARY_PATH=${{ inputs.workspace }}/build/lib:${{ inputs.workspace }}/linux_nightly_release/lib/libsycl.so:${{ inputs.workspace }}/linux_nightly_release/lib:$LD_LIBRARY_PATH | ||
export CMAKE_CXX_COMPILER=${{ inputs.workspace }}/linux_nightly_release/bin/clang++ | ||
export CMAKE_C_COMPILER=${{ inputs.workspace }}/linux_nightly_release/bin/clang | ||
export CA_HAL_DEBUG=1 | ||
export CA_PROFILE_LEVEL=3 | ||
export ONEAPI_DEVICE_SELECTOR=opencl:acc | ||
export OCL_ICD_FILENAMES=${{ inputs.workspace }}/build/lib/libCL.so | ||
# As the oneAPI basetoolkit release has a whitelist of devices, it filters out RefSi. | ||
# To override it, as a temporary solution we can point SYCL_CONFIG_FILE_NAME to ``. | ||
# This way it doesn't set the default sycl.conf. | ||
export SYCL_CONFIG_FILE_NAME="" | ||
export portDNN_source=$(pwd)/portDNN | ||
export OCL_ICD_VENDORS=/dev/null | ||
# VGG16 | ||
mkdir vdata | ||
cd vdata | ||
wget --no-verbose https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels.h5 | ||
python $portDNN_source/samples/networks/vgg/h5toBin.py vgg16_weights_tf_dim_ordering_tf_kernels.h5 | ||
cd .. | ||
# Resnet50 | ||
mkdir rdata | ||
cd rdata | ||
wget --no-verbose https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet50_weights_tf_dim_ordering_tf_kernels.h5 | ||
python $portDNN_source/samples/networks/resnet50/h5toBin.py resnet50_weights_tf_dim_ordering_tf_kernels.h5 | ||
cd .. | ||
# Preparing an image | ||
python $portDNN_source/samples/networks/img2bin.py $(pwd)/Labrador_Retriever_Molly.jpg | ||
# Testing on image for VGG16 | ||
CA_HAL_DEBUG=1 CA_PROFILE_LEVEL=3 OCL_ICD_FILENAMES=${{ inputs.workspace }}/build/lib/libCL.so ONEAPI_DEVICE_SELECTOR=opencl:acc SYCL_CONFIG_FILE_NAME= ${{ inputs.workspace }}/portDNN_build_dir/samples/networks/vgg/vgg vdata/ $(pwd)/Labrador_Retriever_Molly.jpg.bin | ||
# Testing on image for Resnet50 | ||
CA_HAL_DEBUG=1 CA_PROFILE_LEVEL=3 OCL_ICD_FILENAMES=${{ inputs.workspace }}/build/lib/libCL.so ONEAPI_DEVICE_SELECTOR=opencl:acc SYCL_CONFIG_FILE_NAME= ${{ inputs.workspace }}/portDNN_build_dir/samples/networks/resnet50/resnet50 rdata/ $(pwd)/Labrador_Retriever_Molly.jpg.bin | ||
- name: Package artifacts | ||
shell: bash | ||
run: | | ||
tar -cvzf network_artifacts.tar.gz vdata rdata Labrador_Retriever_Molly.jpg Labrador_Retriever_Molly.jpg.bin | ||
- name: Upload Artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: network_build | ||
path: network_artifacts.tar.gz |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
# Build, Run and Test OCK Demo EcoSystem | ||
name: Build and Run OCK Demo | ||
on: | ||
schedule: | ||
- cron: '59 23 * * 5' # Run every Friday at 11:59 PM | ||
# Allows you to run this workflow manually from the Actions tab | ||
workflow_dispatch: | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
|
||
# build and run for RISCV | ||
run_riscv_m1_ock_demo: | ||
runs-on: ubuntu-22.04 | ||
|
||
steps: | ||
- name: Checkout repo | ||
uses: actions/checkout@v3 | ||
|
||
# installs tools, ninja, installs llvm and sets up sccahe | ||
- name: setup ubuntu | ||
uses: ./.github/actions/setup_ubuntu_build | ||
with: | ||
llvm_version: 17 | ||
llvm_build_type: RelAssert | ||
|
||
- name: setup python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.8' | ||
|
||
- name: Install Python libraries and system dependencies | ||
run: | | ||
pip install --user requests numpy h5py Pillow | ||
sudo add-apt-repository universe | ||
sudo apt-get update | ||
sudo apt-get install -y libblas-dev libopenblas64-dev libopenblas-dev libpthread-stubs0-dev libboost-all-dev | ||
- name: Build riscv M1 | ||
uses: ./.github/actions/do_build_ock/do_build_m1 | ||
with: | ||
build_type: Release | ||
extra_flags: '-DCA_REFSI_M1_DEMO_MODE=ON' | ||
|
||
- name: Download Daily Release | ||
run: | | ||
# TODO: Update the nightly release from intel/llvm from 2023-12-18 to daily once | ||
# everything has stablised | ||
wget "https://github.com/intel/llvm/releases/download/nightly-2023-12-18/sycl_linux.tar.gz" | ||
mkdir linux_nightly_release | ||
tar -xzf sycl_linux.tar.gz -C linux_nightly_release | ||
- name: Build portBLAS | ||
uses: ./.github/actions/build_portBLAS_action | ||
with: | ||
workspace: ${{ github.workspace }} | ||
|
||
- name: Build portDNN | ||
uses: ./.github/actions/build_portDNN_action | ||
with: | ||
workspace: ${{ github.workspace }} | ||
|
||
- name: Package Build Artifacts | ||
run: | | ||
tar -cvzf artifacts.tar.gz build portDNN_build_dir portBLAS_build_dir | ||
- name: Upload Artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ock_demo_build | ||
path: artifacts.tar.gz | ||
|
||
build_and_run_networks: | ||
runs-on: ubuntu-22.04 | ||
needs: run_riscv_m1_ock_demo | ||
steps: | ||
- name: Checkout repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: Download artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: ock_demo_build | ||
|
||
- name: Untar artifacts | ||
run: | | ||
tar -xvzf artifacts.tar.gz | ||
- name: Build vgg and resnet | ||
uses: ./.github/actions/build_vgg_resnet_action | ||
with: | ||
workspace: ${{ github.workspace }} | ||
|
||
publish_OCK_demo_artifacts: | ||
runs-on: ubuntu-22.04 | ||
needs: [run_riscv_m1_ock_demo, build_and_run_networks] | ||
env: | ||
GH_TOKEN: ${{ secrets.GH_TOKEN }} | ||
steps: | ||
- name: Download artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: ock_demo_build | ||
|
||
- name: Download network artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: network_build | ||
|
||
- name: Untar artifacts and package OCK demo tar | ||
run: | | ||
tar -xvzf artifacts.tar.gz | ||
tar -xvzf network_artifacts.tar.gz | ||
ls | ||
tar -cvzf ock_demo.tar.gz build portDNN_build_dir portBLAS_build_dir vdata rdata | ||
- name: Upload Artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ock_demo_with_networks | ||
path: ock_demo.tar.gz | ||
|
||
- name: Compute tag | ||
id: tag | ||
run: | | ||
if [ "${{ github.event_name == 'schedule' }}" == "true" ]; then | ||
echo "TAG=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT" | ||
else | ||
# TODO: Use date of the commit? | ||
echo "TAG=$(date +'%Y-%m-%d')-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT" | ||
fi | ||
- name: Create OCK demo release | ||
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | ||
with: | ||
files: | ||
ock_demo.tar.gz | ||
tag_name: nightly-${{ steps.tag.outputs.TAG }} | ||
name: OCK daily ${{ steps.tag.outputs.TAG }} | ||
prerelease: true | ||
body: "Daily build ${{ steps.tag.outputs.TAG }}" | ||
target_commitish: ${{ github.sha }} |
This file was deleted.
Oops, something went wrong.
Binary file not shown.