File tree Expand file tree Collapse file tree 12 files changed +580
-0
lines changed Expand file tree Collapse file tree 12 files changed +580
-0
lines changed Original file line number Diff line number Diff line change 2222 - os : ubuntu-latest
2323 nproc : $(nproc)
2424 pool_scalable : ' ON'
25+ pool_jemalloc : ' ON'
2526 - os : windows-latest
2627 nproc : $Env:NUMBER_OF_PROCESSORS
2728 pool_scalable : ' OFF'
29+ pool_jemalloc : ' OFF'
2830 runs-on : ${{matrix.os}}
2931
3032 steps :
5355 -DUMF_FORMAT_CODE_STYLE=ON
5456 -DUMF_DEVELOPER_MODE=ON
5557 -DUMF_ENABLE_POOL_TRACKING=ON
58+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=${{matrix.pool_jemalloc}}
5659 -DUMF_BUILD_LIBUMF_POOL_SCALABLE=${{matrix.pool_scalable}}
5760
5861 - name : Build
Original file line number Diff line number Diff line change 8585 Benchmark :
8686 needs : [Build]
8787 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_DEBUG=all LD_PRELOAD=./lib/libumf_proxy.so ./benchmark/ubench
52+ echo $?
Original file line number Diff line number Diff line change @@ -103,3 +103,12 @@ install(TARGETS umf
103103)
104104
105105add_subdirectory (pool)
106+
107+ # TODO: enable proxy_lib on Windows
108+ if (LINUX)
109+ if (UMF_BUILD_LIBUMF_POOL_JEMALLOC)
110+ add_subdirectory (proxy_lib)
111+ else ()
112+ message (STATUS "The proxy library is disabled, because UMF_BUILD_LIBUMF_POOL_JEMALLOC is OFF" )
113+ endif ()
114+ 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