15#if defined(EIGEN_CORE_GPU_HIP_CUDA_DEFINES_H) && !defined(EIGEN_CORE_UTIL_GPU_RUNTIME_H)
16#define EIGEN_CORE_UTIL_GPU_RUNTIME_H
27inline void gpu_runtime_check_failed(gpuError_t error,
const char* expression,
const char* file,
int line) {
28 std::fprintf(stderr,
"%s:%d: %s: %s: %s\n", file, line, expression, gpuGetErrorName(error), gpuGetErrorString(error));
29#if defined(EIGEN_NO_DEBUG)
32 eigen_assert(
false &&
"GPU runtime call failed");
36inline void gpu_runtime_check(gpuError_t error,
const char* expression,
const char* file,
int line) {
37 if (error != gpuSuccess) gpu_runtime_check_failed(error, expression, file, line);
47#if !defined(EIGEN_GPU_RUNTIME_CHECK)
48#define EIGEN_GPU_RUNTIME_CHECK(expr) \
50 ::Eigen::internal::gpu_runtime_check((expr), #expr, __FILE__, __LINE__); \
54#if defined(EIGEN_GPUCC)
62template <
typename... KernelArgs,
typename... Args>
63void gpu_launch(
void (*kernel)(KernelArgs...), dim3 grid, dim3 block,
size_t shared_mem, gpuStream_t stream,
66 kernel<<<grid, block, shared_mem, stream>>>(std::forward<Args>(args)...);
68 EIGEN_GPU_RUNTIME_CHECK(gpuGetLastError());
69#if defined(EIGEN_GPU_SYNC_LAUNCHES)
70 EIGEN_GPU_RUNTIME_CHECK(gpuStreamSynchronize(stream));