Skip to content

nightly-build-and-test #6

nightly-build-and-test

nightly-build-and-test #6

name: nightly-build-and-test
on:
workflow_dispatch:
schedule:
- cron: '30 5 * * *' # Daily 5:30 AM UTC / 12:30 AM EST
defaults:
run:
shell: bash
permissions:
contents: read
jobs:
sdk-build-and-test:
name: Test pti-sdk Ubuntu and Rocky
#
# pti is a selector to machines with Intel Ponte Vecchio officially
# Intel(R) Data Center GPU Max 1100
#
runs-on: [self-hosted, Linux, pti]
strategy:
matrix:
include:
- container: ${{ vars.PTI_DOCKER_IMAGE_2024_1_1 }}
uploadname: "ubuntu22.4-2024.1.1"
- container: ${{ vars.PTI_DOCKER_IMAGE_ROCKY8_2024_1_1 }}
uploadname: "rocky8-2024.1.1"
- container: ${{ vars.PTI_DOCKER_IMAGE_2024_1_0 }}
uploadname: "ubuntu22.4-2024.1.0"
container:
image: ${{ matrix.container }}
options: --device=/dev/dri --cap-add CAP_PERFMON
if: vars.PTI_RUN_TESTS == 1
steps:
- name: Clean-up
run: rm -rf *
- name: Checkout
uses: actions/checkout@v4
- name: Build
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
cmake --preset linux-icpx-release
cmake --build --preset linux-icpx-release -j $(($(nproc)/2))
- name: Test
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
ctest --output-on-failure --preset linux-icpx-release
- name: Build AddressSanitizer
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
cmake --preset linux-asan
cmake --build --preset linux-asan --parallel $(($(nproc)/2))
- name: Build ThreadSanitizer
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
cmake --preset linux-tsan
cmake --build --preset linux-tsan --parallel $(($(nproc)/2))
- name: Build libFuzzer
working-directory: sdk
run: |
# To ensure it still builds, run build for fuzz targets until we have
# proper fuzz testing infrastructure in place.
source /opt/intel/oneapi/setvars.sh
cmake --preset linux-fuzz
cmake --build --preset linux-fuzz --parallel $(($(nproc)/2))
#
# Rocky8 has a problem with this test.
#
- name: Test AddressSanitizer
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
#
# Must skip Rocky8 with more than one GPU because of
# an unexpected failure as documented in PTI-74
#
if [ $(sycl-ls|grep 'ext_oneapi_level_zero:gpu:' -c) -gt 1 ] &&\
[[ $(cat /etc/redhat-release) =~ Rocky.*8 ]]; then
exit 0
fi
ctest --preset linux-asan --output-on-failure -L samples
- name: Test ThreadSanitizer
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
ctest --preset linux-tsan --output-on-failure -L samples
- name: Install SDK
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
cmake --install build-linux-icpx-release --config Release --prefix out
- name: Upload SDK
uses: actions/upload-artifact@v4
with:
name: "PTI-SDK-${{ matrix.uploadname }}"
path: sdk/out
pti-tools-build-and-test:
name: Test pti library Ubuntu-22-04
if: vars.PTI_RUN_TESTS == 1
runs-on: [Linux, pti]
strategy:
matrix:
include:
- container: ${{ vars.PTI_DOCKER_IMAGE_2024_1_1 }}
- container: ${{ vars.PTI_DOCKER_IMAGE_2024_1_0 }}
container:
image: ${{ matrix.container }}
options: --device=/dev/dri --cap-add CAP_PERFMON
steps:
- name: Clean-up
run: rm -rf *
- name: Checkout
uses: actions/checkout@v4
- name: Build-and-test-unitrace
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s unitrace
- name: Build-and-test-onetrace
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s onetrace
- name: Build-and-test-oneprof
run: |
source /opt/intel/oneapi/setvars.sh
#
# Must with more than one GPU because of
# an random failures as documented in PTI-75
#
if [ $(sycl-ls|grep 'ext_oneapi_level_zero:gpu:' -c) -gt 1 ]; then
exit 0
fi
python ./tests/run.py -s oneprof
- name: Build-and-test-sysmon
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s sysmon
- name: Build-and-test-cl_gpu_metrics
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s cl_gpu_metrics
- name: Build-and-test-instcount
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s instcount
pti-tools-build-and-test-rocky:
name: Test pti library for Rocky8
if: vars.PTI_RUN_TESTS == 1
runs-on: [Linux, pti]
strategy:
matrix:
include:
- container: ${{ vars.PTI_DOCKER_IMAGE_ROCKY8_2024_1_1 }}
container:
image: ${{ matrix.container }}
options: --device=/dev/dri --cap-add CAP_PERFMON
steps:
- name: Clean-up
run: rm -rf *
- name: Checkout
uses: actions/checkout@v4
- name: Build-and-test-unitrace
run: |
source /opt/intel/oneapi/setvars.sh
source /opt/rh/gcc-toolset-13/enable
python3.11 ./tests/run.py -s unitrace
- name: Build-and-test-onetrace
run: |
source /opt/intel/oneapi/setvars.sh
source /opt/rh/gcc-toolset-13/enable
python3.11 ./tests/run.py -s onetrace
- name: Build-and-test-oneprof
run: |
source /opt/intel/oneapi/setvars.sh
source /opt/rh/gcc-toolset-13/enable
python3.11 ./tests/run.py -s oneprof
- name: Build-and-test-sysmon
run: |
source /opt/intel/oneapi/setvars.sh
source /opt/rh/gcc-toolset-13/enable
python3.11 ./tests/run.py -s sysmon
- name: Build-and-test-cl_gpu_metrics
run: |
source /opt/intel/oneapi/setvars.sh
source /opt/rh/gcc-toolset-13/enable
python3.11 ./tests/run.py -s cl_gpu_metrics
#
# Fix!!
# A problem with GLIBCXX_3.4.26 as noted in VASP-30704
#
- name: Build-and-test-instcount
if: vars.PTI_DOCKER_IMAGE_ROCKY8_2024_1_1 != matrix.container
run: |
source /opt/intel/oneapi/setvars.sh
source /opt/rh/gcc-toolset-13/enable
python3.11 ./tests/run.py -s instcount