Skip to content

Commit 2b28deb

Browse files
Merge pull request #508 from bratpiorka/rrudnick_fix_oneapi_container
use oneAPI basekit instead dockers for icx/icpx tests
2 parents 6224709 + 40f4e4e commit 2b28deb

File tree

2 files changed

+35
-130
lines changed

2 files changed

+35
-130
lines changed

.github/workflows/basic.yml

Lines changed: 19 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -11,78 +11,6 @@ env:
1111
UMF_VERSION: 0.1.0
1212

1313
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-
8614
ubuntu-build:
8715
name: Ubuntu
8816
strategy:
@@ -119,6 +47,12 @@ jobs:
11947
compiler: {c: gcc, cxx: g++}
12048
shared_library: 'OFF'
12149
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'
12256
env:
12357
BUILD_DIR : "${{github.workspace}}/build/"
12458
INSTL_DIR : "${{github.workspace}}/../install-dir"
@@ -133,6 +67,15 @@ jobs:
13367
sudo apt-get update
13468
sudo apt-get install -y clang cmake libnuma-dev libjemalloc-dev libtbb-dev
13569
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+
13679
- name: Install g++-7
13780
if: matrix.compiler.cxx == 'g++-7'
13881
run: sudo apt-get install -y ${{matrix.compiler.cxx}}
@@ -145,6 +88,7 @@ jobs:
14588

14689
- name: Configure build
14790
run: >
91+
${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh &&' || ''}}
14892
cmake
14993
-B ${{env.BUILD_DIR}}
15094
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
@@ -165,7 +109,9 @@ jobs:
165109

166110
- name: Run tests
167111
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
169115
170116
- name: Test UMF installation and uninstallation
171117
# The '--shared-library' parameter is added to the installation test when the UMF is built as a shared library

.github/workflows/sanitizers.yml

Lines changed: 16 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -10,65 +10,11 @@ permissions:
1010
contents: read
1111

1212
jobs:
13-
icx-build:
14-
# TODO: we could merge ICX build with gcc/clang (using our dockers) Issue: #259
15-
name: Intel C++ Compiler on Ubuntu
16-
strategy:
17-
matrix:
18-
compiler: [{c: icx, cxx: icpx}]
19-
# TSAN is mutually exclusive with other sanitizers
20-
sanitizers: [{asan: ON, ubsan: ON, tsan: OFF}, {asan: OFF, ubsan: OFF, tsan: ON}]
21-
runs-on: ubuntu-22.04
22-
container:
23-
image: intel/oneapi:latest
24-
volumes:
25-
- ${{github.workspace}}:${{github.workspace}}
26-
options: "--privileged"
27-
28-
steps:
29-
- name: Checkout
30-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
31-
32-
- name: Install apt packages
33-
run: |
34-
apt-get update
35-
apt-get install -y cmake libnuma-dev libjemalloc-dev libtbb-dev libhwloc-dev sudo
36-
37-
- name: Set ptrace value for IPC test
38-
run: bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
39-
40-
- name: Configure build
41-
run: >
42-
cmake
43-
-B ${{env.BUILD_DIR}}
44-
-DCMAKE_BUILD_TYPE=Debug
45-
-DUMF_BUILD_SHARED_LIBRARY=OFF
46-
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
47-
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
48-
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
49-
-DUMF_FORMAT_CODE_STYLE=OFF
50-
-DUMF_DEVELOPER_MODE=ON
51-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
52-
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
53-
-DUMF_BUILD_LIBUMF_POOL_SCALABLE=ON
54-
-DUSE_ASAN=${{matrix.sanitizers.asan}}
55-
-DUSE_UBSAN=${{matrix.sanitizers.ubsan}}
56-
-DUSE_TSAN=${{matrix.sanitizers.tsan}}
57-
-DUMF_BUILD_EXAMPLES=ON
58-
-DUMF_TESTS_FAIL_ON_SKIP=ON
59-
60-
- name: Build UMF
61-
run: cmake --build ${{env.BUILD_DIR}} -j $(nproc)
62-
63-
- name: Run tests
64-
working-directory: ${{env.BUILD_DIR}}
65-
run: ctest --output-on-failure
66-
6713
ubuntu-build:
68-
name: gcc and clang on Ubuntu
14+
name: Ubuntu
6915
strategy:
7016
matrix:
71-
compiler: [{c: gcc, cxx: g++}, {c: clang, cxx: clang++}]
17+
compiler: [{c: gcc, cxx: g++}, {c: clang, cxx: clang++}, {c: icx, cxx: icpx}]
7218
# TSAN is mutually exclusive with other sanitizers
7319
sanitizers: [{asan: ON, ubsan: ON, tsan: OFF}, {asan: OFF, ubsan: OFF, tsan: ON}]
7420
runs-on: ubuntu-22.04
@@ -82,11 +28,22 @@ jobs:
8228
sudo apt-get update
8329
sudo apt-get install -y clang cmake libhwloc-dev libnuma-dev libjemalloc-dev libtbb-dev
8430
31+
- name: Install oneAPI basekit
32+
if: matrix.compiler.cxx == 'icpx'
33+
run: |
34+
sudo apt-get install -y gpg-agent wget
35+
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
36+
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
37+
sudo apt-get update
38+
sudo apt-get install -y intel-oneapi-ippcp-devel intel-oneapi-ipp-devel intel-oneapi-common-oneapi-vars intel-oneapi-compiler-dpcpp-cpp
39+
40+
8541
- name: Set ptrace value for IPC test
8642
run: sudo bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
8743

8844
- name: Configure build
8945
run: >
46+
${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh &&' || ''}}
9047
cmake
9148
-B ${{env.BUILD_DIR}}
9249
-DCMAKE_BUILD_TYPE=Debug
@@ -110,7 +67,9 @@ jobs:
11067

11168
- name: Run tests
11269
working-directory: ${{env.BUILD_DIR}}
113-
run: ctest --output-on-failure
70+
run: >
71+
${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh &&' || ''}}
72+
ctest --output-on-failure
11473
11574
windows-build:
11675
name: cl and clang-cl on Windows

0 commit comments

Comments
 (0)