处理 TVM 错误

当运行 TVM 时,您可能会遇到如下错误消息:

---------------------------------------------------------------
An error occurred during the execution of TVM.
For more information, please see: https://tvm.apache.org/docs/errors.html
---------------------------------------------------------------

恭喜!您找到了此页面。以下是一些关于如何解读这些错误消息以及当它们发生时您可以做什么的提示。

这些错误从何而来?

此错误是由于在 TVM 执行期间违反了内部不变性而引起的。从技术层面来看,该消息由 ICHECK 宏生成,该宏位于 include/tvm/runtime/logging.h 中。ICHECK 宏在 TVM 代码的许多地方被使用,以断言在执行期间某些条件为真;任何时候断言失败,TVM 将退出并显示上面所示的错误消息。

有关 TVM 如何处理和生成错误的更多详细信息,请参阅 error-handling-guide

当我遇到此类错误时,我该怎么办?

首先,不要慌张。好吧,你可以慌张,但这并没有什么帮助。

最好的做法是在 Apache TVM Discuss Forum 中搜索您遇到的错误,看看这是否是其他人遇到过的问题,以及可能的解决方案是什么。如果此错误是 TVM 较新版本中已修复的错误的结果,您可能需要更新到较新版本。

如果您没有找到关于您问题的现有 Discuss Forum 帖子,欢迎您在论坛上发起一个新帖子,详细说明问题。在您的帖子中包含以下关键信息

  • 您正在使用的 TVM 版本(例如,您的源代码树的 git commit 哈希值)。

  • 您运行 TVM 的硬件和操作系统版本。

  • 您为 TVM 编译所针对的硬件设备和操作系统。

  • 关于模型、输入或有关工作负载的其他信息的详细信息,这些信息可用于重现您的问题。

如果没有这些详细信息,TVM 开发人员很难为您提供太多帮助。