11#ifndef EBGEOMETRY_MACROS_HPP
12#define EBGEOMETRY_MACROS_HPP
19#if defined(EBGEOMETRY_HIP)
23#include <hip/hip_runtime.h>
25#if defined(EBGEOMETRY_DEVICE_COMPILE)
29#if defined(EBGEOMETRY_CUDA)
30#define EBGEOMETRY_DEVICE_TRAP() __trap()
32#define EBGEOMETRY_DEVICE_TRAP() __builtin_trap()
35namespace MacrosDetail {
38__device__ __noinline__
inline void
39deviceAssertionFailed(
const char* a_cond,
const char* a_file,
const int a_line)
41 printf(
"EBGeometry device assertion failed: (%s)\n file: %s\n line: %d\n", a_cond, a_file, a_line);
42 EBGEOMETRY_DEVICE_TRAP();
76#if defined(EBGEOMETRY_DEVICE_COMPILE)
77#define EBGEOMETRY_REQUIRE(cond, ...) \
80 ::EBGeometry::MacrosDetail::deviceAssertionFailed(#cond, __FILE__, __LINE__); \
84#define EBGEOMETRY_REQUIRE(cond, ...) \
87 std::fprintf(stderr, "EBGeometry::" __VA_ARGS__); \
88 std::fprintf(stderr, "\n check: (%s)\n file: %s\n line: %d\n", #cond, __FILE__, __LINE__); \
129#if defined(EBGEOMETRY_ENABLE_ASSERTIONS)
130#if defined(EBGEOMETRY_DEVICE_COMPILE)
131#define EBGEOMETRY_EXPECT(cond) \
134 ::EBGeometry::MacrosDetail::deviceAssertionFailed(#cond, __FILE__, __LINE__); \
138#define EBGEOMETRY_EXPECT(cond) \
141 std::fprintf(stderr, \
142 "EBGeometry assertion failed: (%s)\n file: %s\n line: %d\n function: %s\n", \
146 static_cast<const char*>(__func__)); \
155#define EBGEOMETRY_EXPECT(cond) ((void)0)
GPU portability layer: host/device decoration macros and backend detection.
Namespace containing all of EBGeometry's functionality.
Definition EBGeometry_Affine.hpp:26