Adding OCK demo getting_started.md #96
Workflow file for this run
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: Build and Package | |
on: | |
pull_request: | |
paths: | |
- '.github/workflows/create_publish_artifacts.yml' | |
push: | |
branches: | |
- stable | |
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_nightly_package: | |
runs-on: ubuntu-22.04 | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
# installs tools, ninja, installs llvm and sets up sccache | |
- name: Setup ubuntu | |
uses: ./.github/actions/setup_ubuntu_build | |
with: | |
llvm_version: 17 | |
llvm_build_type: Release | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.8' | |
- 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: Create OCK install | |
run: | | |
ninja -C $(pwd)/build install | |
- 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: Test RSICV examples | |
run: | | |
# Set environment variables | |
export LD_LIBRARY_PATH=$(pwd)/install/lib:$(pwd)/linux_nightly_release/lib/libsycl.so:$(pwd)/linux_nightly_release/lib:$LD_LIBRARY_PATH | |
export CMAKE_CXX_COMPILER=$(pwd)/linux_nightly_release/bin/clang++ | |
export CMAKE_C_COMPILER=$(pwd)/linux_nightly_release/bin/clang | |
export CA_HAL_DEBUG=1 | |
export CA_PROFILE_LEVEL=3 | |
export ONEAPI_DEVICE_SELECTOR=opencl:fpga | |
export OCL_ICD_FILENAMES=$(pwd)/install/lib/libCL.so | |
export PATH=$(pwd)/linux_nightly_release/bin:$PATH | |
# 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="" | |
mkdir build_ock_tests | |
cmake -GNinja -Bbuild_ock_tests -DCMAKE_CXX_COMPILER=$(pwd)/linux_nightly_release/bin/clang++ -DCMAKE_C_COMPILER=$(pwd)/linux_nightly_release/bin/clang -DOpenCL_LIBRARY=$(pwd)/install/lib/libCL.so -DOpenCL_INCLUDE_DIR=$(pwd)/linux_nightly_release/include/sycl $(pwd)/examples/applications | |
ninja -C build_ock_tests | |
cd build_ock_tests | |
# Run tests | |
ctest bin/ --verbose | |
cd .. | |
- name: Package Artifacts | |
run: | | |
tar -czf ock_install.tar.gz install | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: riscv-build | |
path: ock_install.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 pre-release | |
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
with: | |
files: | |
ock_install.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 }} |