@@ -20,11 +20,16 @@ jobs:
2020 matrix :
2121 blas_backend : [Atlas, MKL, OpenBLAS]
2222 os : [ubuntu-18.04, ubuntu-20.04, macos-latest]
23+ compiler : [gcc, clang, icx]
2324 exclude :
2425 - os : macos-latest
2526 blas_backend : Atlas
2627 - os : macos-latest
2728 blas_backend : MKL
29+ - blas_backend : Atlas
30+ compiler : icx
31+ - blas_backend : OpenBLAS
32+ compiler : icx
2833 steps :
2934 - name : Checkout Repository
3035 uses : actions/checkout@master
4348 if : matrix.os != 'macos-latest'
4449 env :
4550 OS_NAME : ${{ matrix.os }}
51+ CC : ${{ matrix.compiler }}
4652 run : |
4753 cmake_suffix=$(if [ $OS_NAME == 'macos-latest' ]; then echo "Darwin-x86_64"; else echo "Linux-x86_64"; fi)
4854 cmake_url=$(echo "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VER}/cmake-${CMAKE_VER}-${cmake_suffix}.tar.gz")
5460 cmake_osx_dir=$(echo "${cmake_install_dir}/CMake.app/Contents/bin")
5561 cmake_dir=$(if [ $OS_NAME == 'macos-latest' ]; then echo "${cmake_osx_dir}"; else echo "${cmake_lnx_dir}"; fi)
5662 echo "CMAKE_PROGRAM=$(pwd)/${cmake_dir}/cmake" >> $GITHUB_ENV
63+ case "$CC" in
64+ 'gcc')
65+ echo "CXX=g++" >> $GITHUB_ENV
66+ ;;
67+ 'clang')
68+ echo "CXX=clang++" >> $GITHUB_ENV
69+ ;;
70+ 'icx')
71+ echo "CXX=icpx" >> $GITHUB_ENV
72+ ;;
73+ esac
5774
5875 - name : Install Dependencies for Macos
5976 if : matrix.os == 'macos-latest'
6279 echo "CMAKE_PROGRAM=cmake" >> $GITHUB_ENV
6380
6481 - name : Install Common Dependencies for Ubuntu
65- if : matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-18 .04'
82+ if : matrix.os == 'ubuntu-18.04' || matrix.os == 'ubuntu- 20.04' || matrix.os == 'ubuntu-22 .04'
6683 run : |
6784 sudo add-apt-repository ppa:mhier/libboost-latest
6885 sudo apt-get -qq update
@@ -78,12 +95,15 @@ jobs:
7895
7996 - name : Install MKL for Ubuntu
8097 if : matrix.os != 'macos-latest' && matrix.blas_backend == 'MKL'
98+ env :
99+ CC : ${{ matrix.compiler }}
81100 run : |
82101 wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
83102 sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
84103 sudo sh -c 'echo deb https://apt.repos.intel.com/oneapi all main > /etc/apt/sources.list.d/oneAPI.list'
85104 sudo apt-get -qq update
86105 sudo apt-get install -y intel-oneapi-mkl-devel
106+ if [ "$CC" == 'icx' ]; then sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp; fi
87107 echo "MKLROOT=/opt/intel/oneapi/mkl/latest" >> ${GITHUB_ENV}
88108
89109 - name : Install OpenBLAS for Ubuntu
94114 env :
95115 USE_MKL : ${{ matrix.blas_backend == 'MKL' }}
96116 BLAS_BACKEND : ${{ matrix.blas_backend }}
117+ CC : ${{ matrix.compiler }}
118+ OS_NAME : ${{ matrix.os }}
97119 run : |
98120 ref=$(echo ${GITHUB_REF} | awk '/refs\/pull\/[0-9]+\/merge/{print $0}')
99121 prnum=$(echo $ref | awk '{split($0, a, "/"); print a[3]}')
@@ -103,6 +125,7 @@ jobs:
103125 backend=$(if [ "$USE_MKL" == 1 ]; then echo "Intel-MKL"; else echo "FFTW/LAPACK/BLAS"; fi)
104126 buildname="$buildname-cpu-$BLAS_BACKEND"
105127 cmake_rpath=$(if [ $OS_NAME == 'macos-latest' ]; then echo "-DCMAKE_INSTALL_RPATH=/opt/arrayfire/lib"; fi)
128+ if [ "$CC" == 'icx' ]; then source /opt/intel/oneapi/setvars.sh intel64; fi
106129 mkdir build && cd build && unset VCPKG_ROOT
107130 ${CMAKE_PROGRAM} -G Ninja \
108131 -DCMAKE_MAKE_PROGRAM:FILEPATH=${GITHUB_WORKSPACE}/ninja \
@@ -115,6 +138,9 @@ jobs:
115138 echo "CTEST_DASHBOARD=${dashboard}" >> $GITHUB_ENV
116139
117140 - name : Build and Test
141+ env :
142+ CC : ${{ matrix.compiler }}
118143 run : |
119144 cd ${GITHUB_WORKSPACE}/build
145+ if [ "$CC" == 'icx' ]; then source /opt/intel/oneapi/setvars.sh intel64; fi
120146 ctest -D Experimental --track ${CTEST_DASHBOARD} -T Test -T Submit -R cpu -j2
0 commit comments