9#include <cuda_runtime_api.h>
14#include <source_location>
28 [[nodiscard]] cudaError_t
status() const noexcept {
return status_; }
31 [[nodiscard]] std::string
const&
operation() const noexcept {
return operation_; }
34 [[nodiscard]] std::string
const&
error_name() const noexcept {
return error_name_; }
37 [[nodiscard]] std::string
const&
reason() const noexcept {
return reason_; }
40 [[nodiscard]] std::optional<int>
device() const noexcept {
return device_; }
44 std::string operation_;
45 std::string error_name_;
47 std::optional<int> device_;
52 std::optional<int> device = std::nullopt,
53 std::source_location where = std::source_location::current());
56void check(cudaError_t status, std::string_view operation, std::optional<int> device = std::nullopt,
57 std::source_location where = std::source_location::current());
Exception carrying a failed CUDA runtime operation and status.
Definition cuda_error.hpp:22
std::string const & error_name() const noexcept
Return the CUDA symbolic error name.
Definition cuda_error.hpp:34
std::string const & reason() const noexcept
Return the CUDA runtime error description.
Definition cuda_error.hpp:37
cudaError_t status() const noexcept
Return the CUDA runtime status code.
Definition cuda_error.hpp:28
std::string const & operation() const noexcept
Return the CUDA runtime operation that failed.
Definition cuda_error.hpp:31
std::optional< int > device() const noexcept
Return the associated CUDA device ordinal, when known.
Definition cuda_error.hpp:40
Base class for exceptions raised through Uni20's diagnostic boundary.
Definition diagnostic_error.hpp:25
Structured exception base carrying diagnostic source context.
Definition cublas/execution.hpp:18
void raise_runtime_error(cudaError_t status, std::string_view operation, std::optional< int > device, std::source_location where)
Raise a structured CUDA runtime failure through Uni20's error boundary.
Definition cuda_error.cpp:38