处理 TVM 的错误#

在运行 TVM 时,你可能会遇到类似的错误信息:

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

祝贺你! 你找到了这个页面。下面是一些关于如何解释这些错误信息的提示,以及当它们发生时你可以做什么。

这些错误从何而来?#

这个错误是由于在 TVM 的执行过程中违反了一个内部 invariant 造成的。在技术层面上,该信息是由 ICHECK 宏产生的,在 include/tvm/runtime/logging.h 中可以找到。ICHECK 宏在 TVM 代码中的许多地方被用来断言某些条件在执行过程中为真;任何时候断言失败,TVM 都会退出,并出现上述错误信息。

关于 TVM 如何处理和产生错误的更多细节,请参见 error-handling-guide

当我遇到这样的错误时,我应该怎么做?#

首先,不要惊慌。好吧,你可以惊慌失措,但这无济于事。

最好的办法是在 Apache TVM 讨论论坛 上搜索你遇到的错误,看看这是否是别人遇到过的问题,以及可能的解决办法。如果这个错误是由较新版本的 TVM 中修复的错误造成的,你可能需要更新到较新的版本。

如果你没有找到关于你的问题的现有讨论论坛主题,欢迎你在论坛上发起一个新的主题,说明问题的细节。 在你的帖子中包括以下关键信息:

  • 你所使用的 TVM 的版本(例如,你的源代码树的 git 提交哈希值)。

  • 您在哪个硬件和操作系统版本上运行 TVM。

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

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

没有这些细节,TVM 开发人员很难为您提供很多帮助。