File tree Expand file tree Collapse file tree 12 files changed +561
-0
lines changed Expand file tree Collapse file tree 12 files changed +561
-0
lines changed Original file line number Diff line number Diff line change 22
22
- os : ubuntu-latest
23
23
nproc : $(nproc)
24
24
pool_scalable : ' ON'
25
+ pool_jemalloc : ' ON'
25
26
- os : windows-latest
26
27
nproc : $Env:NUMBER_OF_PROCESSORS
27
28
pool_scalable : ' OFF'
29
+ pool_jemalloc : ' OFF'
28
30
runs-on : ${{matrix.os}}
29
31
30
32
steps :
53
55
-DUMF_FORMAT_CODE_STYLE=ON
54
56
-DUMF_DEVELOPER_MODE=ON
55
57
-DUMF_ENABLE_POOL_TRACKING=ON
58
+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=${{matrix.pool_jemalloc}}
56
59
-DUMF_BUILD_LIBUMF_POOL_SCALABLE=${{matrix.pool_scalable}}
57
60
58
61
- name : Build
Original file line number Diff line number Diff line change 85
85
Benchmark :
86
86
needs : [Build]
87
87
uses : ./.github/workflows/benchmarks.yml
88
+ Proxy_lib :
89
+ needs : [Build]
90
+ uses : ./.github/workflows/proxy_lib.yml
Original file line number Diff line number Diff line change
1
+ name : Proxy library
2
+
3
+ on : workflow_call
4
+
5
+ permissions :
6
+ contents : read
7
+
8
+ jobs :
9
+ ubuntu-build :
10
+ name : Build - Ubuntu
11
+
12
+ strategy :
13
+ matrix :
14
+ os : ['ubuntu-22.04']
15
+ build_type : [Release, Debug]
16
+ compiler : [{c: gcc, cxx: g++}]
17
+ runs-on : ${{matrix.os}}
18
+
19
+ steps :
20
+ - name : Checkout
21
+ uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
22
+
23
+ - name : Install apt packages
24
+ run : |
25
+ sudo apt-get update
26
+ sudo apt-get install -y cmake libhwloc-dev libnuma-dev libjemalloc-dev libtbb-dev
27
+
28
+ - name : Configure build
29
+ run : >
30
+ cmake
31
+ -B ${{github.workspace}}/build
32
+ -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
33
+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
34
+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
35
+ -DUMF_BUILD_SHARED_LIBRARY=ON
36
+ -DUMF_BUILD_BENCHMARKS=ON
37
+ -DUMF_BUILD_TESTS=OFF
38
+ -DUMF_FORMAT_CODE_STYLE=OFF
39
+ -DUMF_DEVELOPER_MODE=OFF
40
+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
41
+ -DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
42
+ -DUMF_BUILD_LIBUMF_POOL_SCALABLE=OFF
43
+ -DUMF_ENABLE_POOL_TRACKING=OFF
44
+
45
+ - name : Build UMF
46
+ run : cmake --build ${{github.workspace}}/build -j $(nproc)
47
+
48
+ - name : Run benchmarks
49
+ working-directory : ${{github.workspace}}/build
50
+ run : |
51
+ LD_PRELOAD=./lib/libumf_proxy.so ./benchmark/ubench ; echo $?
Original file line number Diff line number Diff line change @@ -103,3 +103,6 @@ install(TARGETS umf
103
103
)
104
104
105
105
add_subdirectory (pool )
106
+ if (LINUX ) # TODO: enable it on Windows
107
+ add_subdirectory (proxy_lib )
108
+ endif ()
Original file line number Diff line number Diff line change
1
+ # Copyright (C) 2023-2024 Intel Corporation
2
+ # Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
3
+ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4
+
5
+ include (${UMF_CMAKE_SOURCE_DIR} /cmake/helpers.cmake )
6
+
7
+ set (PROXY_LIBS umf jemalloc_pool )
8
+
9
+ set (PROXY_SOURCES
10
+ proxy_lib.c
11
+ )
12
+
13
+ set (PROXY_SOURCES_LINUX
14
+ proxy_lib_linux.c
15
+ )
16
+
17
+ set (PROXY_SOURCES_WINDOWS
18
+ proxy_lib_windows.c
19
+ )
20
+
21
+ set (PROXY_SOURCES_MACOSX
22
+ proxy_lib_linux.c
23
+ )
24
+
25
+ if (LINUX )
26
+ set (PROXY_SOURCES ${PROXY_SOURCES} ${PROXY_SOURCES_LINUX} )
27
+ elseif (WINDOWS )
28
+ set (PROXY_SOURCES ${PROXY_SOURCES} ${PROXY_SOURCES_WINDOWS} )
29
+ elseif (MACOSX )
30
+ set (PROXY_SOURCES ${PROXY_SOURCES} ${PROXY_SOURCES_MACOSX} )
31
+ endif ()
32
+
33
+ add_umf_library (NAME umf_proxy
34
+ TYPE SHARED
35
+ SRCS ${PROXY_SOURCES}
36
+ LIBS ${PROXY_LIBS}
37
+ LINUX_MAP_FILE ${CMAKE_CURRENT_SOURCE_DIR} /proxy_lib.map
38
+ WINDOWS_DEF_FILE ${CMAKE_CURRENT_SOURCE_DIR} /proxy_lib.def )
39
+
40
+ add_library (${PROJECT_NAME} ::proxy ALIAS umf_proxy )
41
+
42
+ target_include_directories (umf_proxy PUBLIC
43
+ $< BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /include>
44
+ $< BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /src/utils>
45
+ $< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} >
46
+ $< INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
47
+ )
48
+
49
+ install (TARGETS umf_proxy
50
+ EXPORT ${PROJECT_NAME} -targets )
You can’t perform that action at this time.
0 commit comments