Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
cusolver_error.hpp
Go to the documentation of this file.
1#pragma once
2
10
11#include <cusolverDn.h>
12
13#include <source_location>
14#include <string>
15#include <string_view>
16
17namespace uni20::cusolver
18{
19
21[[nodiscard]] std::string_view status_name(cusolverStatus_t status) noexcept;
22
25 public:
26 CusolverError(cusolverStatus_t status, std::string operation, int device);
27
28 [[nodiscard]] cusolverStatus_t status() const noexcept { return status_; }
29 [[nodiscard]] std::string const& operation() const noexcept { return operation_; }
30 [[nodiscard]] std::string_view error_name() const noexcept { return status_name(status_); }
31 [[nodiscard]] int device() const noexcept { return device_; }
32
33 private:
34 cusolverStatus_t status_;
35 std::string operation_;
36 int device_;
37};
38
40[[noreturn]] void raise_error(cusolverStatus_t status, std::string_view operation, int device,
41 std::source_location where = std::source_location::current());
42
44void check(cusolverStatus_t status, std::string_view operation, int device,
45 std::source_location where = std::source_location::current());
46
47} // namespace uni20::cusolver
Exception carrying a failed cuSOLVER operation and device identity.
Definition cusolver_error.hpp:24
std::string_view error_name() const noexcept
Definition cusolver_error.hpp:30
int device() const noexcept
Definition cusolver_error.hpp:31
cusolverStatus_t status() const noexcept
Definition cusolver_error.hpp:28
std::string const & operation() const noexcept
Definition cusolver_error.hpp:29
Base class for exceptions raised through Uni20's diagnostic boundary.
Definition diagnostic_error.hpp:25
Structured exception base carrying diagnostic source context.
Definition cusolver_error.cpp:10
void raise_error(cusolverStatus_t status, std::string_view operation, int device, std::source_location where)
Raise a structured cuSOLVER provider failure.
Definition cusolver_error.cpp:53
std::string_view status_name(cusolverStatus_t status) noexcept
Return a stable symbolic name for a cuSOLVER status value.
Definition cusolver_error.cpp:12