文件 | |

文件

文件  error.hpp
 

结构体  cudf::stacktrace_recorder
 构造时存储当前堆栈跟踪的结构体。 更多...
 
结构体  cudf::logic_error
 当逻辑前置条件被违反时抛出的异常。 更多...
 
结构体  cudf::cuda_error
 遇到 CUDA 错误时抛出的异常。 更多...
 
结构体  cudf::fatal_cuda_error
 
结构体  cudf::data_type_error
 尝试在不支持的 dtype 上执行操作时抛出的异常。 更多...
 

#define CUDF_EXPECTS(...)
 用于检查(前置)条件的宏,当条件被违反时抛出异常。 更多...
 
#define CUDF_FAIL(...)
 表示已进入错误的执行路径。 更多...
 
#define CUDF_CUDA_TRY(call)
 用于检查 CUDA runtime API 函数错误的宏。 更多...
 
#define CUDF_CHECK_CUDA(stream)
 用于检查 CUDA 错误的调试宏。 更多...
 

详细描述

宏定义文档

◆ CUDF_CHECK_CUDA

#define CUDF_CHECK_CUDA (   stream)
do { \
CUDF_CUDA_TRY(cudaStreamSynchronize(stream)); \
CUDF_CUDA_TRY(cudaPeekAtLastError()); \
} while (0);

用于检查 CUDA 错误的调试宏。

在非发布版本构建中,此宏将在检查错误之前同步指定的流。在发布和非发布版本构建中,此宏都会检查之前调用中任何待处理的 CUDA 错误。如果报告了错误,则会抛出异常,详细说明发生的 CUDA 错误。

此宏旨在为调试异步 CUDA 执行提供同步且确定的执行机制。应在任何异步 CUDA 调用(例如 cudaMemcpyAsync)或异步内核启动之后使用此宏。

定义位于文件 error.hpp284 行。

◆ CUDF_CUDA_TRY

#define CUDF_CUDA_TRY (   call)
do { \
cudaError_t const status = (call); \
if (cudaSuccess != status) { cudf::detail::throw_cuda_error(status, __FILE__, __LINE__); } \
} while (0);

用于检查 CUDA runtime API 函数错误的宏。

调用 CUDA runtime API 函数。如果调用未返回 cudaSuccess,则调用 cudaGetLastError() 清除错误并抛出异常,详细说明发生的 CUDA 错误。

定义位于文件 error.hpp264 行。

◆ CUDF_EXPECTS

#define CUDF_EXPECTS (   ...)
GET_CUDF_EXPECTS_MACRO(__VA_ARGS__, CUDF_EXPECTS_3, CUDF_EXPECTS_2) \
(__VA_ARGS__)

用于检查(前置)条件的宏,当条件被违反时抛出异常。

默认抛出 cudf::logic_error,但也可以指定自定义异常。

示例用法

// 抛出 cudf::logic_error
CUDF_EXPECTS(p != nullptr, "Unexpected null pointer");
// 抛出 std::runtime_error
CUDF_EXPECTS(p != nullptr, "Unexpected nullptr", std::runtime_error);
#define CUDF_EXPECTS(...)
用于检查(前置)条件的宏,当条件被违反时抛出异常。
定义: error.hpp:178
参数
...此宏接受两个或三个参数
  • 第一个参数必须是计算结果为 true 或 false 的表达式,即正在检查的条件。
  • 第二个参数是用于构造异常的 what 信息的字符串字面量。
  • 如果给出,第三个参数是要抛出的异常类型。如果未指定,则默认为 cudf::logic_error
异常
<tt>_exception_type</tt>如果条件计算结果为 0 (false)。

定义位于文件 error.hpp178 行。

◆ CUDF_FAIL

#define CUDF_FAIL (   ...)
GET_CUDF_FAIL_MACRO(__VA_ARGS__, CUDF_FAIL_2, CUDF_FAIL_1) \
(__VA_ARGS__)

表示已进入错误的执行路径。

示例用法

{c++}
// 抛出 `cudf::logic_error`
CUDF_FAIL("Unsupported code path");
// 抛出 `std::runtime_error`
CUDF_FAIL("Unsupported code path", std::runtime_error);
#define CUDF_FAIL(...)
表示已进入错误的执行路径。
定义: error.hpp:217
参数
...此宏接受一个或两个参数
  • 第一个参数是用于构造异常的 what 信息的字符串字面量。
  • 如果给出,第二个参数是要抛出的异常类型。如果未指定,则默认为 cudf::logic_error
异常
<tt>_exception_type</tt>如果条件计算结果为 0 (false)。

定义位于文件 error.hpp217 行。