11
11
UMF_VERSION : 0.1.0
12
12
13
13
jobs :
14
- icx-build :
15
- # TODO: we could merge ICX build with gcc/clang (using our dockers) Issue: #259
16
- name : Intel C++ Compiler
17
- strategy :
18
- matrix :
19
- build_type : [Debug, Release]
20
- compiler : [{c: icx, cxx: icpx}]
21
- shared_library : ['OFF']
22
- env :
23
- BUILD_DIR : " ${{github.workspace}}/build/"
24
- INSTL_DIR : " ${{github.workspace}}/../install-dir"
25
-
26
- runs-on : ubuntu-22.04
27
- container :
28
- image : intel/oneapi:latest
29
- volumes :
30
- - ${{github.workspace}}:${{github.workspace}}
31
- options : " --privileged"
32
-
33
- steps :
34
- - name : Checkout
35
- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
36
-
37
- - name : Install apt packages
38
- run : |
39
- apt-get update
40
- apt-get install -y libnuma-dev libjemalloc-dev libtbb-dev libhwloc-dev python3-pip sudo
41
-
42
- - name : Install Python requirements
43
- run : python3 -m pip install -r third_party/requirements.txt
44
-
45
- - name : Set ptrace value for IPC test
46
- run : bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
47
-
48
- - name : Configure build
49
- run : >
50
- cmake
51
- -B build
52
- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
53
- -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
54
- -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
55
- -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
56
- -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
57
- -DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
58
- -DUMF_FORMAT_CODE_STYLE=OFF
59
- -DUMF_DEVELOPER_MODE=ON
60
- -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
61
- -DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
62
- -DUMF_BUILD_LIBUMF_POOL_SCALABLE=ON
63
- -DUMF_BUILD_EXAMPLES=ON
64
- -DUMF_TESTS_FAIL_ON_SKIP=ON
65
-
66
- - name : Build UMF
67
- run : cmake --build build -j $(nproc)
68
-
69
- - name : Run tests
70
- working-directory : ${{github.workspace}}/build
71
- run : ctest --output-on-failure --test-dir test
72
-
73
- - name : Test UMF installation and uninstallation
74
- # The '--shared-library' parameter is added to the installation test when the UMF is built as a shared library
75
- run : >
76
- python3 ${{github.workspace}}/test/test_installation.py
77
- --build-dir ${{env.BUILD_DIR}}
78
- --install-dir ${{env.INSTL_DIR}}
79
- --build-type ${{matrix.build_type}}
80
- --disjoint-pool
81
- --jemalloc-pool
82
- --scalable-pool
83
- --umf-version ${{env.UMF_VERSION}}
84
- ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
85
-
86
14
ubuntu-build :
87
15
name : Ubuntu
88
16
strategy :
@@ -119,6 +47,12 @@ jobs:
119
47
compiler : {c: gcc, cxx: g++}
120
48
shared_library : ' OFF'
121
49
level_zero_provider : ' OFF'
50
+ # test icx compiler
51
+ - os : ' ubuntu-22.04'
52
+ build_type : Release
53
+ compiler : {c: icx, cxx: icpx}
54
+ shared_library : ' ON'
55
+ level_zero_provider : ' ON'
122
56
env :
123
57
BUILD_DIR : " ${{github.workspace}}/build/"
124
58
INSTL_DIR : " ${{github.workspace}}/../install-dir"
@@ -133,6 +67,15 @@ jobs:
133
67
sudo apt-get update
134
68
sudo apt-get install -y clang cmake libnuma-dev libjemalloc-dev libtbb-dev
135
69
70
+ - name : Install oneAPI basekit
71
+ if : matrix.compiler.cxx == 'icpx'
72
+ run : |
73
+ sudo apt-get install -y gpg-agent wget
74
+ wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
75
+ echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
76
+ sudo apt-get update
77
+ sudo apt-get install -y intel-oneapi-ippcp-devel intel-oneapi-ipp-devel intel-oneapi-common-oneapi-vars intel-oneapi-compiler-dpcpp-cpp
78
+
136
79
- name : Install g++-7
137
80
if : matrix.compiler.cxx == 'g++-7'
138
81
run : sudo apt-get install -y ${{matrix.compiler.cxx}}
145
88
146
89
- name : Configure build
147
90
run : >
91
+ ${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh &&' || ''}}
148
92
cmake
149
93
-B ${{env.BUILD_DIR}}
150
94
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
@@ -165,7 +109,9 @@ jobs:
165
109
166
110
- name : Run tests
167
111
working-directory : ${{env.BUILD_DIR}}
168
- run : ctest --output-on-failure --test-dir test
112
+ run : >
113
+ ${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh &&' || ''}}
114
+ ctest --output-on-failure --test-dir test
169
115
170
116
- name : Test UMF installation and uninstallation
171
117
# The '--shared-library' parameter is added to the installation test when the UMF is built as a shared library
0 commit comments