Gromacs  2022.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gmxsycl.h File Reference
#include "config.h"
#include <CL/sycl.hpp>
+ Include dependency graph for gmxsycl.h:
+ This graph shows which files directly or indirectly include this file:

Description

Wraps the complexity of including SYCL in GROMACS.

The __SYCL_COMPILER_VERSION macro is used to identify Intel DPCPP compiler. See https://github.com/intel/llvm/pull/2998 for better proposal.

Intel SYCL headers use symbol DIM as a template parameter, which gets broken by macro DIM defined in gromacs/math/vectypes.h. Here, we include the SYCL header while temporary undefining this macro. See https://github.com/intel/llvm/issues/2981.

Different compilers, at the time of writing, have different names for some of the proposed features of the SYCL2020 standard. For uniformity, they are all aliased in our custom sycl_2020 namespace.