|
Ginkgo
Generated from pipelines/1554403166 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
|
5 #ifndef GKO_PUBLIC_CORE_BASE_EXCEPTION_HPP_
6 #define GKO_PUBLIC_CORE_BASE_EXCEPTION_HPP_
12 #include <ginkgo/core/base/types.hpp>
57 class Error :
public std::exception {
66 Error(
const std::string& file,
int line,
const std::string&
what)
67 : what_(file +
":" + std::to_string(line) +
": " +
what)
74 virtual const char*
what() const noexcept
override {
return what_.c_str(); }
77 const std::string what_;
95 :
Error(file, line, func +
" is not implemented")
114 NotCompiled(
const std::string& file,
int line,
const std::string& func,
115 const std::string& module)
117 "feature " + func +
" is part of the " + module +
118 " module, which is not compiled on this system")
138 NotSupported(
const std::string& file,
int line,
const std::string& func,
139 const std::string& obj_type)
141 "Operation " + func +
" does not support parameters of type " +
159 MpiError(
const std::string& file,
int line,
const std::string& func,
161 :
Error(file, line, func +
": " + get_error(error_code))
165 static std::string get_error(
int64 error_code);
182 CudaError(
const std::string& file,
int line,
const std::string& func,
184 :
Error(file, line, func +
": " + get_error(error_code))
188 static std::string get_error(
int64 error_code);
205 CublasError(
const std::string& file,
int line,
const std::string& func,
207 :
Error(file, line, func +
": " + get_error(error_code))
211 static std::string get_error(
int64 error_code);
228 CurandError(
const std::string& file,
int line,
const std::string& func,
230 :
Error(file, line, func +
": " + get_error(error_code))
234 static std::string get_error(
int64 error_code);
253 :
Error(file, line, func +
": " + get_error(error_code))
257 static std::string get_error(
int64 error_code);
274 CufftError(
const std::string& file,
int line,
const std::string& func,
276 :
Error(file, line, func +
": " + get_error(error_code))
280 static std::string get_error(
int64 error_code);
297 HipError(
const std::string& file,
int line,
const std::string& func,
299 :
Error(file, line, func +
": " + get_error(error_code))
303 static std::string get_error(
int64 error_code);
320 HipblasError(
const std::string& file,
int line,
const std::string& func,
322 :
Error(file, line, func +
": " + get_error(error_code))
326 static std::string get_error(
int64 error_code);
343 HiprandError(
const std::string& file,
int line,
const std::string& func,
345 :
Error(file, line, func +
": " + get_error(error_code))
349 static std::string get_error(
int64 error_code);
369 :
Error(file, line, func +
": " + get_error(error_code))
373 static std::string get_error(
int64 error_code);
390 HipfftError(
const std::string& file,
int line,
const std::string& func,
392 :
Error(file, line, func +
": " + get_error(error_code))
396 static std::string get_error(
int64 error_code);
413 MetisError(
const std::string& file,
int line,
const std::string& func,
414 const std::string& error)
415 :
Error(file, line, func +
": " + error)
441 const std::string& func,
const std::string& first_name,
443 const std::string& second_name,
size_type second_rows,
444 size_type second_cols,
const std::string& clarification)
446 func +
": attempting to combine operators " + first_name +
447 " [" + std::to_string(first_rows) +
" x " +
448 std::to_string(first_cols) +
"] and " + second_name +
" [" +
449 std::to_string(second_rows) +
" x " +
450 std::to_string(second_cols) +
"]: " + clarification)
472 BadDimension(
const std::string& file,
int line,
const std::string& func,
473 const std::string& op_name,
size_type op_num_rows,
474 size_type op_num_cols,
const std::string& clarification)
476 func +
": Object " + op_name +
" has dimensions [" +
477 std::to_string(op_num_rows) +
" x " +
478 std::to_string(op_num_cols) +
"]: " + clarification)
489 template <
typename IndexType>
499 const int block_size,
const IndexType size)
501 "block size = " + std::to_string(block_size) +
502 ", size = " + std::to_string(size))
524 const std::string& clarification)
526 func +
": Value mismatch : " + std::to_string(val1) +
" and " +
527 std::to_string(val2) +
" : " + clarification)
546 const std::string& device,
size_type bytes)
548 device +
": failed to allocate memory block of " +
549 std::to_string(bytes) +
"B")
571 "trying to access index " + std::to_string(index) +
572 " in a memory block of " + std::to_string(bound) +
590 const std::string& index_type)
591 :
Error(file, line,
"Overflowing " + index_type)
609 StreamError(
const std::string& file,
int line,
const std::string& func,
610 const std::string& message)
611 :
Error(file, line, func +
": " + message)
630 :
Error(file, line, func +
": unable to find an eligible kernel")
651 const std::string& msg)
652 :
Error(file, line, msg)
669 const std::string& func,
const std::string& clarification)
671 func +
": Invalid state encountered : " + clarification)
679 #endif // GKO_PUBLIC_CORE_BASE_EXCEPTION_HPP_
CudaError is thrown when a CUDA routine throws a non-zero error code.
Definition: exception.hpp:172
ValueMismatch is thrown if two values are not equal.
Definition: exception.hpp:510
virtual const char * what() const noexcept override
Returns a human-readable string with a more detailed description of the error.
Definition: exception.hpp:74
Error that denotes issues between block sizes and matrix dimensions.
Definition: exception.hpp:490
NotCompiled(const std::string &file, int line, const std::string &func, const std::string &module)
Initializes a NotCompiled error.
Definition: exception.hpp:114
KernelNotFound(const std::string &file, int line, const std::string &func)
Initializes a KernelNotFound error.
Definition: exception.hpp:629
KernelNotFound is thrown if Ginkgo cannot find a kernel which satisfies the criteria imposed by the i...
Definition: exception.hpp:620
HipblasError is thrown when a hipBLAS routine throws a non-zero error code.
Definition: exception.hpp:310
OutOfBoundsError is thrown if a memory access is detected to be out-of-bounds.
Definition: exception.hpp:558
NotImplemented is thrown in case an operation has not yet been implemented (but will be implemented i...
Definition: exception.hpp:85
AllocationError(const std::string &file, int line, const std::string &device, size_type bytes)
Initializes an allocation error.
Definition: exception.hpp:545
std::size_t size_type
Integral type used for allocation quantities.
Definition: types.hpp:86
OutOfBoundsError(const std::string &file, int line, size_type index, size_type bound)
Initializes an OutOfBoundsError.
Definition: exception.hpp:568
Exception thrown if an object is in an invalid state.
Definition: exception.hpp:658
Exception throws if a matrix does not have a property required by a numerical method.
Definition: exception.hpp:641
NotCompiled is thrown when attempting to call an operation which is a part of a module that was not c...
Definition: exception.hpp:104
NotSupported(const std::string &file, int line, const std::string &func, const std::string &obj_type)
Initializes a NotSupported error.
Definition: exception.hpp:138
HiprandError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a hipRAND error.
Definition: exception.hpp:343
NotSupported is thrown in case it is not possible to perform the requested operation on the given obj...
Definition: exception.hpp:127
CublasError is thrown when a cuBLAS routine throws a non-zero error code.
Definition: exception.hpp:195
MetisError(const std::string &file, int line, const std::string &func, const std::string &error)
Initializes a METIS error.
Definition: exception.hpp:413
CublasError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a cuBLAS error.
Definition: exception.hpp:205
MpiError is thrown when a MPI routine throws a non-zero error code.
Definition: exception.hpp:150
The Ginkgo namespace.
Definition: abstract_factory.hpp:20
UnsupportedMatrixProperty(const std::string &file, const int line, const std::string &msg)
Initializes the UnsupportedMatrixProperty error.
Definition: exception.hpp:650
CudaError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a CUDA error.
Definition: exception.hpp:182
StreamError(const std::string &file, int line, const std::string &func, const std::string &message)
Initializes a file access error.
Definition: exception.hpp:609
AllocationError is thrown if a memory allocation fails.
Definition: exception.hpp:535
CurandError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a cuRAND error.
Definition: exception.hpp:228
HipfftError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a hipFFT error.
Definition: exception.hpp:390
BadDimension(const std::string &file, int line, const std::string &func, const std::string &op_name, size_type op_num_rows, size_type op_num_cols, const std::string &clarification)
Initializes a bad dimension error.
Definition: exception.hpp:472
MpiError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a MPI error.
Definition: exception.hpp:159
OverflowError(const std::string &file, const int line, const std::string &index_type)
Definition: exception.hpp:589
InvalidStateError(const std::string &file, int line, const std::string &func, const std::string &clarification)
Initializes an invalid state error.
Definition: exception.hpp:668
StreamError is thrown if accessing a stream failed.
Definition: exception.hpp:599
CufftError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a cuFFT error.
Definition: exception.hpp:274
DimensionMismatch is thrown if an operation is being applied to LinOps of incompatible size.
Definition: exception.hpp:424
CusparseError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a cuSPARSE error.
Definition: exception.hpp:251
HipError is thrown when a HIP routine throws a non-zero error code.
Definition: exception.hpp:287
BadDimension is thrown if an operation is being applied to a LinOp with bad dimensions.
Definition: exception.hpp:459
CufftError is thrown when a cuFFT routine throws a non-zero error code.
Definition: exception.hpp:264
OverflowError is thrown when an index calculation for storage requirements overflows.
Definition: exception.hpp:582
Error(const std::string &file, int line, const std::string &what)
Initializes an error.
Definition: exception.hpp:66
std::int64_t int64
64-bit signed integral type.
Definition: types.hpp:109
HipblasError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a hipBLAS error.
Definition: exception.hpp:320
HipError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a HIP error.
Definition: exception.hpp:297
CurandError is thrown when a cuRAND routine throws a non-zero error code.
Definition: exception.hpp:218
HiprandError is thrown when a hipRAND routine throws a non-zero error code.
Definition: exception.hpp:333
BlockSizeError(const std::string &file, const int line, const int block_size, const IndexType size)
Definition: exception.hpp:498
HipsparseError is thrown when a hipSPARSE routine throws a non-zero error code.
Definition: exception.hpp:357
DimensionMismatch(const std::string &file, int line, const std::string &func, const std::string &first_name, size_type first_rows, size_type first_cols, const std::string &second_name, size_type second_rows, size_type second_cols, const std::string &clarification)
Initializes a dimension mismatch error.
Definition: exception.hpp:440
HipfftError is thrown when a hipFFT routine throws a non-zero error code.
Definition: exception.hpp:380
ValueMismatch(const std::string &file, int line, const std::string &func, size_type val1, size_type val2, const std::string &clarification)
Initializes a value mismatch error.
Definition: exception.hpp:522
CusparseError is thrown when a cuSPARSE routine throws a non-zero error code.
Definition: exception.hpp:241
HipsparseError(const std::string &file, int line, const std::string &func, int64 error_code)
Initializes a hipSPARSE error.
Definition: exception.hpp:367
MetisError is thrown when METIS routine throws an error code.
Definition: exception.hpp:403
The Error class is used to report exceptional behaviour in library functions.
Definition: exception.hpp:57
NotImplemented(const std::string &file, int line, const std::string &func)
Initializes a NotImplemented error.
Definition: exception.hpp:94