Skip to content

Commit c919fd4

Browse files
committed
use oneAPI basekit instead of dockers for icx/icpx
1 parent 0660c56 commit c919fd4

File tree

2 files changed

+29
-127
lines changed

2 files changed

+29
-127
lines changed

.github/workflows/basic.yml

Lines changed: 17 additions & 72 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"
@@ -128,6 +62,16 @@ jobs:
12862
- name: Checkout
12963
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
13064

65+
- name: Install oneAPI basekit
66+
if: matrix.compiler.cxx == 'icpx'
67+
run: |
68+
sudo apt update
69+
sudo apt install -y gpg-agent wget
70+
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
71+
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
72+
sudo apt update
73+
sudo apt install intel-basekit
74+
13175
- name: Install apt packages
13276
run: |
13377
sudo apt-get update
@@ -145,6 +89,7 @@ jobs:
14589

14690
- name: Configure build
14791
run: >
92+
${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh &&' || ''}}
14893
cmake
14994
-B ${{env.BUILD_DIR}}
15095
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"

.github/workflows/sanitizers.yml

Lines changed: 12 additions & 55 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:
6814
name: gcc and clang on 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
@@ -77,6 +23,16 @@ jobs:
7723
- name: Checkout
7824
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
7925

26+
- name: Install oneAPI basekit
27+
if: matrix.compiler.cxx == 'icpx'
28+
run: |
29+
sudo apt update
30+
sudo apt install -y gpg-agent wget
31+
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
32+
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
33+
sudo apt update
34+
sudo apt install intel-basekit
35+
8036
- name: Install apt packages
8137
run: |
8238
sudo apt-get update
@@ -87,6 +43,7 @@ jobs:
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

0 commit comments

Comments
 (0)