nightly-build-and-test #54
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: 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 |