xref: /petsc/config/examples/arch-ci-linux-sycl-double.py (revision dc3f77e0b2beacd9db7fae907348e647bc1ee445)
1df3bd252SSatish Balay#!/usr/bin/env python3
228f796eaSScott Kruger
328f796eaSScott Krugerimport os
428f796eaSScott Krugerpetsc_hash_pkgs=os.path.join(os.getenv('HOME'),'petsc-hash-pkgs')
528f796eaSScott Kruger
628f796eaSScott Krugerif __name__ == '__main__':
728f796eaSScott Kruger  import sys
828f796eaSScott Kruger  import os
928f796eaSScott Kruger  sys.path.insert(0, os.path.abspath('config'))
1028f796eaSScott Kruger  import configure
1128f796eaSScott Kruger  configure_options = [
1228f796eaSScott Kruger    '--package-prefix-hash='+petsc_hash_pkgs,
13e469a5b0SJunchao Zhang    '--with-cc=mpicc -cc=icx', # need to make mpicc/mpicxx also SYCL compilers.
14*dc3f77e0SJunchao Zhang    '--with-cxx=mpicxx -cxx=icpx',
15e469a5b0SJunchao Zhang    '--with-fc=0',
16e469a5b0SJunchao Zhang    '--COPTFLAGS=-g -O2',
17e469a5b0SJunchao Zhang    '--CXXOPTFLAGS=-g -O2',
18e469a5b0SJunchao Zhang    '--CXXPPFLAGS=-std=c++17',
19e469a5b0SJunchao Zhang    '--SYCLOPTFLAGS=-g -O2',
2035cb6cd3SPierre Jolivet    # To suppress warnings in checking Kokkos-Kernels headers like:
21d65ab8f6SJunchao Zhang    # Kokkos_MathematicalFunctions.hpp:299:34: warning: comparison with infinity always evaluates
22d65ab8f6SJunchao Zhang    # to false in fast floating point modes [-Wtautological-constant-compare]
23d65ab8f6SJunchao Zhang    # KOKKOS_IMPL_MATH_UNARY_PREDICATE(isinf)
24d65ab8f6SJunchao Zhang    '--SYCLPPFLAGS=-Wno-tautological-constant-compare',
257a0e23a7SSatish Balay    '--download-kokkos=1',
267a0e23a7SSatish Balay    '--downoad-kokkos-kernels=1',
2728f796eaSScott Kruger    '--with-cuda=0',
2828f796eaSScott Kruger    '--with-sycl=1',
29*dc3f77e0SJunchao Zhang    '--with-syclc=icpx', # dpcpp is deprecated by Intel. One should use 'icpx -fsycl' to compile sycl code. petsc handles that automatically.
30689a5dfaSJacob Faibussowitsch    '--with-strict-petscerrorcode',
3128f796eaSScott Kruger  ]
3228f796eaSScott Kruger
3328f796eaSScott Kruger  configure.petsc_configure(configure_options)
34