-
Notifications
You must be signed in to change notification settings - Fork 9
93 lines (91 loc) · 4 KB
/
sycl.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
name: SYCL CI
on:
workflow_dispatch:
push:
branches: [ main, 'pr/*' ]
pull_request:
branches: [ main ]
jobs:
test-sycl:
runs-on: ubuntu-latest
container: intel/oneapi-basekit:2023.1.0-devel-ubuntu22.04
env:
GTEST_VERSION: 1.12.1
GTEST_ROOT: ${{ github.workspace }}/googletest
DEBIAN_FRONTEND: noninteractive
GTENSOR_TEST_EXCLUDE: test_fft test_reductions test_solver test_bandsolver
CMAKE_BUILD_PARALLEL_LEVEL: 8
ONEAPI_DEVICE_SELECTOR: opencl:cpu
UMPIRE_ROOT: ${{ github.workspace }}/umpire
steps:
- uses: actions/checkout@v3
- name: install dependencies
run: apt-get -y update && apt-get install -y --no-install-recommends level-zero-dev
- name: sycl-ls
run: |
which sycl-ls
sycl-ls
- name: setup compiler env
run: |
which icpx
echo "CXX=$(which icpx)" >> $GITHUB_ENV
- name: env check
run: |
env | grep oneapi
- name: install googletest
run: |
mkdir -p ${{ env.GTEST_ROOT }}
cd ${{ env.GTEST_ROOT }}
wget https://github.com/google/googletest/archive/release-${{ env.GTEST_VERSION }}.tar.gz
tar xzf release-${{ env.GTEST_VERSION }}.tar.gz
cmake -S googletest-release-${{ env.GTEST_VERSION }} -B build -DCMAKE_INSTALL_PREFIX=${{ env.GTEST_ROOT }}
cmake --build build -t install
env:
CXX: g++
- name: cmake
run: cmake -S . -B build-sycl -DGTENSOR_DEVICE=sycl -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGTENSOR_BUILD_EXAMPLES=ON -DGTEST_ROOT=${{ env.GTEST_ROOT }} -DGTENSOR_ENABLE_CLIB=ON -DGTENSOR_ENABLE_BLAS=ON -DGTENSOR_ENABLE_FFT=ON -DGTENSOR_ENABLE_SOLVER=ON -DGTENSOR_TEST_DEBUG=ON
- name: cmake build
run: cmake --build build-sycl -v
- name: cmake debug
run: cmake -S . -B build-sycl-debug -DGTENSOR_DEVICE=sycl -DCMAKE_BUILD_TYPE=Debug -DGTENSOR_BUILD_EXAMPLES=ON -DGTEST_ROOT=${{ env.GTEST_ROOT }} -DGTENSOR_ENABLE_CLIB=ON -DGTENSOR_ENABLE_BLAS=ON -DGTENSOR_ENABLE_FFT=ON -DGTENSOR_TEST_DEBUG=ON
- name: cmake debug build
run: cmake --build build-sycl-debug -v
- name: cmake cpu run tests
run: ./run-gtests.sh build-sycl
- name: cmake cpu run daxpy
run: ./daxpy
working-directory: ${{ github.workspace }}/build-sycl/examples
- name: cmake cpu run stencil1d
run: ./stencil1d
working-directory: ${{ github.workspace }}/build-sycl/examples
- name: cmake cpu run mult_table
run: ./mult_table
working-directory: ${{ github.workspace }}/build-sycl/examples
- name: GNU make setup gtensor subdir
run: mkdir -p external/gtensor && cp -R ../include external/gtensor/
working-directory: ${{ github.workspace }}/examples
- name: GNU make build
run: make GTENSOR_DEVICE=sycl
working-directory: ${{ github.workspace }}/examples
- name: GNU make run daxpy
run: ./daxpy
working-directory: ${{ github.workspace }}/examples
- name: GNU make run stencil1d
run: ./stencil1d
working-directory: ${{ github.workspace }}/examples
- name: GNU make run mult_table
run: ./mult_table
working-directory: ${{ github.workspace }}/examples
- name: install umpire
run: |
mkdir -p ${{ env.UMPIRE_ROOT }}
cd ${{ env.UMPIRE_ROOT }}
git clone -b feature/oneapi-2023 --recursive https://github.com/bd4/Umpire.git src
cmake -S src -B build -DCMAKE_INSTALL_PREFIX=${{ env.UMPIRE_ROOT }}/install -DUMPIRE_ENABLE_SYCL=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -t install
- name: cmake umpire
run: cmake -S . -B build-sycl-umpire -DGTENSOR_DEVICE=sycl -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGTENSOR_BUILD_EXAMPLES=ON -DGTENSOR_USE_THRUST=OFF -DGTEST_ROOT=${{ env.GTEST_ROOT }} -DGTENSOR_ENABLE_CLIB=ON -DGTENSOR_ENABLE_BLAS=ON -DGTENSOR_ENABLE_FFT=ON -DGTENSOR_ENABLE_SOLVER=ON
env:
CMAKE_PREFIX_PATH: ${{env.CMAKE_PREFIX_PATH}}:${{ env.UMPIRE_ROOT }}/install
- name: cmake umpire build
run: cmake --build build-sycl-umpire -v