Add explicit types to NB kernel type enums
[alexxy/gromacs.git] / src / gromacs / gpu_utils / gpu_macros.h
index e7ecf83f57683d28cb95fe93eb717ee48eb20837..1bfbefd0a75735bc77ab622215338eb9c790ac60 100644 (file)
 #    define OPENCL_FUNC_TERM REAL_FUNC_TERM
 #    define OPENCL_FUNC_TERM_WITH_RETURN(arg) REAL_FUNC_TERM_WITH_RETURN(arg)
 
-#elif GMX_GPU_OPENCL || GMX_GPU_CUDA
-
-/* GPU support is enabled, so these functions will have real code
- * defined somewhere */
-#    define GPU_FUNC_QUALIFIER REAL_FUNC_QUALIFIER
-#    define GPU_FUNC_ARGUMENT REAL_FUNC_ARGUMENT
-#    define GPU_FUNC_TERM REAL_FUNC_TERM
-#    define GPU_FUNC_TERM_WITH_RETURN(arg) REAL_FUNC_TERM_WITH_RETURN(arg)
+#else // Not DOXYGEN
+
+/* GPU support is enabled, so these functions will have real code defined somewhere */
+#    if GMX_GPU && !GMX_GPU_SYCL
+#        define GPU_FUNC_QUALIFIER REAL_FUNC_QUALIFIER
+#        define GPU_FUNC_ARGUMENT REAL_FUNC_ARGUMENT
+#        define GPU_FUNC_TERM REAL_FUNC_TERM
+#        define GPU_FUNC_TERM_WITH_RETURN(arg) REAL_FUNC_TERM_WITH_RETURN(arg)
+#    else
+#        define GPU_FUNC_QUALIFIER NULL_FUNC_QUALIFIER
+#        define GPU_FUNC_ARGUMENT NULL_FUNC_ARGUMENT
+#        define GPU_FUNC_TERM NULL_FUNC_TERM
+#        define GPU_FUNC_TERM_WITH_RETURN(arg) NULL_FUNC_TERM_WITH_RETURN(arg)
+#
+#    endif
 
+/* Enable and disable platform-specific function implementations */
 #    if GMX_GPU_OPENCL
-
-/* OpenCL support is enabled, so CUDA-specific functions need empty
- * implementations, while OpenCL-specific functions will have real
- * code defined somewhere. */
-#        define CUDA_FUNC_QUALIFIER NULL_FUNC_QUALIFIER
-#        define CUDA_FUNC_ARGUMENT NULL_FUNC_ARGUMENT
-#        define CUDA_FUNC_TERM NULL_FUNC_TERM
-#        define CUDA_FUNC_TERM_WITH_RETURN(arg) NULL_FUNC_TERM_WITH_RETURN(arg)
 #        define OPENCL_FUNC_QUALIFIER REAL_FUNC_QUALIFIER
 #        define OPENCL_FUNC_ARGUMENT REAL_FUNC_ARGUMENT
 #        define OPENCL_FUNC_TERM REAL_FUNC_TERM
 #        define OPENCL_FUNC_TERM_WITH_RETURN(arg) REAL_FUNC_TERM_WITH_RETURN(arg)
-
+#    else
+#        define OPENCL_FUNC_QUALIFIER NULL_FUNC_QUALIFIER
+#        define OPENCL_FUNC_ARGUMENT NULL_FUNC_ARGUMENT
+#        define OPENCL_FUNC_TERM NULL_FUNC_TERM
+#        define OPENCL_FUNC_TERM_WITH_RETURN(arg) NULL_FUNC_TERM_WITH_RETURN(arg)
 #    endif
-#    if GMX_GPU_CUDA
 
-/* CUDA support is enabled, so OpenCL-specific functions need empty
- * implementations, while CUDA-specific functions will have real
- * code defined somewhere. */
+#    if GMX_GPU_CUDA
 #        define CUDA_FUNC_QUALIFIER REAL_FUNC_QUALIFIER
 #        define CUDA_FUNC_ARGUMENT REAL_FUNC_ARGUMENT
 #        define CUDA_FUNC_TERM REAL_FUNC_TERM
 #        define CUDA_FUNC_TERM_WITH_RETURN(arg) REAL_FUNC_TERM_WITH_RETURN(arg)
-#        define OPENCL_FUNC_QUALIFIER NULL_FUNC_QUALIFIER
-#        define OPENCL_FUNC_ARGUMENT NULL_FUNC_ARGUMENT
-#        define OPENCL_FUNC_TERM NULL_FUNC_TERM
-#        define OPENCL_FUNC_TERM_WITH_RETURN(arg) NULL_FUNC_TERM_WITH_RETURN(arg)
-
+#    else
+#        define CUDA_FUNC_QUALIFIER NULL_FUNC_QUALIFIER
+#        define CUDA_FUNC_ARGUMENT NULL_FUNC_ARGUMENT
+#        define CUDA_FUNC_TERM NULL_FUNC_TERM
+#        define CUDA_FUNC_TERM_WITH_RETURN(arg) NULL_FUNC_TERM_WITH_RETURN(arg)
 #    endif
 
-#elif !GMX_GPU || GMX_GPU_SYCL
-
-/* No GPU support is configured, so none of these functions will have
- * real definitions. */
-#    define GPU_FUNC_QUALIFIER NULL_FUNC_QUALIFIER
-#    define GPU_FUNC_ARGUMENT NULL_FUNC_ARGUMENT
-#    define GPU_FUNC_TERM NULL_FUNC_TERM
-#    define GPU_FUNC_TERM_WITH_RETURN(arg) NULL_FUNC_TERM_WITH_RETURN(arg)
-#    define CUDA_FUNC_QUALIFIER NULL_FUNC_QUALIFIER
-#    define CUDA_FUNC_ARGUMENT NULL_FUNC_ARGUMENT
-#    define CUDA_FUNC_TERM NULL_FUNC_TERM
-#    define CUDA_FUNC_TERM_WITH_RETURN(arg) NULL_FUNC_TERM_WITH_RETURN(arg)
-#    define OPENCL_FUNC_QUALIFIER NULL_FUNC_QUALIFIER
-#    define OPENCL_FUNC_ARGUMENT NULL_FUNC_ARGUMENT
-#    define OPENCL_FUNC_TERM NULL_FUNC_TERM
-#    define OPENCL_FUNC_TERM_WITH_RETURN(arg) NULL_FUNC_TERM_WITH_RETURN(arg)
-
-#endif
+#endif // ifdef DOXYGEN
 
-#endif
+#endif // GMX_GPU_UTILS_MACROS_H