* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 2012,2013,2014,2015,2017 by the GROMACS development team.
- * Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
+ * Copyright (c) 2018,2019,2020,2021, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
/** OpenCL version */
#define OPENCL_VERSION_STRING "@OpenCL_VERSION_STRING@"
+
+/** SYCL DPCPP flags */
+#define SYCL_DPCPP_COMPILER_FLAGS "@SYCL_CXX_FLAGS@"
+
+/** SYCL hipSYCL backend list */
+#define SYCL_HIPSYCL_COMPILER_LAUNCHER "@HIPSYCL_SYCLCC_LAUNCHER@"
+#define SYCL_HIPSYCL_COMPILER_FLAGS "@HIPSYCL_SYCLCC_EXTRA_ARGS@"
+#define SYCL_HIPSYCL_PLATFORMS "@HIPSYCL_PLATFORMS_STRING@"
const char* getGpuImplementationString()
{
+ // Some flavors of clang complain about unreachable returns.
+#ifdef __clang__
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wunreachable-code-return"
+#endif
if (GMX_GPU)
{
if (GMX_GPU_CUDA)
}
else if (GMX_GPU_SYCL)
{
- return "SYCL";
+ if (GMX_SYCL_DPCPP)
+ {
+ return "SYCL (DPCPP)";
+ }
+ else if (GMX_SYCL_HIPSYCL)
+ {
+ return "SYCL (hipSYCL)";
+ }
+ else
+ {
+ return "SYCL (unknown)";
+ }
}
else
{
{
return "disabled";
}
+#ifdef __clang__
+# pragma clang diagnostic pop
+#endif
}
writer->writeLine("CUDA driver: " + gmx::getCudaDriverVersionString());
writer->writeLine("CUDA runtime: " + gmx::getCudaRuntimeVersionString());
#endif
+#if GMX_SYCL_DPCPP
+ writer->writeLine(formatString("SYCL DPCPP flags: %s", SYCL_DPCPP_COMPILER_FLAGS));
+#endif
+#if GMX_SYCL_HIPSYCL
+ writer->writeLine(formatString("hipSYCL launcher: %s", SYCL_HIPSYCL_COMPILER_LAUNCHER));
+ writer->writeLine(formatString("hipSYCL flags: %s", SYCL_HIPSYCL_COMPILER_FLAGS));
+ writer->writeLine(formatString("hipSYCL platforms: %s", SYCL_HIPSYCL_PLATFORMS));
+#endif
}
//! \endcond