xref: /petsc/config/examples/arch-ci-linux-sycl-double.py (revision c9e3fce0569ac575a7dd571126b52b2826192edc)
1#!/usr/bin/env python3
2
3import os
4petsc_hash_pkgs=os.path.join(os.getenv('HOME'),'petsc-hash-pkgs')
5
6if __name__ == '__main__':
7  import sys
8  import os
9  sys.path.insert(0, os.path.abspath('config'))
10  import configure
11  configure_options = [
12    '--package-prefix-hash='+petsc_hash_pkgs,
13    '--with-cc=mpicc -cc=icx', # need to make mpicc/mpicxx also SYCL compilers.
14    '--with-cxx=mpicxx -cxx=icpx',
15    '--with-fc=0',
16    '--COPTFLAGS=-g -O2',
17    '--CXXOPTFLAGS=-g -O2',
18    '--SYCLOPTFLAGS=-g -O2',
19    # To suppress warnings in checking Kokkos-Kernels headers like:
20    # Kokkos_MathematicalFunctions.hpp:299:34: warning: comparison with infinity always evaluates
21    # to false in fast floating point modes [-Wtautological-constant-compare]
22    # KOKKOS_IMPL_MATH_UNARY_PREDICATE(isinf)
23    '--SYCLPPFLAGS=-Wno-tautological-constant-compare',
24    '--download-kokkos=1',
25    '--downoad-kokkos-kernels=1',
26    '--with-cuda=0',
27    '--with-sycl=1',
28    '--with-syclc=icpx', # dpcpp is deprecated by Intel. One should use 'icpx -fsycl' to compile sycl code. PETSc handles that automatically.
29    '--with-strict-petscerrorcode',
30  ]
31
32  configure.petsc_configure(configure_options)
33