Embed OpenCL tracing files in the repo #20
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: sdk-build-and-test | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: [ "master" ] | |
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: [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: | |
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 default | |
cmake --build --preset default -j $(($(nproc)/2)) | |
- name: Test | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
ctest --output-on-failure --preset default | |
- name: Build AddressSanitizer | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
cmake --preset asan | |
cmake --build --preset asan --parallel $(($(nproc)/2)) | |
- name: Build ThreadSanitizer | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
cmake --preset tsan | |
cmake --build --preset 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 fuzz | |
cmake --build --preset 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 asan --output-on-failure -L samples | |
- name: Test ThreadSanitizer | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
ctest --preset tsan --output-on-failure -L samples | |
- name: Install SDK | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
cmake --install build --config Release --prefix out | |
- name: Upload SDK | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "PTI-SDK-${{ matrix.uploadname }}" | |
path: sdk/out | |
# | |
# A note regarding the double call of source in every step in the | |
# sdk-build-and-test workflow. | |
# | |
# The first call to source is running oneapi-v2024.1.0 | |
# the second call to source overlays the compiler 2024.1.1 | |
# and custom installs it into /opt/intel/oneapinext | |
# | |
# Please refer to sdk-build-and-test-goofy | |
# | |
sdk-build-and-test-goofy: | |
name: Test pti-sdk double source | |
container: | |
image: ${{ vars.PTI_DOCKER_IMAGE_2024_1_0 }} | |
options: --device=/dev/dri --cap-add CAP_PERFMON | |
if: vars.PTI_RUN_TESTS == 1 | |
# | |
# pti is a selector to machines with Intel Ponte Vecchio officially | |
# Intel(R) Data Center GPU Max 1100 | |
# | |
runs-on: [pti] | |
# | |
# A note regarding the double call of source in every step in the | |
# sdk-build-and-test workflow. | |
# | |
# The first call to source is running oneapi-v2024.1.0 | |
# the second call to source overlays the compiler 2024.1.1 | |
# | |
# This will be improved in due course. | |
# | |
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 | |
source /opt/intel/oneapinext/setvars.sh --force | |
cmake --preset default | |
cmake --build --preset default -j $(($(nproc)/2)) | |
- name: Test | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
source /opt/intel/oneapinext/setvars.sh --force | |
ctest --output-on-failure --preset default | |
- name: Build AddressSanitizer | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
source /opt/intel/oneapinext/setvars.sh --force | |
cmake --preset asan | |
cmake --build --preset asan --parallel $(($(nproc)/2)) | |
- name: Build ThreadSanitizer | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
source /opt/intel/oneapinext/setvars.sh --force | |
cmake --preset tsan | |
cmake --build --preset 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 | |
source /opt/intel/oneapinext/setvars.sh --force | |
cmake --preset fuzz | |
cmake --build --preset fuzz --parallel $(($(nproc)/2)) | |
- name: Test AddressSanitizer | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
source /opt/intel/oneapinext/setvars.sh --force | |
ctest --preset asan --output-on-failure -L samples | |
- name: Test ThreadSanitizer | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
source /opt/intel/oneapinext/setvars.sh --force | |
ctest --preset tsan --output-on-failure -L samples | |
- name: Install SDK | |
working-directory: sdk | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
source /opt/intel/oneapinext/setvars.sh --force | |
cmake --install build --config Release --prefix out | |
- name: Upload SDK | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "PTI-SDK-2024.1.0-ubuntu-2024.1.0" | |
path: | | |
sdk/out | |
pti-tools-build-and-test: | |
name: Test pti library Ubuntu-22-04 | |
if: vars.PTI_RUN_TESTS == 1 | |
runs-on: [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-gpu-inst-count | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
python ./tests/run.py -s gpu_inst_count | |
pti-tools-build-and-test-rocky: | |
name: Test pti library for Rocky8 | |
if: vars.PTI_RUN_TESTS == 1 | |
runs-on: [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-gpu-inst-count | |
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 gpu_inst_count |