Skip to content

Commit 60ec8a1

Browse files
committed
Merge branch 'main' into v0.12.x-dev
2 parents f326630 + 4c54366 commit 60ec8a1

File tree

68 files changed

+2313
-617
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+2313
-617
lines changed

.cmake-format

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ with section("parse"):
2626
'kwargs': {
2727
'NAME': '*',
2828
'SRCS': '*',
29-
'LIBS': '*'}},
29+
'LIBS': '*',
30+
'ENVS': '*'}},
3031
'add_umf_library': {
3132
"pargs": 0,
3233
"flags": [],

.github/scripts/get_system_info.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ function check_L0_version {
1515
fi
1616

1717
if command -v zypper &> /dev/null; then
18-
zypper se level-zero && return
18+
zypper -n se level-zero || true
1919
fi
2020

2121
echo "level-zero not installed"

.github/workflows/reusable_basic.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,17 @@ jobs:
7474
install_tbb: 'ON'
7575
disable_hwloc: 'OFF'
7676
link_hwloc_statically: 'OFF'
77+
# test lld linker
78+
- os: 'ubuntu-24.04'
79+
build_type: Release
80+
compiler: {c: icx, cxx: icpx}
81+
shared_library: 'ON'
82+
level_zero_provider: 'ON'
83+
cuda_provider: 'ON'
84+
install_tbb: 'ON'
85+
disable_hwloc: 'OFF'
86+
link_hwloc_statically: 'OFF'
87+
llvm_linker: '-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_MODULE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld"'
7788
# test without installing TBB
7889
- os: 'ubuntu-22.04'
7990
build_type: Release
@@ -160,6 +171,7 @@ jobs:
160171
-DUMF_DISABLE_HWLOC=${{matrix.disable_hwloc}}
161172
-DUMF_LINK_HWLOC_STATICALLY=${{matrix.link_hwloc_statically}}
162173
${{ matrix.build_type == 'Debug' && matrix.compiler.c == 'gcc' && '-DUMF_USE_COVERAGE=ON' || '' }}
174+
${{ matrix.llvm_linker || '' }}
163175
164176
- name: Build UMF
165177
run: |

.github/workflows/reusable_benchmarks.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,15 +103,17 @@ jobs:
103103
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
104104
with:
105105
repository: intel/llvm
106-
# add preloaded UMF benchmarks
107-
# https://github.com/intel/llvm/pull/17278
108-
ref: b2f9dab5266d227cc9eb19af1b54c5bdc50221d1
106+
# [BENCHMARK] fix default timeout parameter
107+
# https://github.com/intel/llvm/pull/17412
108+
ref: 357e9e0b253b7eba105d044e38452b3c09169f8a
109109
path: sycl-repo
110110
fetch-depth: 1
111111

112112
- name: Install benchmarking scripts deps
113113
run: |
114-
pip install --force-reinstall -r ${{github.workspace}}/sycl-repo/unified-runtime/third_party/benchmark_requirements.txt
114+
python -m venv .venv
115+
source .venv/bin/activate
116+
pip install -r ${{github.workspace}}/sycl-repo/unified-runtime/third_party/benchmark_requirements.txt
115117
116118
- name: Set core range and GPU mask
117119
run: |
@@ -135,10 +137,12 @@ jobs:
135137
id: benchmarks
136138
working-directory: ${{env.BUILD_DIR}}
137139
run: >
140+
source ${{github.workspace}}/.venv/bin/activate &&
138141
taskset -c ${{ env.CORES }} ${{ github.workspace }}/sycl-repo/unified-runtime/scripts/benchmarks/main.py
139142
~/bench_workdir_umf
140143
--umf ${{env.BUILD_DIR}}
141144
--compare baseline
145+
--timeout 3000
142146
${{ inputs.upload_report && '--output-html' || '' }}
143147
${{ inputs.pr_no != 0 && '--output-markdown' || '' }}
144148
${{ inputs.bench_script_params }}

.github/workflows/reusable_compatibility.yml

Lines changed: 103 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Workflow for checkig the backward compatibility of UMF.
1+
# Workflow for checking the backward compatibility of UMF.
22
# Test the latest UMF shared library with binaries compiled using the older UMF
33
# shared library.
44
name: Compatibility
@@ -15,7 +15,7 @@ permissions:
1515
contents: read
1616

1717
jobs:
18-
ubuntu-build:
18+
ubuntu:
1919
name: Ubuntu
2020
runs-on: 'ubuntu-22.04'
2121

@@ -35,12 +35,6 @@ jobs:
3535
- name: Install libhwloc
3636
working-directory: ${{github.workspace}}/tag_version
3737
run: .github/scripts/install_hwloc.sh
38-
39-
- name: Get "tag" UMF version
40-
working-directory: ${{github.workspace}}/tag_version
41-
run: |
42-
VERSION=$(git describe --tags)
43-
echo "tag version: $VERSION"
4438

4539
- name: Configure "tag" UMF build
4640
working-directory: ${{github.workspace}}/tag_version
@@ -52,6 +46,7 @@ jobs:
5246
-DCMAKE_C_COMPILER=gcc
5347
-DCMAKE_CXX_COMPILER=g++
5448
-DUMF_BUILD_TESTS=ON
49+
-DUMF_BUILD_EXAMPLES=ON
5550
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
5651
-DUMF_BUILD_CUDA_PROVIDER=ON
5752
-DUMF_FORMAT_CODE_STYLE=OFF
@@ -64,7 +59,7 @@ jobs:
6459
working-directory: ${{github.workspace}}/tag_version
6560
run: |
6661
cmake --build ${{github.workspace}}/tag_version/build -j $(nproc)
67-
62+
6863
- name: Run "tag" UMF tests
6964
working-directory: ${{github.workspace}}/tag_version/build
7065
run: |
@@ -75,13 +70,7 @@ jobs:
7570
with:
7671
fetch-depth: 0
7772
path: ${{github.workspace}}/latest_version
78-
79-
- name: Get latest UMF version
80-
working-directory: ${{github.workspace}}/latest_version
81-
run: |
82-
VERSION=$(git describe --tags)
83-
echo "checked version: $VERSION"
84-
73+
8574
- name: Configure latest UMF build
8675
working-directory: ${{github.workspace}}/latest_version
8776
run: >
@@ -97,7 +86,6 @@ jobs:
9786
-DUMF_FORMAT_CODE_STYLE=OFF
9887
-DUMF_DEVELOPER_MODE=ON
9988
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
100-
-DUMF_TESTS_FAIL_ON_SKIP=ON
10189
10290
- name: Build latest UMF
10391
working-directory: ${{github.workspace}}/latest_version
@@ -106,12 +94,14 @@ jobs:
10694
10795
- name: Run "tag" UMF tests with latest UMF libs (warnings enabled)
10896
working-directory: ${{github.workspace}}/tag_version/build
97+
# GTEST_FILTER is used below to skip test that is not compatible
10998
run: >
110-
UMF_LOG="level:warning;flush:debug;output:stderr;pid:no"
111-
LD_LIBRARY_PATH=${{github.workspace}}/latest_version/build/lib/
112-
ctest --output-on-failure -E "umf-mempolicy" # disable tests that rely on internal structures
113-
114-
windows-build:
99+
UMF_LOG="level:warning;flush:debug;output:stderr;pid:no"
100+
LD_LIBRARY_PATH=${{github.workspace}}/latest_version/build/lib/
101+
GTEST_FILTER="-*umfIpcTest.GetPoolByOpenedHandle*"
102+
ctest --verbose
103+
104+
windows:
115105
name: Windows
116106
env:
117107
VCPKG_PATH: "${{github.workspace}}/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows"
@@ -132,16 +122,11 @@ jobs:
132122
vcpkgDirectory: ${{github.workspace}}/vcpkg
133123
vcpkgJsonGlob: '**/vcpkg.json'
134124

125+
# NOTE we use vcpkg setup from "tag" version
135126
- name: Install dependencies
136127
working-directory: ${{github.workspace}}/tag_version
137128
run: vcpkg install
138129
shell: pwsh # Specifies PowerShell as the shell for running the script.
139-
140-
- name: Get "tag" UMF version
141-
working-directory: ${{github.workspace}}/tag_version
142-
run: |
143-
$version = (git describe --tags)
144-
echo "tag version: $VERSION"
145130

146131
- name: Configure "tag" UMF build
147132
working-directory: ${{github.workspace}}/tag_version
@@ -153,6 +138,7 @@ jobs:
153138
-DCMAKE_CXX_COMPILER=cl
154139
-DUMF_BUILD_SHARED_LIBRARY=ON
155140
-DUMF_BUILD_TESTS=ON
141+
-DUMF_BUILD_EXAMPLES=ON
156142
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
157143
-DUMF_BUILD_CUDA_PROVIDER=ON
158144
-DUMF_FORMAT_CODE_STYLE=OFF
@@ -174,13 +160,6 @@ jobs:
174160
fetch-depth: 0
175161
path: ${{github.workspace}}/latest_version
176162

177-
# NOTE we use vcpkg setup from "tag" version
178-
- name: Get latest UMF version
179-
working-directory: ${{github.workspace}}/latest_version
180-
run: |
181-
$version = (git describe --tags)
182-
echo "latest version: $VERSION"
183-
184163
- name: Configure latest UMF build
185164
working-directory: ${{github.workspace}}/latest_version
186165
run: >
@@ -196,7 +175,6 @@ jobs:
196175
-DUMF_FORMAT_CODE_STYLE=OFF
197176
-DUMF_DEVELOPER_MODE=ON
198177
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
199-
-DUMF_TESTS_FAIL_ON_SKIP=ON
200178
201179
- name: Build latest UMF
202180
run: cmake --build "${{github.workspace}}/latest_version/build" --config Debug -j $Env:NUMBER_OF_PROCESSORS
@@ -205,5 +183,93 @@ jobs:
205183
working-directory: ${{github.workspace}}/tag_version/build
206184
run: |
207185
$env:UMF_LOG="level:warning;flush:debug;output:stderr;pid:no"
186+
$env:GTEST_FILTER="-*umfIpcTest.GetPoolByOpenedHandle*"
208187
cp ${{github.workspace}}/latest_version/build/bin/Debug/umf.dll ${{github.workspace}}/tag_version/build/bin/Debug/umf.dll
209-
ctest -C Debug --output-on-failure --test-dir test
188+
ctest -C Debug --verbose
189+
190+
gpu:
191+
name: GPU Ubuntu
192+
# run only on upstream; forks will not have the HW
193+
if: github.repository == 'oneapi-src/unified-memory-framework'
194+
strategy:
195+
matrix:
196+
provider: ['LEVEL_ZERO', 'CUDA']
197+
runs-on: ["DSS-${{matrix.provider}}", "DSS-UBUNTU"]
198+
199+
steps:
200+
- name: Checkout "tag" UMF version
201+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
202+
with:
203+
fetch-depth: 0
204+
ref: refs/tags/${{inputs.tag}}
205+
path: ${{github.workspace}}/tag_version
206+
207+
- name: Configure "tag" UMF build
208+
working-directory: ${{github.workspace}}/tag_version
209+
run: >
210+
cmake
211+
-B ${{github.workspace}}/tag_version/build
212+
-DCMAKE_BUILD_TYPE=Debug
213+
-DUMF_BUILD_SHARED_LIBRARY=ON
214+
-DCMAKE_C_COMPILER=gcc
215+
-DCMAKE_CXX_COMPILER=g++
216+
-DUMF_BUILD_TESTS=ON
217+
-DUMF_BUILD_GPU_TESTS=ON
218+
-DUMF_BUILD_EXAMPLES=ON
219+
-DUMF_BUILD_GPU_EXAMPLES=ON
220+
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
221+
-DUMF_BUILD_CUDA_PROVIDER=OFF
222+
-DUMF_BUILD_${{matrix.provider}}_PROVIDER=ON
223+
-DUMF_FORMAT_CODE_STYLE=OFF
224+
-DUMF_DEVELOPER_MODE=ON
225+
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
226+
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
227+
-DUMF_TESTS_FAIL_ON_SKIP=ON
228+
229+
- name: Build "tag" UMF
230+
working-directory: ${{github.workspace}}/tag_version
231+
run: |
232+
cmake --build ${{github.workspace}}/tag_version/build -j $(nproc)
233+
234+
- name: Run "tag" UMF tests
235+
working-directory: ${{github.workspace}}/tag_version/build
236+
run: >
237+
LD_LIBRARY_PATH=${{github.workspace}}/tag_version/build/lib/
238+
GTEST_FILTER="-*umfIpcTest.GetPoolByOpenedHandle*"
239+
ctest --output-on-failure
240+
241+
- name: Checkout latest UMF version
242+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
243+
with:
244+
fetch-depth: 0
245+
path: ${{github.workspace}}/latest_version
246+
247+
- name: Configure latest UMF build
248+
working-directory: ${{github.workspace}}/latest_version
249+
run: >
250+
cmake
251+
-B ${{github.workspace}}/latest_version/build
252+
-DCMAKE_BUILD_TYPE=Debug
253+
-DUMF_BUILD_SHARED_LIBRARY=ON
254+
-DCMAKE_C_COMPILER=gcc
255+
-DCMAKE_CXX_COMPILER=g++
256+
-DUMF_BUILD_TESTS=OFF
257+
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
258+
-DUMF_BUILD_CUDA_PROVIDER=ON
259+
-DUMF_FORMAT_CODE_STYLE=OFF
260+
-DUMF_DEVELOPER_MODE=ON
261+
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
262+
263+
- name: Build latest UMF
264+
working-directory: ${{github.workspace}}/latest_version
265+
run: |
266+
cmake --build ${{github.workspace}}/latest_version/build -j $(nproc)
267+
268+
# NOTE: Once not implemented features may now be implemented - exclude these tests
269+
- name: Run "tag" UMF tests with latest UMF libs (warnings enabled)
270+
working-directory: ${{github.workspace}}/tag_version/build
271+
run: >
272+
UMF_LOG="level:warning;flush:debug;output:stderr;pid:no"
273+
LD_LIBRARY_PATH=${{github.workspace}}/latest_version/build/lib/
274+
GTEST_FILTER="-*umfIpcTest.GetPoolByOpenedHandle*"
275+
ctest --verbose -E "not_impl"

.github/workflows/reusable_gpu.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ jobs:
9999
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
100100
-DUMF_BUILD_${{inputs.name}}_PROVIDER=ON
101101
-DUMF_TESTS_FAIL_ON_SKIP=ON
102-
${{ matrix.os == 'Ubuntu' && matrix.build_type == 'Debug' && '-DUMF_USE_COVERAGE=ON' || '' }}
103-
${{ matrix.os == 'Windows' && '-DCMAKE_SUPPRESS_REGENERATION=ON' || '' }}
102+
${{ matrix.os == 'Ubuntu' && matrix.build_type == 'Debug' && '-DUMF_USE_COVERAGE=ON' || '' }}
103+
${{ matrix.os == 'Windows' && '-DCMAKE_SUPPRESS_REGENERATION=ON' || '' }}
104104
105105
- name: Build UMF
106106
run: cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j ${{matrix.number_of_processors}}

.github/workflows/reusable_multi_numa.yml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Runs tests on multi-numa machine
1+
# Runs tests on multi-numa machines
22
name: MultiNuma
33

44
on: [workflow_call]
@@ -20,7 +20,7 @@ jobs:
2020

2121
strategy:
2222
matrix:
23-
os: [ubuntu-22.04, rhel-9.1]
23+
os: [ubuntu-22.04, rhel-9.1, sles-15]
2424
build_type: [Debug, Release]
2525
shared_library: ['ON', 'OFF']
2626
runs-on: ["DSS-MULTI-NUMA", "DSS-${{matrix.os}}"]
@@ -31,9 +31,6 @@ jobs:
3131
with:
3232
fetch-depth: 0
3333

34-
- name: Get information about platform
35-
run: .github/scripts/get_system_info.sh
36-
3734
- name: Configure build
3835
run: >
3936
cmake
@@ -53,24 +50,24 @@ jobs:
5350
run: cmake --build ${{github.workspace}}/build -j $(nproc)
5451

5552
- name: Run tests
56-
if: matrix.os != 'rhel-9.1'
53+
if: (matrix.os != 'rhel-9.1') && (matrix.os != 'sles-15')
5754
working-directory: ${{github.workspace}}/build
5855
run: ctest --output-on-failure --test-dir test
5956

60-
# On RHEL, hwloc version is just a little too low.
57+
# On RHEL/SLES, hwloc version is just a little too low.
6158
# Skip some tests until we upgrade hwloc and update CMake to properly handle local hwloc installation.
6259
# TODO: fix issue #560
6360
# TODO: add issue for -E test_init_teardown - it is not clear why it fails
64-
- name: Run tests (on RHEL)
65-
if: matrix.os == 'rhel-9.1'
61+
- name: Run tests (on RHEL/SLES)
62+
if: (matrix.os == 'rhel-9.1') || (matrix.os == 'sles-15')
6663
working-directory: ${{github.workspace}}/build
6764
run: |
6865
ctest --output-on-failure --test-dir test -E "test_provider_os_memory_multiple_numa_nodes|test_init_teardown"
6966
./test/test_provider_os_memory_multiple_numa_nodes \
7067
--gtest_filter="-*checkModeLocal/*:*checkModePreferredEmptyNodeset/*:testNuma.checkModeInterleave"
7168
7269
- name: Run NUMA tests under valgrind
73-
if: matrix.os != 'rhel-9.1'
70+
if: (matrix.os != 'rhel-9.1') && (matrix.os != 'sles-15')
7471
run: |
7572
${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{env.BUILD_DIR}} memcheck "${{env.NUMA_TESTS}}"
7673
${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{env.BUILD_DIR}} drd "${{env.NUMA_TESTS}}"
@@ -91,3 +88,7 @@ jobs:
9188
with:
9289
name: ${{env.COVERAGE_NAME}}-${{matrix.os}}-shared-${{matrix.shared_library}}
9390
path: ${{env.COVERAGE_DIR}}
91+
92+
- name: Get information about platform
93+
if: always()
94+
run: .github/scripts/get_system_info.sh

.github/workflows/reusable_proxy_lib.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
- name: Install apt packages
3333
run: |
3434
sudo apt-get update
35-
sudo apt-get install -y cmake libhwloc-dev libtbb-dev lcov
35+
sudo apt-get install -y cmake libhwloc-dev libnuma-dev libtbb-dev lcov
3636
3737
- name: Configure build
3838
run: >

0 commit comments

Comments
 (0)