Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/scripts/install_oneAPI.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# install_oneAPI.sh - Script for installing Intel oneAPI from the official repository

apt-get update
apt-get install -y gpg-agent gnupg
apt-get install -y gpg-agent gnupg wget
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor -o /usr/share/keyrings/oneapi-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main' > /etc/apt/sources.list.d/oneAPI.list
apt-get update
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/detect_changes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:

permissions:
contents: read
packages: read

jobs:
DetectChanges:
Expand Down
138 changes: 71 additions & 67 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,66 +9,67 @@ on:

permissions:
contents: read
pull-requests: read

env:
BUILD_DIR : "${{github.workspace}}/build"
INSTALL_DIR: "${{github.workspace}}/build/install"

jobs:
fuzz-test:
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
compiler: [{c: clang, cxx: clang++}]
name: Fuzz test (ubuntu-latest, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}})
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0

- name: Install apt packages
run: |
sudo apt-get update
sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev

- name: Find Clang fuzzer lib
run: |
CLANG_LIBS_DIR=$(find /usr/lib -name "libclang_rt.fuzzer_no_main-x86_64.a" -exec dirname {} \; | head -n 1)
echo "CLANG_LIBS_DIR=${CLANG_LIBS_DIR}" >> $GITHUB_ENV

- name: Configure CMake
run: >
cmake
-B ${{github.workspace}}/build
-DCMAKE_PREFIX_PATH=${{env.CLANG_LIBS_DIR}}
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
-DUMF_BUILD_SHARED_LIBRARY=ON
-DUMF_TESTS_FAIL_ON_SKIP=ON
-DUMF_DEVELOPER_MODE=ON
-DUMF_BUILD_FUZZTESTS=ON

- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)

- name: Run regular tests
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"

- name: Run regular tests with proxy library
working-directory: ${{env.BUILD_DIR}}
run: LD_PRELOAD=./lib/libumf_proxy.so ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"

- name: Fuzz long test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"

valgrind:
Fuzzing:
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
compiler: [{c: clang, cxx: clang++}]
name: Fuzzing (ubuntu-latest, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}})
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0

- name: Install apt packages
run: |
sudo apt-get update
sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev

- name: Find Clang fuzzer lib
run: |
CLANG_LIBS_DIR=$(find /usr/lib -name "libclang_rt.fuzzer_no_main-x86_64.a" -exec dirname {} \; | head -n 1)
echo "CLANG_LIBS_DIR=${CLANG_LIBS_DIR}" >> $GITHUB_ENV

- name: Configure CMake
run: >
cmake
-B ${{github.workspace}}/build
-DCMAKE_PREFIX_PATH=${{env.CLANG_LIBS_DIR}}
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
-DUMF_BUILD_SHARED_LIBRARY=ON
-DUMF_TESTS_FAIL_ON_SKIP=ON
-DUMF_DEVELOPER_MODE=ON
-DUMF_BUILD_FUZZTESTS=ON

- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)

- name: Run regular tests
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"

- name: Run regular tests with proxy library
working-directory: ${{env.BUILD_DIR}}
run: LD_PRELOAD=./lib/libumf_proxy.so ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"

- name: Fuzz long test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"

Valgrind:
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -106,6 +107,7 @@ jobs:
- name: Run tests under valgrind
run: ${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{github.workspace}}/build ${{matrix.tool}}

# Build and test UMF with different CMake generators on Windows
Windows-generators:
strategy:
matrix:
Expand Down Expand Up @@ -199,12 +201,13 @@ jobs:
${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
${{ matrix.static_hwloc == 'ON' && '--hwloc' || '' }}

icx:
# Build and test UMF with Intel C++ Compiler (ICX) on Windows
Windows-icx:
env:
VCPKG_PATH: "${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
strategy:
matrix:
os: ['windows-2019', 'windows-2022']
os: ['windows-2022', 'windows-2025']
build_type: [Debug]
compiler: [{c: icx, cxx: icx}]
shared_library: ['ON', 'OFF']
Expand All @@ -215,40 +218,40 @@ jobs:
shared_library: 'ON'
name: ICX (${{matrix.os}}, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, shared_library=${{matrix.shared_library}})
runs-on: ${{matrix.os}}

steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0

- name: Initialize vcpkg
uses: lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
with:
vcpkgGitCommitId: ea2a964f9303270322cf3f2d51c265ba146c422d # 1.04.2025
vcpkgDirectory: ${{env.BUILD_DIR}}/vcpkg
vcpkgJsonGlob: '**/vcpkg.json'

- name: Install dependencies
run: vcpkg install --triplet x64-windows

- name: Install Ninja
uses: seanmiddleditch/gha-setup-ninja@3b1f8f94a2f8254bd26914c4ab9474d4f0015f67 # v6

- name: Download icx compiler
env:
# Link source: https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler-download.html
CMPLR_LINK: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/15a35578-2f9a-4f39-804b-3906e0a5f8fc/w_dpcpp-cpp-compiler_p_2024.2.1.83_offline.exe"
run: |
Invoke-WebRequest -Uri "${{ env.CMPLR_LINK }}" -OutFile compiler_install.exe

- name: Install icx compiler
shell: cmd
run: |
start /b /wait .\compiler_install.exe -s -x -f extracted --log extract.log
extracted\bootstrapper.exe -s --action install --eula=accept -p=NEED_VS2017_INTEGRATION=0 ^
-p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=0 --log-dir=.

- name: Configure build
shell: cmd
run: |
Expand All @@ -267,14 +270,14 @@ jobs:
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON ^
-DUMF_BUILD_CUDA_PROVIDER=ON ^
-DUMF_TESTS_FAIL_ON_SKIP=ON

- name: Build UMF
shell: cmd
run: |
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
call "C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat"
cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS%

- name: Run tests
shell: cmd
working-directory: ${{env.BUILD_DIR}}
Expand All @@ -285,8 +288,7 @@ jobs:

# Scenarios where UMF_LINK_HWLOC_STATICALLY is set to OFF and hwloc is not installed in the system
# The hwloc library is fetched implicitly
hwloc-fallback:

Hwloc-fallback:
strategy:
matrix:
include:
Expand Down Expand Up @@ -366,6 +368,8 @@ jobs:
pr_no: '0'
bench_script_params: '--save Baseline_PVC'

# Run benchmarks with the latest SYCL (with the latest UMF copied into the SYCL)
# to verify the compatibility.
Benchmarks-sycl:
uses: ./.github/workflows/reusable_benchmarks.yml
permissions:
Expand Down
35 changes: 18 additions & 17 deletions .github/workflows/reusable_basic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,6 @@ jobs:
run: rm -rf ${{env.INSTL_DIR}}

- name: Test UMF installation and uninstallation
# The '--shared-library' parameter is added to the installation test when the UMF is built as a shared library
run: >
python3 ${{github.workspace}}/test/test_installation.py
--build-dir ${{env.BUILD_DIR}}
Expand All @@ -236,33 +235,37 @@ jobs:
VCPKG_PATH: "${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
VCPKG_PATH_BIN: "${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows/bin;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows/bin;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows/bin"
strategy:
# TODO: add '3.14.0-win64-x64' CMake testing
matrix:
os: ['windows-2019', 'windows-2022']
os: ['windows-2022', 'windows-2025']
build_type: [Debug, Release]
compiler: [{c: cl, cxx: cl}]
shared_library: ['ON', 'OFF']
level_zero_provider: ['ON']
cuda_provider: ['ON']
cmake_ver: ['default']
include:
- os: 'windows-2019'
# clang build fails on Windows 2022
build_type: Release
# clang-cl works well with Ninja, Debug build
# For VS generator it produces build errors not related to UMF
- os: 'windows-2025'
build_type: Debug
compiler: {c: clang-cl, cxx: clang-cl}
extra_build_options: '-G Ninja'
shared_library: 'ON'
level_zero_provider: 'ON'
cuda_provider: 'ON'
toolset: "-T ClangCL"
cmake_ver: '3.14.0-win64-x64'
- os: 'windows-2022'
cmake_ver: 'default'
# Custom CMake and umfd enabled
- os: 'windows-2025'
build_type: Release
compiler: {c: cl, cxx: cl}
shared_library: 'ON'
level_zero_provider: 'ON'
cuda_provider: 'ON'
umfd_lib: 'ON'
cmake_ver: '3.28.0-windows-x86_64'
- os: 'windows-2022'
# L0/CUDA providers disabled
- os: 'windows-2025'
build_type: Release
compiler: {c: cl, cxx: cl}
shared_library: 'ON'
Expand Down Expand Up @@ -308,10 +311,10 @@ jobs:
# versions of CMake to correctly locate the libraries
- name: Install dependencies
run: |
vcpkg install --triplet x64-windows
vcpkg install --triplet x64-windows
$env:Path = "${{env.VCPKG_PATH_BIN}};$env:Path"
echo "PATH=$env:Path" >> $env:GITHUB_ENV
shell: pwsh # Specifies PowerShell as the shell for running the script.
shell: pwsh

- name: Get UMF version
run: |
Expand All @@ -323,7 +326,7 @@ jobs:
run: >
cmake
-B ${{env.BUILD_DIR}}
${{matrix.toolset}}
${{matrix.extra_build_options || ''}}
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
-DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
Expand Down Expand Up @@ -357,8 +360,6 @@ jobs:
shell: pwsh

- name: Test UMF installation and uninstallation
# The '--shared-library' parameter is added to the installation test when
# the UMF is built as a shared library
run: >
python3 ${{github.workspace}}/test/test_installation.py
--build-dir ${{env.BUILD_DIR}}
Expand All @@ -385,7 +386,7 @@ jobs:
matrix:
build_type: [Release]

runs-on: 'windows-2022'
runs-on: 'windows-latest'

steps:
- name: Checkout
Expand Down Expand Up @@ -427,7 +428,7 @@ jobs:
matrix:
build_type: [Release]

runs-on: 'windows-2022'
runs-on: 'windows-latest'

steps:
- name: Checkout
Expand Down Expand Up @@ -469,7 +470,7 @@ jobs:
matrix:
build_type: [Release]

runs-on: 'windows-2022'
runs-on: 'windows-latest'

steps:
- name: Checkout
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/reusable_benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ on:

permissions:
contents: read
pull-requests: read

env:
UMF_DIR: "${{github.workspace}}/umf-repo"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/reusable_codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on: workflow_call

permissions:
contents: read
security-events: read

env:
BUILD_DIR : "${{github.workspace}}/build"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable_compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ jobs:
env:
VCPKG_PATH: "${{github.workspace}}/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows"
VCPKG_BIN_PATH: "${{github.workspace}}/vcpkg/packages/hwloc_x64-windows/bin;${{github.workspace}}/vcpkg/packages/tbb_x64-windows/bin;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows/bin"
runs-on: "windows-2022"
runs-on: "windows-latest"

steps:
- name: Checkout "tag" UMF version
Expand Down
Loading
Loading