Utility_error

#define CUDA_DRIVER_TRY(...)
 用于检查 CUDA driver API 函数的宏。 更多...
 
#define CUFILE_TRY(...)
 用于检查 cuFile API 函数的宏。 更多...
 
#define KVIKIO_EXPECT(...)    GET_KVIKIO_EXPECT_MACRO(__VA_ARGS__, KVIKIO_EXPECT_3, KVIKIO_EXPECT_2)(__VA_ARGS__)
 用于检查前置条件或在条件不满足时抛出异常的宏。 更多...
 
#define KVIKIO_FAIL(...)    GET_KVIKIO_FAIL_MACRO(__VA_ARGS__, KVIKIO_FAIL_2, KVIKIO_FAIL_1)(__VA_ARGS__)
 表示代码进入了错误路径。 更多...
 

详细说明

宏定义文档

◆ CUDA_DRIVER_TRY

#define CUDA_DRIVER_TRY (   ...)
GET_CUDA_DRIVER_TRY_MACRO(__VA_ARGS__, CUDA_DRIVER_TRY_2, CUDA_DRIVER_TRY_1) \
(__VA_ARGS__)

用于检查 CUDA driver API 函数的宏。

调用 CUDA driver API 函数。如果调用未返回 CUDA_SUCCESS,则抛出异常,详细说明发生的 CUDA 错误。

示例

// 抛出 kvikio::CUfileException
CUDA_DRIVER_TRY(cudaAPI::instance().StreamSynchronize(_stream));
// 抛出 std::runtime_error
CUDA_DRIVER_TRY(cudaAPI::instance().StreamSynchronize(_stream), std::runtime_error);
#define CUDA_DRIVER_TRY(...)
用于检查 CUDA driver API 函数的宏。
定义: error.hpp:68
参数
...此宏接受一个或两个参数
  • 第一个参数必须是 CUDA driver API 错误码。
  • 给定第二个参数时,它是要抛出的异常。未指定时,默认为 kvikio::CUfileException

定义于文件 error.hpp68 行。

◆ CUFILE_TRY

#define CUFILE_TRY (   ...)
GET_CUFILE_TRY_MACRO(__VA_ARGS__, CUFILE_TRY_2, CUFILE_TRY_1) \
(__VA_ARGS__)

用于检查 cuFile API 函数的宏。

调用 cuFile API 函数。如果调用未返回 CU_FILE_SUCCESS,则抛出异常,详细说明发生的 cuFile 错误。

示例

// 抛出 kvikio::CUfileException
CUFILE_TRY(cuFileAPI::instance().ReadAsync(...));
// 抛出 std::runtime_error
CUFILE_TRY(cuFileAPI::instance().ReadAsync(...), std::runtime_error);
#define CUFILE_TRY(...)
用于检查 cuFile API 函数的宏。
定义: error.hpp:107
参数
...此宏接受一个或两个参数
  • 第一个参数必须是 cuFile API 错误码。
  • 给定第二个参数时,它是要抛出的异常。未指定时,默认为 kvikio::CUfileException

定义于文件 error.hpp107 行。

◆ KVIKIO_EXPECT

#define KVIKIO_EXPECT (   ...)     GET_KVIKIO_EXPECT_MACRO(__VA_ARGS__, KVIKIO_EXPECT_3, KVIKIO_EXPECT_2)(__VA_ARGS__)

用于检查前置条件或在条件不满足时抛出异常的宏。

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

示例

// 抛出 kvikio::CUfileException
KVIKIO_EXPECT(p != nullptr, "Unexpected null pointer");
// 抛出 std::runtime_error
KVIKIO_EXPECT(p != nullptr, "Unexpected nullptr", std::runtime_error);
#define KVIKIO_EXPECT(...)
用于检查前置条件或在条件不满足时抛出异常的宏...
定义: error.hpp:216
参数
...此宏接受两个或三个参数
  • 第一个参数必须是求值为 true 或 false 的表达式,即被检查的条件。
  • 第二个参数是一个字符串字面量,用于构建异常的 what 消息。
  • 给定第三个参数时,它是要抛出的异常。未指定时,默认为 kvikio::CUfileException

定义于文件 error.hpp216 行。

◆ KVIKIO_FAIL

#define KVIKIO_FAIL (   ...)     GET_KVIKIO_FAIL_MACRO(__VA_ARGS__, KVIKIO_FAIL_2, KVIKIO_FAIL_1)(__VA_ARGS__)

表示代码进入了错误路径。

用法示例

// 抛出 kvikio::CUfileException
KVIKIO_FAIL("Unsupported code path");
// 抛出 std::runtime_error
KVIKIO_FAIL("Unsupported code path", std::runtime_error);
#define KVIKIO_FAIL(...)
表示代码进入了错误路径。
定义: error.hpp:252
参数
...此宏接受一个或两个参数
  • 第一个参数是一个字符串字面量,用于构建异常的 what 消息。
  • 给定第二个参数时,它是要抛出的异常。未指定时,默认为 kvikio::CUfileException

定义于文件 error.hpp252 行。