opm-simulators
Loading...
Searching...
No Matches
Misc.hpp
1
#ifndef OPM_MISC_HPP
2
#define OPM_MISC_HPP
3
4
#ifdef HAVE_ROCSPARSE
5
#include <hip/hip_runtime_api.h>
6
#include <hip/hip_version.h>
7
#include <sstream>
8
#include <iostream>
9
10
#define HIP_CHECK(STAT) \
11
do { \
12
const hipError_t stat = (STAT); \
13
if(stat != hipSuccess) \
14
{ \
15
std::ostringstream oss; \
16
oss << "rocsparseSolverBackend::hip "; \
17
oss << "error: " << hipGetErrorString(stat); \
18
OPM_THROW(std::logic_error, oss.str()); \
19
} \
20
} while(0)
21
22
#define ROCSPARSE_CHECK(STAT) \
23
do { \
24
const rocsparse_status stat = (STAT); \
25
if(stat != rocsparse_status_success) \
26
{ \
27
std::ostringstream oss; \
28
oss << "rocsparseSolverBackend::rocsparse "; \
29
oss << "error: " << stat; \
30
OPM_THROW(std::logic_error, oss.str()); \
31
} \
32
} while(0)
33
34
#define ROCBLAS_CHECK(STAT) \
35
do { \
36
const rocblas_status stat = (STAT); \
37
if(stat != rocblas_status_success) \
38
{ \
39
std::ostringstream oss; \
40
oss << "rocsparseSolverBackend::rocblas "; \
41
oss << "error: " << stat; \
42
OPM_THROW(std::logic_error, oss.str()); \
43
} \
44
} while(0)
45
#endif
46
47
#define HIP_CHECK_NOTHROW(STAT) \
48
do { \
49
const hipError_t stat = (STAT); \
50
if(stat != hipSuccess) \
51
{ \
52
std::cerr << "rocsparseSolverBackend::hip error: " << hipGetErrorString(stat) << std::endl; \
53
} \
54
} while(0)
55
56
#define ROCSPARSE_CHECK_NOTHROW(STAT) \
57
do { \
58
const rocsparse_status stat = (STAT); \
59
if(stat != rocsparse_status_success) \
60
{ \
61
std::cerr << "rocsparseSolverBackend::rocsparse error: " << stat << std::endl; \
62
} \
63
} while(0)
64
65
namespace
Opm::Accelerator {
66
67
unsigned
int
ceilDivision(
const
unsigned
int
A
,
68
const
unsigned
int
B);
69
70
template
<
class
Scalar>
71
Scalar get_absmax(
const
Scalar *data,
72
const
int
N);
73
74
template
<
class
Scalar>
75
void
solve_transposed_3x3(
const
Scalar *
A
,
76
const
Scalar *
b
,
77
Scalar *x);
78
79
}
80
81
#endif
Opm::getPropValue
constexpr auto getPropValue()
get the value data member of a property
Definition
propertysystem.hh:240
opm
simulators
linalg
gpubridge
Misc.hpp
Generated by
1.9.8