TVM Runtime base

TVM Runtime base#

源码见:tvm/src/runtime/runtime_base.h

这段代码是 C++ 头文件,它定义了一些宏和函数,用于处理 TVM 运行时 API 的异常情况。

首先,该头文件包含了一些必要的头文件:

  • <tvm/runtime/c_runtime_api.h>:包含 TVM C API 的声明。

  • <stdexcept>:包含标准异常类的定义。

接下来,定义了两个宏:

  1. API_BEGIN():用于标记函数开始执行的位置。在函数体中,使用 try 块来捕获可能抛出的异常。

  2. API_END():用于标记函数结束执行的位置。在函数体中,使用 catch 块来捕获特定的异常类型,并返回相应的错误码。如果没有捕获到任何异常,则返回0表示成功。

此外,还定义了宏 API_END_HANDLE_ERROR(Finalize),用于处理异常并在发生错误时执行清理操作。与 API_END() 类似,它也使用 trycatch 块来捕获异常,但在捕获到异常后,会先执行传入的 Finalize 参数所表示的清理操作,然后再调用 TVMAPIHandleException() 函数处理异常并返回相应的错误码。

最后,定义了函数 TVMAPIHandleException(),用于处理异常。它接受 std::exception 类型的参数,并返回整数值,表示 API 执行后的返回值。