Skip to content

Commit b4226c3

Browse files
committed
todo
1 parent e31c856 commit b4226c3

File tree

5 files changed

+153
-74
lines changed

5 files changed

+153
-74
lines changed

.github/workflows/pr_push.yml

Lines changed: 7 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -16,75 +16,11 @@ permissions:
1616
contents: read
1717

1818
jobs:
19-
CodeChecks:
20-
uses: ./.github/workflows/reusable_checks.yml
21-
DocsBuild:
22-
uses: ./.github/workflows/reusable_docs_build.yml
23-
FastBuild:
24-
name: Fast builds
25-
needs: [CodeChecks, DocsBuild]
26-
uses: ./.github/workflows/reusable_fast.yml
27-
Build:
28-
name: Basic builds
29-
needs: [FastBuild]
30-
uses: ./.github/workflows/reusable_basic.yml
31-
DevDax:
32-
needs: [FastBuild]
33-
uses: ./.github/workflows/reusable_dax.yml
34-
MultiNuma:
35-
needs: [FastBuild]
36-
uses: ./.github/workflows/reusable_multi_numa.yml
37-
L0:
38-
needs: [Build]
39-
uses: ./.github/workflows/reusable_gpu.yml
19+
Compatibility:
20+
name: Compatibility
21+
uses: ./.github/workflows/reusable_compatibility.yml
22+
strategy:
23+
matrix:
24+
tag: ["v0.10.1"]
4025
with:
41-
name: "LEVEL_ZERO"
42-
shared_lib: "['ON']"
43-
CUDA:
44-
needs: [Build]
45-
uses: ./.github/workflows/reusable_gpu.yml
46-
with:
47-
name: "CUDA"
48-
shared_lib: "['ON']"
49-
Sanitizers:
50-
needs: [FastBuild]
51-
uses: ./.github/workflows/reusable_sanitizers.yml
52-
QEMU:
53-
needs: [FastBuild]
54-
uses: ./.github/workflows/reusable_qemu.yml
55-
with:
56-
short_run: true
57-
Benchmarks:
58-
needs: [Build]
59-
uses: ./.github/workflows/reusable_benchmarks.yml
60-
ProxyLib:
61-
needs: [Build]
62-
uses: ./.github/workflows/reusable_proxy_lib.yml
63-
Valgrind:
64-
needs: [Build]
65-
uses: ./.github/workflows/reusable_valgrind.yml
66-
Coverage:
67-
# total coverage (on upstream only)
68-
if: github.repository == 'oneapi-src/unified-memory-framework'
69-
needs: [Build, DevDax, L0, CUDA, MultiNuma, QEMU, ProxyLib]
70-
uses: ./.github/workflows/reusable_coverage.yml
71-
secrets: inherit
72-
with:
73-
trigger: "${{github.event_name}}"
74-
Coverage_partial:
75-
# partial coverage (on forks)
76-
if: github.repository != 'oneapi-src/unified-memory-framework'
77-
needs: [Build, QEMU, ProxyLib]
78-
uses: ./.github/workflows/reusable_coverage.yml
79-
CodeQL:
80-
needs: [Build]
81-
permissions:
82-
contents: read
83-
security-events: write
84-
uses: ./.github/workflows/reusable_codeql.yml
85-
Trivy:
86-
needs: [Build]
87-
permissions:
88-
contents: read
89-
security-events: write
90-
uses: ./.github/workflows/reusable_trivy.yml
26+
tag: ${{ matrix.tag }}
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# TODO
2+
name: Compatibility
3+
4+
on:
5+
workflow_call:
6+
inputs:
7+
tag:
8+
description: Check backward compatibility with this tag
9+
type: string
10+
default: "0.10.1"
11+
12+
permissions:
13+
contents: read
14+
15+
jobs:
16+
ubuntu-build:
17+
name: Ubuntu
18+
strategy:
19+
matrix:
20+
# TODO other systems?
21+
os: ['ubuntu-22.04']
22+
build_type: [Debug]
23+
compiler: [{c: gcc, cxx: g++}]
24+
shared_library: ['ON']
25+
level_zero_provider: ['ON']
26+
cuda_provider: ['ON']
27+
install_tbb: ['ON']
28+
runs-on: ${{matrix.os}}
29+
30+
steps:
31+
# NOTE: we need jemalloc for older version of UMF
32+
- name: Install apt packages
33+
run: |
34+
sudo apt-get update
35+
sudo apt-get install -y clang cmake libnuma-dev libjemalloc-dev
36+
37+
- name: Install TBB apt package
38+
if: matrix.install_tbb == 'ON'
39+
run: |
40+
sudo apt-get install -y libtbb-dev
41+
42+
- name: Checkout "tag" UMF version
43+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
44+
with:
45+
fetch-depth: 0
46+
ref: refs/tags/${{inputs.tag}}
47+
path: ${{github.workspace}}/tag_version
48+
49+
- name: Install libhwloc
50+
working-directory: ${{github.workspace}}/tag_version
51+
run: .github/scripts/install_hwloc.sh
52+
53+
- name: Get "tag" UMF version
54+
working-directory: ${{github.workspace}}/tag_version
55+
run: |
56+
VERSION=$(git describe --tags --abbrev=0 | grep -oP '\d+\.\d+\.\d+')
57+
echo "tag version: $VERSION"
58+
59+
- name: Configure "tag" UMF build
60+
working-directory: ${{github.workspace}}/tag_version
61+
run: >
62+
cmake
63+
-B ${{github.workspace}}/tag_version/build
64+
-DCMAKE_INSTALL_PREFIX="${{github.workspace}}/tag_version/build/install"
65+
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
66+
-DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
67+
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
68+
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
69+
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
70+
-DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
71+
-DUMF_FORMAT_CODE_STYLE=OFF
72+
-DUMF_DEVELOPER_MODE=ON
73+
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
74+
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
75+
-DUMF_TESTS_FAIL_ON_SKIP=ON
76+
77+
- name: Build "tag" UMF
78+
working-directory: ${{github.workspace}}/tag_version
79+
run: |
80+
cmake --build ${{github.workspace}}/tag_version/build -j $(nproc)
81+
82+
# NOTE: we need jemalloc for older version of UMF
83+
# if: startsWith(github.event.inputs.tag, '0.10.') || startsWith(github.event.inputs.tag, '0.9.')
84+
- name: Set ptrace value for IPC test
85+
run: sudo bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
86+
87+
- name: Run "tag" UMF tests
88+
working-directory: ${{github.workspace}}/tag_version/build
89+
run: |
90+
LD_LIBRARY_PATH=${{github.workspace}}/tag_version/build/lib/ ctest --output-on-failure
91+
92+
- name: Checkout latest UMF version
93+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
94+
with:
95+
fetch-depth: 0
96+
path: ${{github.workspace}}/latest_version
97+
98+
- name: Get latest UMF version
99+
working-directory: ${{github.workspace}}/latest_version
100+
run: |
101+
VERSION=$(git describe --tags --abbrev=0 | grep -oP '\d+\.\d+\.\d+')
102+
echo "checked version: $VERSION"
103+
104+
- name: Configure latest UMF build
105+
working-directory: ${{github.workspace}}/latest_version
106+
run: >
107+
cmake
108+
-B ${{github.workspace}}/latest_version/build
109+
-DCMAKE_INSTALL_PREFIX="${{github.workspace}}/latest_version/build/install"
110+
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
111+
-DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
112+
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
113+
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
114+
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
115+
-DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
116+
-DUMF_FORMAT_CODE_STYLE=OFF
117+
-DUMF_DEVELOPER_MODE=ON
118+
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
119+
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
120+
-DUMF_TESTS_FAIL_ON_SKIP=ON
121+
122+
- name: Build latest UMF
123+
working-directory: ${{github.workspace}}/latest_version
124+
run: |
125+
cmake --build ${{github.workspace}}/latest_version/build -j $(nproc)
126+
127+
- name: Run "tag" UMF tests with latest UMF libs
128+
working-directory: ${{github.workspace}}/tag_version/build
129+
run: |
130+
LD_LIBRARY_PATH=${{github.workspace}}/latest_version/build/lib/ ctest --output-on-failure
131+

src/memory_pool.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ static umf_result_t umfPoolCreateInternal(const umf_memory_pool_ops_t *ops,
3838
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
3939
}
4040

41-
assert(ops->version == UMF_VERSION_CURRENT);
41+
if (ops->version == UMF_VERSION_CURRENT) {
42+
LOG_INFO("WARNING: memory pool ops version %d is different than "
43+
"current version %d",
44+
ops->version, UMF_VERSION_CURRENT);
45+
}
4246

4347
if (!(flags & UMF_POOL_CREATE_FLAG_DISABLE_TRACKING)) {
4448
// Wrap provider with memory tracking provider.

src/memory_provider.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,11 @@ umf_result_t umfMemoryProviderCreate(const umf_memory_provider_ops_t *ops,
173173
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
174174
}
175175

176-
assert(ops->version == UMF_VERSION_CURRENT);
176+
if (ops->version == UMF_VERSION_CURRENT) {
177+
LOG_INFO("WARNING: memory provider ops version %d is different than "
178+
"current version %d",
179+
ops->version, UMF_VERSION_CURRENT);
180+
}
177181

178182
provider->ops = *ops;
179183

src/memtarget.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ umf_result_t umfMemtargetCreate(const umf_memtarget_ops_t *ops, void *params,
2929
return UMF_RESULT_ERROR_OUT_OF_HOST_MEMORY;
3030
}
3131

32-
assert(ops->version == UMF_VERSION_CURRENT);
32+
if (ops->version == UMF_VERSION_CURRENT) {
33+
LOG_INFO("WARNING: memtarget ops version %d is different than "
34+
"current version %d",
35+
ops->version, UMF_VERSION_CURRENT);
36+
}
3337

3438
target->ops = ops;
3539

0 commit comments

Comments
 (0)